The Bilinear Dream

I’ve recently acquired a S3 Virge. Yes, that’s right, the very first Virge. While I already had the DX version, I know that the 3D engine was improved for that card, so I wanted to see what kind of framerates I could really get from the original decelerator. Also, as my DX has merely 2MB of video memory, I went out of my way to find a 4MB Virge this time, so I could test a few games all the way up to 800×600 (why I would want to suffer like that, nobody knows), or at least run certain tests without the constant threat of dropped textures.

Can’t win them all, of course. In Half-Life, the card outright refuses to texture the enviroment, even on 320×240… so I just took this picture at 640×480 for the extra crispness.

It should be pointed out that its popular nickname might be something of a misnomer, as the card did indeed “accelerate” rendering. Back then, it was sometimes hard to get even 320×240 to run well in software mode. If you stuck a Virge in there, kept the resolution low, and didn’t bother with filtering or anything else, your game was gonna look a lot like software rendering… but faster.

The only way to run Blood 2 properly: in 320×240 on Low settings, with disabled lightmaps. Even the manual says so.

Unfortunately, many S3-specific games wanted to run on at least 512×384, with bilinear filtering. Texture filtering! On a card that, by most accounts, needs 8 cycles for bilinearly filtered textures! Those engineers must have seriously overestimated their chances. It would be a bit like trying to run a 4K game on a regular Xbox One.

Tough luck, CPU guys: Turok requires a 3D card. It runs decently on 320×240, as long as you disable texture filtering and fog and fancy stuff and… just about everything else… you know, maybe you should just take your chances with a N64.
Enabling bilinear filtering incurs in a lower framerate (those numbers up there din’t tell the story anyway), and also an unneeded look into S3’s dithering solution. Hardly the worst I’ve ever seen, at least.

Steer clear of any fancy effects, and your games might actually run a bit faster than before. After all, I have a P3, but most people at the time were stuck with, er, 133mhz? A Virge was bound to help a little bit in D3D-compatible games. Alas, so many D3D games didn’t give many settings to play around with, either.

It’s surprising how much the extra memory helps. Some games actually run better than the DX, despite the less optimized (eheh) architecture, because the card isn’t choking under the weight of the textures.

Dithering was annoying, but you had to deal with it, at least in 16 bits mode. Worth noting that, due to the Virge actually running in 15 bits colors (5550), there’s a bit more color banding than the average 16 bits game.
If you have the guts to enable 24 bits rendering on your damn Virge, quality improves considerably. Of course, the card was already slow enough. But in truth, I didn’t see all that much of a difference in 320×240. Then again, so few of these older games actually let you pick anything higher than 16 bits.

Could it have been better? Oh yes. But if you consider the average 3D card at the time (did someone say NV1, AT3D and 3D Rage?), it was actually okay-ish. I like that it tries to go for high-fidelity bilinear filtering, although it was probably a bad idea performance-wise. A lower-quality solution like Ati’s might have been better in retrospect, but it should be at least noted that Ati’s own bilinear occurred in even worse performance drops even on the Rage II.

I’m going to try a few S3-specific games next, although some of them were only available on DOS, so it will be hard to get pictures.

Advertisements

What says you?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s