Template:Short description Template:Infobox GPU The RIVA 128, or "NV3", was a consumer graphics processing unit created in 1997 by Nvidia. It was the first nVidia product to integrate 3D acceleration in addition to traditional 2D and video acceleration. Its name is an acronym for Real-time Interactive Video and Animation accelerator.<ref name=NVRIVA128brochure>RIVA 128 Brochure, Nvidia, accessed October 9, 2007.</ref>

The RIVA 128 followed Nvidia's less successful "NV1" accelerator and was the first product to gain Nvidia widespread recognition. It was also a major change in Nvidia's technological direction.

File:Diamond Viper V330 AGP @ nVIDIA RIVA 128.jpg
Diamond Viper V330 4Mb @ RIVA 128 GPU
File:ASUS RIVA 128ZX.png
An ASUS RIVA 128ZX AGP

HistoryEdit

By 1996, Nvidia was in poor shape financially. It had initially pursued a completely different type of rendering technology called quadratic texture mapping with its first product, the NV1.<ref name="Witt">Template:Cite magazine</ref> Then the company had spent a year trying to use its inferior technology to build the graphics chip for Sega's Dreamcast video game console.<ref name="wsj cohen 2024">Template:Cite news</ref> Sega finally had to pull the plug on Nvidia's project and switch vendors, but was convinced to keep Nvidia alive with a $5 million investment.<ref name="wsj cohen 2024" />

Nvidia then laid off half of its 100 employees and focused its remaining resources on developing the RIVA 128.<ref name="Witt" /> By the time the RIVA 128 was released in August 1997, Nvidia was down to one month of payroll.<ref name="Witt" /> This extremely desperate situation resulted in what remains "the unofficial company motto" today: "Our company is thirty days from going out of business".<ref name="Witt" />

ArchitectureEdit

The RIVA 128 was built to render within the Direct3D 5 and OpenGL API specifications. It was designed to accelerate Direct3D to the utmost extent possible, as a departure from Nvidia's NV1 chip. The NV1 chip had been designed for a completely different type of rendering technology called quadratic texture mapping, which is not supported by Direct3D.<ref name="Witt"/><ref name="wsj cohen 2024"/><ref name="Peddie">Template:Cite news</ref>

The graphics accelerator consists of 3.5 million transistors built on SGS-Thomson's 5LM 350 nm fabrication process and is clocked at 100 MHz.<ref name=NVRIVA128brochure /><ref name=NVRIVA128ZXpressrelease>Nvidia sets unprecedented 3D performance level with new RIVA 128ZX processor press release, Nvidia, accessed December 3, 2023.</ref><ref name=NVRIVA128D3Dpressrelease>RIVA 128 gains support as preferred Direct3D developer platform press release, Nvidia, accessed December 3, 2023.</ref> RIVA 128 has a single pixel pipeline capable of 1 pixel per clock when sampling one texture. It is specified to output pixels at a rate of 100 million per second and 25-pixel triangles at 1.5 million per second.<ref name=NVRIVA128brochure /> There are 12 KiB of on-chip memory used for pixel and vertex caches.<ref name=NVRIVA128brochure /> The chip was limited to a 16-bit (Highcolor) pixel format when performing 3D acceleration and a 16-bit Z-buffer.

The 2D accelerator engine within the RIVA 128 is 128 bits wide and also operates at 100 MHz. In this "fast and wide" configuration, as Nvidia referred to it, the RIVA 128 performed admirably for GUI acceleration compared to competitors.<ref name=ragesvelocity128>STB VELOCITY 128 REVIEW (PCI), Rage's Hardware, February 7, 1998. Archived on December 1, 1998.</ref> A 32-bit hardware VESA-compliant SVGA/VGA core was implemented as well. Video acceleration aboard the chip is optimized for MPEG-2 but lacks full acceleration of that standard. Final picture output is routed through an integrated 206 MHz RAMDAC.<ref name=NVRIVA128brochure /> RIVA 128 had the advantage of being a combination 2D/3D graphics chip, unlike Voodoo Graphics. This meant that the computer did not require a separate 2D card for output outside of 3D applications. It also allowed 3D rendering within a window. The ability to build a system with just one graphics card, and still have it be feature-complete for the time, made the RIVA 128 a lower-cost high-performance solution.

Nvidia equipped the RIVA 128 with 4 MiB of SGRAM, a new memory technology for the time, clocked at 100 MHz and connected to the graphics processor via a 128-bit memory bus.<ref name=NVRIVA128brochure /> This provides memory bandwidth of 1.60 gigabytes per second. The memory was used in a unified memory architecture that shared the whole RAM pool with both framebuffer and texture storage. The main benefit of this, over a split design such as that on Voodoo Graphics and Voodoo², was support for 3D resolutions of 800×600 and 960×720, higher than Voodoo's 640×480.<ref name=tomshardwarer128>Review AGP Graphic Cards, Tom's Hardware, October 27, 1997.</ref>

In early 1998, Nvidia released a refreshed version called the RIVA 128 ZX. This refreshed design of NV3 increased memory support to 8 MiB and increased RAMDAC frequency to 250 MHz. These additions allowed the RIVA 128 ZX to support higher resolutions and refresh rates.<ref>Covey, Alf. STB Velocity 128 vs STB Velocity 128zx What is the difference?, STB Technical Support, June 3, 1998.</ref> The ZX version was fabricated by SGS-Thomson and TSMC, and uses an 8Template:NbspMB SGRAM memory chip, clocked at 125Template:NbspMHz, from Samsung Electronics.<ref name=NVRIVA128ZXpressrelease/><ref>Template:Cite news</ref>

