Virge and Virge VX review

S3 Graphics

The company, founded in 1989 took the world of 2D accelerators by onslaught since 1991 with world's first single chip solution. In several years S3 became major vendor with its Trio line of fast but cost effective cores. S3 embraced new opportunity and since 1996 offered many cores promising 3D acceleration for S3 prices. Virge remained pin compatible with popular Trio64V+ despite adding feature rich 3D rendering to 2D GUI video acceleration with a RAMDAC and clock synthesizer within a single chip. In February 1996 S3 organized S3d developer conference, hosting more than 250 software and hardware developers. Descent II, FX Fighter, VR Scout, Actua Soccer and Terminal Velocity were shown. In that very year S3 shipped half of the 10 million 3D chips sold and looked to be on a good path to succeed in this field as well. Today we know only about 20 S3d games were made, and Virge is a bad name. What went wrong?

ViRGE

The original vanilla Virtual Reality Graphics Engine established a line of 3D cores that were selling like hotcakes. In the end they made a bad impression though, and become the embodiment of "3D decelerator". Here is a common ViRGE 325 card- Diamond Stealth 3D 2000. The clock is synchronous 55 MHz, which I found to be rather typical. With memory bus 64 bits wide the bandwidth by SDRAM math would be 440 MB/s. But with EDO one cannot be certain. Overclocking headroom makes it hard to believe that it works in single cycle mode, on the other hand the card really does not seem to be as bandwidth limited as it should be with two cycle mode. While Diamond did a fine job, there were still some faster Virge cards, such as a TNC (2 The Max) boards with 65 MHz single cycle EDO operation. Another problem with settling the memory bandwidth is the EDO burst mode, it may not always be used depending on a type of memory operations. Two megabytes of memory can be expanded to four, however as you will see, the chip is too slow to justify paying such an upgrade back in its days. 2D speed and quality are fine in both DOS and Windows as should be expected from Trio 64+ engine with standard 135MHz ramdac. The 3D feature set is quite rich for the time and price, but performance was soon inadequate. It didn't help how many S3d titles were hellbent on running at 640x4x0. For such a cheap and slow chip it is quite surprising to find it supports 24 bit depth 3d modes and 32 bit textures.

There was less than 20 games made for Virge DOS API S3d. S3 achieved major publisher support when Interplay promised Virge support for its 3D titles for 2 years. When Direct3d took off, proprietary API support was dropped in favor of open one. Facing other 3D cards on equal terms in modern Windows games with CPUs getting faster and faster, the Virge appeared too slow to accelerate anything. Or so the word goes. There were never OpenGL drivers, but S3 at least developed wrapper for GlQuake. Somewhat late and never went out of beta status. Of course architectural limitations still apply and dynamic lighting is only monochrome. The wrapper does not work with never Quake engines, that is where Techland comes in. Techland developed Crime Cities which came with wrappers for some graphics card without OpenGl support. Thanks to them I could even run Quake 2, though with similar bugs/restriction.

Click to
enlarge
Croc S3d maxed out with 8MB VX, though for smooth game 400x300 is needed.

What does the S3d library offer to lucky owners of ViRGE? Well, many of them support other (probably much better) accelerator. From the exclusive ones stands out one popular title: Terminal Velocity by 3D Realms from 1995. It is a good example of early 3D games. The action was fast and simple, texture mapped graphics mind blowing and with an urgent feeling of witnessing technological innovation. After flying through some tunnel one would expect a 3DMark 95 score at the exit. S3d version can do for you bilinear texture filtering and perspective correction, other than that it does not really look better than SVGA mode and frame rate is too close to single digits. The blending is not fast and what is maybe worse, there are some dithering artifacts around transparent parts of ships and explosion sprites. Later I found those are typical for Virge in high color rendering. Whenever explosion happens really close, the ViRGE seems to choke on the blending work for a second. Even in the earliest case of S3d acceleration, this poor card can be rendered useless by CPU upgrade. Most S3d games were made for DOS and I don't know a way how to take gameplay screenshots of those. As a best effort I tried to use my camera for Descent II, Terminal Velocity and Tomb Raider. As you can see in the gallery I am not a very good photographer. However, later appeared some titles for Windows 95 like the Croc which let me provide you with some proper S3d screens.

