Nvidia Riva 128 review

Set sail for fail

Nvidia was among the very first 3d acceleration pioneers. Already in 1995 they released together with ST Micro first chipset- NV1. It integrated along with video also audio and I/O processing. SEGA trusted Nvidia to develop good multimedia hardware for their consoles and to stretch their legs to PC as well. However NV1 architecture, built for quadratic instead of standard triangular polygons, was too exotic and developers did not like it. Eventually, several Saturn games were ported for PC, some NV1 cards were even sold with Saturn controller. But every other 3d game was using triangles and after Nvidia delivered Direct3d driver, wrapping triangles as quadratic surfaces for their chip, the compatibility was finally exposed as minimal, missing important features like z-buffering. Until that moment Nvidia maintain course, developing new NV2 chip around same basics and tried to pursue SEGA to stick with quadratic surfaces. Under pressure from developers SEGA eventually abandoned the project, despite helping funding NV2. Nvidia was in ugly situation, there were plenty of NV1 cards in stores nobody wanted and console world was lost as well. But as the saying goes, third time is the charm.

New approach

After little success of NV1 and SEGA's refusal of NV2, Nvidia decided to make a sharp turn and adhere to industry standards as much as possible- and that for gaming accelerator meant to go along with Microsoft's DirectX. New chip NV3 should have abandoned anything proprietary and provide great compatibility with open API pushed by a force stronger than any graphics hardware vendor. What did not change was foundry and marketing partner- ST Microelectronics, developing also Ramdac and Video controller of the NV3. And ST's new 0.35 micron plant produced 3.5 million transistor chips ticking at 100 MHz. Available since summer 1997, there wasn't graphics core clocked so fast for a while. Sure, frequency is dependant on design choices and RIVA isn't exactly the fastest architecture per clock, but ST Micro was certainly part of the winning formula. In initial plans there were supposed to be again two variants, one with audio marketed by Nvidia and cheaper graphics only core for ST Micro. However, soon enough option with built in audio was scratched. With it's synchronous 128 bit wide memory bus the NV3 was not to be held back by bandwidth. This new product with amazing speed at both 2D and 3D rendering became known as RIVA: Real-time Interactive Video and Animation accelerator.

STB's popular RIVA 128 AGP board. 128 bit memory routes take a lot of space around the chip.

Reaching the top

RIVA was among first to utilize thoroughly AGP 1.0 bus, even if only using basic 66 MHz speed. With its virtual DMA bus master and driver prefetcher it was no slouch in PCI either. On AGP RIVA maintains small pipe depth and can insert new requests between data replies, for example high priority one if graphics pipeline stall is likely to occur. Claimed support of sideband addressing seems to fall short and on my system was disabled. What works is execute mode for both PCI and AGP, capability to read selectively fractions of textures from system memory. I suppose very large textures are handled similarly by tiling together smaller segments. Sizes up to 2048x2048 were very futuristic in 1997 and can't even fit. Vertex cache helps maximize triangle feed. Riva 128 features floating point setup engine significantly offloading CPU from these tasks and with 5 GFLOPS performance should not ever be a bottleneck. Nvidia claimed impressive 1.5 million transformed polygons per second.
Integer units of pixel pipeline are 8 bits wide for every component including alpha, but not in all stages and only 16 bit 3d output and z-buffer is supported. Gouraud lighting is done in true color precision and papers mentioned also 32 bit RGBA textures support, but there is no sign of it now. Besides usual perspectively corrected and sub-pixel accurate texture mapping, RIVA can also do, even enforce, lod calculations and possibly also per-pixel mip mapping. Texture cache allows "full speed" bilinear filtering, but surprisingly trilinear is not an option. Rendering output unit is connected with beefy queue strong enough for 100M pixels/sec fillrate. Such is value Nvidia claimed, but in old d3d tests I got close to it only with Gauroud shaded polygons. Interestingly enough newer tests like 3dmarks show 88 Mtexels per second, which is impressive fillrate and RIVA 128 was certainly complex high performance design. Driver supports single pass multitexturing, but of course not the hardware. The point is to relieve a CPU from texture management tasks, fillrate with second texture, blended or environmentally mapped, is halved. In blending stages is all fine except problems with additive mode I will get to later. All on chip caches amount to 12 kB, such an amount was at that time seen only at deferred rendering chips. Video and GUI engine is 128 bit wide unit with dual buffers assisting MPEG2 playback or older codecs. 230 MHz DAC allows for 1600x1200x16 2D resolution, but 4 MB of memory limits 3D to 960x720. OEMs loved RIVA and used it also in 64 bit configuration:

This NEC card with only 2 MB on board uses 64 bit memory width, maybe even with the expansion module attached. Would be interesting to benchmark, unfortunately it is probably for NEC-PC. Love the USB port.

The memory controller, while being fast and wide, was not exactly flexible. It cannot mix modules of different sizes to have the option of 6 MB card for example. There is no sign of asynchronous clock option either. All casual RIVA 128 boards had 4MB of SGRAM memory because the memory controller supported only 8 MBit chips. Fixing this was the main reason for RIVA 128ZX refresh at the beginning of 1998, allowing cost effective 8 MB local memory. ZX supported SDRAM as well, but only with 64 bit memory bus width and cards of this configuration were appearing even several years later, albeit incognito to protect brands intended for high performance products. Other advantages of the ZX chip were 133 MHz AGP operation and DAC speed raised to 250 MHz.