The RIVA 128 had an AGP 1X bus interface, whereas the ZX version of it was one of the early AGP 2X parts, giving it some more marketing headroom by being on the forefront of interface technology. The graphics processor was built around Intel's AGP specification targeting the Intel 440LX chipset for the Pentium II. Nvidia designed the RIVA 128 with a maximum memory capacity of 4 MiB because, at the time, this was the cost-optimal approach for a consumer 3D accelerator.<ref name=NVRIVA128FAQ>RIVA 128/ZX/TNT FAQ Template:Webarchive, Nvidia, accessed October 9, 2007.</ref> This was the case partly because of the chip's capability to store textures in off-screen system RAM in both PCI or AGP configurations.<ref name=NVRIVA128FAQ />

The next major chip from Nvidia would be the RIVA TNT.<ref name=salon>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name=spectra2500>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Image qualityEdit

File:Quake2onRIVA128.jpg
Quake II on RIVA 128 (final drivers)

At the time of the RIVA 128's release, 3Dfx Voodoo Graphics had firmly established itself as the 3D hardware benchmark against which all newcomers were compared. The Voodoo was the first 3D game accelerator to offer exceptional performance and quality. The RIVA 128 was scorned for its lower quality rendering (compared to the Voodoo) and rendering errors.<ref name="Peddie"/>

With initial drivers, the RIVA 128 used per-polygon mipmapping instead of the much higher-quality, but more demanding, per-pixel variety.<ref name="Peddie"/> This caused the different texture detail levels to "pop" into place as the player moved through a game and approached each polygon, instead of allowing a seamless, gradual per-pixel transition. Nvidia eventually released drivers that allowed a per-pixel mode. Another issue with the card's texturing was its use of automated mipmap generation. While this improves visual quality and performance in games without mipmaps, it also caused unforeseen problems because it forced games to render in a way that they were not programmed for.

NV3's bilinear filtering was actually "sharper" than that of 3Dfx Voodoo Graphics. But, while it did not blur textures as much as Voodoo, it did instead add some light noise to textures, because of a lower-fidelity filtering algorithm. There were also problems with noticeable seams between polygons.

While initial drivers did present these image-quality problems, later drivers offered image quality arguably matching that of Voodoo Graphics. In addition, because the RIVA 128 can render at resolutions higher than 640×480, the card can offer quality superior to that of Voodoo Graphics, as shown in the above Quake II screenshot. The final drivers released for the RIVA 128 support per-pixel mipmapping, full-scene anti-aliasing (supersampling), and a number of options to fine-tune features in order to optimize quality and performance.

Drivers and APIsEdit

Drivers were, for a significant portion of the card's life, rather rough. Not only were the aforementioned Direct3D issues apparent, but the card lacked good OpenGL support.<ref name=ragesvelocity128 /> With RIVA 128, Nvidia began their quest for top-quality OpenGL support, eventually resulting in the board being a capable OpenGL performer. One major disadvantage for Nvidia was that many games during RIVA 128's lifetime used 3Dfx's proprietary Glide API. Legally, only 3Dfx cards could use 3Dfx's Glide API.

Like the competing ATI Rage Pro, RIVA 128 was never able to accelerate the popular Unreal Engine in Direct3D mode due to missing hardware features. It was, however, possible to use the engine's OpenGL renderer, but unfortunately OpenGL support was quite slow and buggy in the original Unreal Engine. Performance in Quake III Arena, a game using an engine more advanced than Unreal Engine 1, was better due to the engine having been designed for OpenGL.Template:Citation needed

Nvidia's final RIVA 128 drivers for Windows 9x include a full OpenGL driver. However, for this driver to function, Windows must be set with a desktop color depth of 16-bit.

A driver for RIVA 128 is also included in Windows 2000 and XP, but lacks 3D support. A beta driver with OpenGL support was once leaked by Nvidia but was canceled later, and there is no Windows 2000 driver for RIVA 128 on Nvidia's driver site today. Neither the beta driver nor the ones come with Windows 2000/XP could support Direct3D.

PerformanceEdit

At the time, RIVA 128 was one of the first combination 2D/3D cards that could rival Voodoo Graphics. RIVA 128's 2D capability was seen as impressive for its time and was competitive with even high-end 2D-only graphics cards in both quality and performance.<ref name=ragesvelocity128 /><ref name=tomshardwarer128 />

Chipset tableEdit

Template:Row hover highlight

rowspan="2" style="vertical-align: bottom" Template:Vert header rowspan="2" style="vertical-align: bottom" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header rowspan="2" Template:Vert header Fillrate Memory rowspan="2" Template:Vert header Latest API support
Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header Template:Vert header
Riva 128 August 25, 1997 NV3 SGS 350 nm 4<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

90 citation CitationClass=web

}}</ref> PCI

100 100 1:1:1 100 100 100 0 4 1.6 SDR 128 ? 5.0 1.0
Riva 128ZX February 23, 1998 SGS/TSMC 350 nm AGP 2x, PCI 8 ?

Template:Notelist

Competing chipsetsEdit

See alsoEdit

ReferencesEdit

Template:Reflist

External linksEdit

Template:Sister project

Template:Nvidia