The RIVA 128, or "NV3", was a consumer graphics processing unit created in 1997 by Nvidia. It was the first 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.[2]

Nvidia RIVA 128
Release dateAugust 25, 1997; 27 years ago (1997-08-25)[1][non-primary source needed]
CodenameNV3
Cards
High-endRIVA 128, ZX
DirectXDirect3D 5.0
History
PredecessorNV1
SuccessorRIVA TNT
Support status
Unsupported

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.

Diamond Viper V330 4Mb @ RIVA 128 GPU
An ASUS RIVA 128ZX AGP

History

edit

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.[3] 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.[4] 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.[4]

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

Architecture

edit
 
RIVA 128 GPU
 
RIVA 128ZX GPU
 
Die shot of the RIVA 128ZX

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.[3][4][5]

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.[2][6][7] 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.[2] There are 12 KiB of on-chip memory used for pixel and vertex caches.[2] 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.[8] 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.[2] 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.[2] 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.[9]

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.[10] The ZX version was fabricated by SGS-Thomson and TSMC, and uses an 8 MB SGRAM memory chip, clocked at 125 MHz, from Samsung Electronics.[6][11]

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.[12] 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.[12]

The next major chip from Nvidia would be the RIVA TNT.[13][14]

Image quality

edit
 
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.[5]

With initial drivers, the RIVA 128 used per-polygon mipmapping instead of the much higher-quality, but more demanding, per-pixel variety.[5] 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 APIs

edit

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.[8] 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.[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.

Performance

edit

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.[8][9]

Chipset table

edit
Model
Launch
Transistors (million)
Die size (mm2)
Core clock (MHz)
Memory clock (MHz)
Core config[a]
Fillrate Memory
TDP (Watts)
Latest API support
MOperations/s
MPixels/s
MTexels/s
MVertices/s
Size (MB)
Bandwidth (GB/s)
Bus type
Bus width (bit)
Riva 128 August 25, 1997 NV3 SGS 350 nm 4[16] 90 AGP 1x,[17] 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 ?

Competing chipsets

edit

See also

edit

References

edit
  1. ^ Nvidia Corporation (August 25, 1997). "NVIDIA Announces Major OEM Design Wins For The RIVA 128 3D Multimedia Accelerator" (Press release). Archived from the original on June 13, 1998. Retrieved April 21, 2020.
  2. ^ a b c d e f RIVA 128 Brochure, Nvidia, accessed October 9, 2007.
  3. ^ a b c d e Witt, Stephen (November 27, 2023). "How Jensen Huang's Nvidia Is Powering the A.I. Revolution". The New Yorker. Archived from the original on November 27, 2023. Retrieved December 5, 2023.
  4. ^ a b c Cohen, Ben (May 18, 2024). "The 84-Year-Old Man Who Saved Nvidia". The Wall Street Journal. Archived from the original on May 18, 2024.
  5. ^ a b c Peddie, Jon (September 23, 2019). "Nvidia's RIVA 128". Electronic Design. Archived from the original on January 19, 2024. Retrieved August 27, 2024.
  6. ^ a b Nvidia sets unprecedented 3D performance level with new RIVA 128ZX processor press release, Nvidia, accessed December 3, 2023.
  7. ^ RIVA 128 gains support as preferred Direct3D developer platform press release, Nvidia, accessed December 3, 2023.
  8. ^ a b c STB VELOCITY 128 REVIEW (PCI), Rage's Hardware, February 7, 1998. Archived on December 1, 1998.
  9. ^ a b Review AGP Graphic Cards, Tom's Hardware, October 27, 1997.
  10. ^ Covey, Alf. STB Velocity 128 vs STB Velocity 128zx What is the difference?, STB Technical Support, June 3, 1998.
  11. ^ Hong, Samuel Setoh Kok (11 October 1998). "ELSA Victory Erazor LT Riva 128ZX Review". HardwareZone. Retrieved 31 December 2009.
  12. ^ a b RIVA 128/ZX/TNT FAQ Archived 2006-10-06 at the Wayback Machine, Nvidia, accessed October 9, 2007.
  13. ^ Turner, Daniel Drew (May 16, 2002). "The prince of polygons". Salon. Archived from the original on February 24, 2021. Retrieved August 28, 2024.
  14. ^ Anand Lal Shimpi (September 6, 1998). "Canopus SPECTRA 2500 Riva TNT". AnandTech. Retrieved August 28, 2024.
  15. ^ "3D accelerator database". Vintage 3D. Archived from the original on 23 October 2018. Retrieved 30 August 2024.
  16. ^ "NVIDIA NV3 GPU Specs | TechPowerUp GPU Database". 30 August 2024.
  17. ^ "RIVA 128/ZX/TNT FAQ". Archived from the original on June 16, 2018. Retrieved August 30, 2024.
edit