8 MB capacity enabled 3d gaming at resolutions up to 1280x1024.


Final drivers from March 1999 available at Nvidia website were used for usual benchmarking. For a product so old they are feature rich. But to my eye the interesting perks like per pixel mip mapping never actually changed anything. To be certain I tried older driver as well, no luck. Then there is supersampled anti-aliasing, a feature not found among cards of this generation, but there are certain conditions how to get it to work. Nvidia chose to disable them in regular drivers, however manufacturers of more serious video cards might have enable it in their drivers. ELSA did so for their Victory Erazor, and since they do not always check for vendor id some tests can be done.

Here we see on 10x enlarged section of a frame what anti-aliased image of Riva 128 looks like. On the edge of an object rendered in regular way we can most clearly observe jaggies, especially when the edge is closely alligned to horizontal or vertical axis. Below is the AA at work. The method is usually called super sampling 4x, because the image is rendered into framebuffer of doubled resolution along both axis, resulting in four times higher pixel count. Values from those four pixel colors are then averaged into single pixel during down sampling phase, when the image is reduced back into resolution which is actually send to display. Thus jaggies are greatly squashed, but at a hefty price. The so called accumulation buffer of higher resolution raises the demand for memory capacity. It is one of the reasons why Nvidia only supported the AA on Riva 128ZX with 8 MB of memory, although even 4 MB cards can employ SSAA up to certain resolution. The limit for my ZX was 1280x1024, where even single super sampled buffer exceeds amount of on-board memory. As can be expected, the performance impact is drastic and for the Riva 128 even more than usual, as the framerate can fall to 10 % of regular speed. Interestingly, the drop off is not any smaller at very small resolution when local memory capacity ought to be sufficient. It seems like there is very little the card does to implement the AA, other than rendering at higher resolution. Or the downsampling uses extra pass. In the end, it is only valuable for offline rendering and there is no wonder Nvidia disabled the option in regular driver targeting gaming.

3d is okeyish, but what happened to the text? Texel alignment tweaks are often needed.

Riva is quite a monster for DOS and GUI games and 3d gaming compatibility is almost as good. In my suite two games required blending set to compatibility mode: Falcon 4.0 and Wing Commander Prophecy. Unreal causes lots of trouble to the RIVA, OpenGL turned out to be better choice than broken Direct3d. Image quality leaves me with some mixed feelings. Dithering to 16 bit is rather harmless and alpha blended patterns are subtle. Gouroud shading is perfectly smooth and Riva has casual amount of texture shimmering. Some textures however are also too washed out, grainy or noisy. For optimal quality one should use driver control panel to find the best setting for mipmap generation. Sometimes gaps between polygons appear and non-filtered textures like texts can be off center. Those are other reasons to visit control panel often. Also brightness/gamma sometimes seems quite off. Quake 2 for example is dark so much it takes some serious tweaking to get clearer image, but deficiencies of NV3 will be more pronounced as well. Missing additive blending mode spawned certain workarounds and lightmapping is implemented via different operation. Whether subtractive or multiplicative, this either means readjustment of lightmap or darker result. Newer games could not be bothered to help an old chip and Riva 128 will display more blending errors. Shadows of the Empire shown that Nvidia managed to emulate fog table of 3dfx. As always you can check out screenshots in the gallery.

Pick your poison Gordon, washed out Direct3d or darkness of OpenGL?

There is also Riva 128 ZX gallery, I can confirm no change in image quality.


In previous reviews Riva 128 already beaten Voodoo Graphics and fall short to Intel 740. Only other high performance graphics to compare it with is then the Rage Pro. Here comes one ancient ATi vs Nvidia comparison:

And victory from round one goes to Santa Clara. Riva 128 has average framerate 20% higher and leads also in minimal framerates by almost the same amount. Keep in mind the Rage Pro has half the memory bandwidth. The ZX refresh pushed the RIVA bit further, it can rival the i740 in pure speed.

Success story

RIVA 128 was the savior Nvidia needed, challenging fastest 2d and 3d boards while being more elegant, highly integrated solution. It took a while until drivers matured, fixed most of image quality quirks and perform strongly in OpenGL as well. Final result among graphics accelerator of 1997 is admirable. Nvidia was back on the map and had to find a high volume manufacturer for rapidly increasing demand. 1998 started with the RIVA 128ZX refresh and in the summer came dual pipeline TNT chip to rain on Voodoo2 parade. With delay, but still first to match 3dfx speed with single all around high performance chip and animosity between the two was growing. In the first half of 1999 TNT2 fought strong against similar chips of 3dfx, ATi and Matrox, but the landscape changed for good in second half of the year when four pipeline TnL GeForce chip found no challenger and decorated Nvidia with leadership in both performance and features. 3dfx was not to recover and ended up being Nvidia's big acquisition. The company was not only prospering, it was clearly on a way to domination, but eventually gave ATi room to shine with FX architecture, ill suited for new pixel shading model. The discrete graphics market was divided among few barely surviving, trailing competitors and Nvidia with ATi at the top. Till now Nvidia remains most popular GPU maker and expands beyond gaming solutions into professional and mobile space as well. Their position may still not be safe, with Intel and AMD having safer space to use own graphics inside their platforms. Who knows what future will bring but past record is immense success: Nvidia had overcome bad start, created many great designs and GeForce is the most famous brand of 3d accelerators.