How does the Virge 325 profit from 4 MB of memory?

If the game runs with 2 MB of memory, it will gain around 14% with the upgrade. Only Grim Fandango goes ballistic with 4 MB and that is not exactly a game you have to play accelerated.

Please remember my minimum FPS measurements are not very accurate, the values are low and Fraps is rounding them to whole number. Still, I think they indicate something. While the graph does not show much difference, remember that jump from 1 to 2 FPS means 100% improvement. The average gain in these important results is then a lot more satisfying 36%. Having 4 MB of memory will let you play more games and more smoothly. And I will show later the difference gets bigger with overclocking.
I did not test other models with 2 MB memory because of limited compatibility with my games. Hopefully performance differences will remain the same with newer chips as well. To get more games working with 2 MB configuration I changed some settings, for example disabled Z-buffer in Battlezone. This also improves FPS significantly and retro player with an adequate PC who wants smoother game with Virge should always seek this option. And in case you are wondering the Virge supports Z-comparison for pixel discarding before color operations, but in my tests it does not seem to be worth it. Sometime no detail reduction helped and Wipeout just freezes. Wing Commander Prophecy does the same, but after warning at launch. Then there are games which automatically reduce texture resolution like Forsaken or Viper Racing, so better always look at screenshots, as the image quality may vary not only by texture memory installed, but also by memory management of different drivers. With 2 MB Virge you really don't get much and have to go much below 640x480 in Forsaken to get all textures and even with 4MB some textures of Viper Racing jump to mip-maps right away. Tomb Raider 2 sometimes drops some textures even at 320x240. Otherwise, if result for a particular game is missing, then it did not run with 2MB at all.

ViRGE /VX

Represented again by Diamond card. It is clocked at 52 MHz, which seems to be rather high for a VX. For example Miro opted for 50 MHz. Why less than original Virge? Well, VX cards seem to have much less overclocking headroom than other members of the family. Could it be the VRAM interface or just slow memory modules? Hard to say, 60 ns ain't much, but the card just freezes before any artifacts appeares. More bandwidth is provided by dual ported RAM, because RAMDAC can read frame buffer without preventing communication with graphics chip. Usual quoted value is ~25% improvement depending on resolution. But we know the Virge is pretty weak chip, can it put higher bandwidth to good use? Another high-end equipment for 1996 is 220 MHz ramdac and support for massive 8 MB of memory. I own 8 MB STB Velocity 3D and advantage in 3d is rather theoretical. There are some texturing tests where more memory makes significant difference, but in the real world the card does not benefit. The price increased a lot for features not very valuable to gamers. No wonder VX is the rarest of the series. The BGA packaging makes those cards easy to spot.

Average 6% faster. At same clock the VRAM wouldn't have more then 10% advantage over Virge with EDO.

Problems


Quake2 with Techland's wrapper. Just like in S3Quake some polygons have bright edges. Weapon is drawn quite poorly and there is also the Z-fighting in top right corner.

Both cards are using Virge uni 2111 driver, which S3 still provides on their web. "fast d3d" 2122 can be tricked to be used on first Virges as well, but I did not found any advantages. "Uni" is the latest known with official support, yet it has lot of problems with mip-mapping. At least I hope it is not a hardware problem. In Flight Simulator 98 and Turok mip mapping causes horrible artifacts so I turned off, same with the fog. Problems with sky textures are regular. Battlezone, Heavy Gear, Jedi Knight, Mechwarrior 2 or even Robots test of Final Reality. TNP has ground texture problems for a change. I can only guess why is the grass in FIFA RTWC displayed only as a plain green surface. And Virtual cockpit in Flight Simulator is not textured properly. Quake has few flashing textures as well plus some Z-artifacts on doors, but the S3 wrapper does not support first Virges anyway. There is little excuse for Z artifacts in Turok though. So texturing problems with Direct3D are common, but lack of alpha-blending modes sink Virge even deeper. Projectiles in Expandable or Forsaken are ugly with black color extending to square texture shape. Glass surfaces are not transparent, ghost car in Viper Racing is not transparent. Environment mapping is impossible with Virge, it causes artifacts of its own, so it is disabled in games like Ultimate Race Pro. Most of the newer games are using at least a bit of blending techniques not supported by Virge and even when supported blending mode is used, dithering artifacts occurs, like in explosions of Turok or even S3D game like Terminal Velocity. How low can the precision be? If the user is willing to sacrifice more performance 24 bit rendering is available and Incoming shows that in this mode, blending is done without artifacts. Incoming suffers the most from lack of lens flare support, explosions just aren't fun without it. Virge 24 bit mode quality is still behind most of other cards, so I will put these numbers against 16 bit without hesitation, at least in 320x240 as there is not enough memory to do it at 640x480. Whenever modulated alpha occurs Virge throws in a towel and renders whole alpha texture as opaque black. This is the most nasty artifact and ruins many games. And there also seems to be a limit to blending targets, causing some top texture layers to become transparent and opening holes, like in explosions above the water of Expandable, or see through surfaces in Motoracer 2. In modern games Virge gives up on texturing altogether, 1998 is the threshold year. But even before you could see it ignoring some textures, like the track in Wipeout XL. As it did not seem to increase FPS I included the result anyway. Most of textures in F22 TAW are missing, Half Life completely gives up on texturing. Thief lacks world textures, but thanks to z-fighting bits of it are coming from behind lightmap, so the issue is again caused by blending limitations.

The complete list of problems would be too long, so to keep it related only to my benchmark suite, I will close it with few explanations. Turok batch takes too long to complete and Virge usually freezes in specific moments, that is why I used only second demo for measurement. All Virge cards also suffer from specific hiccup in Motoracer Demo, it does not happen anywhere else so don't mind the minimal FPS. Also, don't take the result of 3DMark 99 seriously, different Virge chips have different problems with the benchmark. Overall performance is horrible as expected. The Battlezone demo animation brings Virge to its knees, minimal FPS 0 is real. Gaming at 640x480 is just unreachable dream, or torture if you will. I understand why Falcon 4.0 does not recognize Virge as an accelerator. These cards ran steady at 320x240 or 400x300 if you are lucky.

The beast with massive 8 MB of memory.

Success story?

While resolution remains at software rendering level, when Virge's features works image quality enhancement is big enough. In fact, at least in texturing quality Virge is among the leaders of 1996. These two cards were half of the 3D market that year, but arguably for many buyers 3d capability of Virge was an only checkbox feature. I don't know exactly what d3d driver horrors S3 caused back then, but many stories of bugs and lack of optimization were heard. However, drivers tested here show efficiency on par with proprietary S3d games. Anyway damage was already done and with coming of high performance solutions from other companies Virge continued to be used in most PCs only as a 2D card and S3 end up with little positive mind share from the huge market success.

Modifying executable to lower resolution will let you play Populous:TB, only to discover 2d sprites are not rendered.
View Virge screenshot gallery

Overclocking

This is for a change a positive part of Virge 325. The chip can be overclocked by 50% and still stays very cool. Looks to me S3 was too conservative with the chip clock. On the Diamond Stealth 2000 card I end up with 81 MHz due to memory artifacts. The Diamond VX on the other hand topped at 64 MHz because of stability issues at higher clocks. STB Velocity 3D produces artifacts even after smallest push and they looks like chip errors, not memory. VX is simply a black sheep of the family when it comes to overclocking.

That is 29% average gain for 2 MB configuration. If only more people could overclock their Virge back then.

With full memory banks I got 35% average gain for a 47 % overclock. S3 really left Virge 325 with big headroom.

So much for the first two Virge chips, but the architecture had more iterations.

continue to Virge /DX/GX