# RIVA TNT2

The RIVA TNT2 is a graphics processing unit manufactured by Nvidia starting in early 1999. The chip is codenamed "NV5" because it is the 5th graphics chip design by Nvidia, succeeding the RIVA TNT (NV4). RIVA is an acronym for Real-time Interactive Video and Animation accelerator. The "TNT" suffix refers to the chip's ability to work on two texels at once (TwiN Texel). Nvidia removed RIVA from the name later in the chip's lifetime.

## Overview

The TNT2 core features the same basic dual-pipeline layout as the RIVA TNT, however with a few updates, such as larger 2048x2048 texture support, 32-bit Z-buffer/stencil support, AGP 4X support, up to 32MB of VRAM, and a process shrink from 0.35 μm to 0.25 μm. It was the process shrink that enabled improved clock speeds (from 90 MHz to 150+ MHz), which is where the substantial performance improvement came from.
A low-cost version, known as the TNT2 M64, was produced with the memory interface reduced from 128-bit to 64-bit. Sometimes these were labeled "Vanta", continuing the Vanta name started with a value-oriented RIVA TNT-based product. This chipset outperformed the older RIVA TNT while being less costly to produce. They proved quite popular in the OEM market, as most consumers simply assumed all TNT2 cards were the same.

## Product comparisons

RIVA TNT2's competition included the 3dfx Voodoo2, 3dfx Voodoo3, the Matrox G400, and the ATI Rage 128. The main competitor to the TNT2 was the Voodoo3, which compared to the TNT2 lacked 32-bit color output in 3D. This was a distinguishing point for the TNT2, while the Voodoo3 was marketed under the premise of superior speed and game compatibility. The 3dfx Glide API was still popular at this time, and frequently performed faster and with better image quality than non-vendor locked APIs Direct3D and OpenGL. Some games also had exclusive 3D features when used with Glide, including Wing Commander: Prophecy, and the popular Unreal had a troubled development history with regards to Direct3D and was plagued by issues such as missing details in this mode.
Voodoo3 cards render internally in 32-bit precision color depth. This is dithered down for the 16-bit framebuffer, which is then postprocessed by a 2x2 box filter in the RAMDAC, dubbed "22-bit equivalent" output by marketing. While this results in markedly less dithering than TNT2's 16-bit output, it is not equivalent to real 32-bit output. The postprocessed nature of the effect also meant that framebuffer captures did not display it, which lead to erroneous claims equating TNT2 16-bit quality to Voodoo3 when in many titles of the day Voodoo3 16-bit quality was closer to TNT2 32-bit quality in practice. 32-bit rendering became much more important with heavier use of alphablending and multipass effects in games, however.
The Voodoo3 and TNT2 also differ in that the Voodoo3 has a single dual-texturing pipeline (1x2), while the TNT2 has two single-texturing pipelines (2x1). This means that in games which only put a single texture on a polygon face at once, the TNT2 can be more efficient and faster. However, when TNT2 was launched, single-texturing was no longer used in most new games.
One fact that many hardware review sites noted was that the TNT2 could still be outperformed by two 3dfx Voodoo2 running in SLI mode. In games that supported the Glide API, Voodoo2 SLI setups were able to consistently perform faster and offer better image quality than the TNT2. Voodoo2 cards were more than a year old, but, when combined, could still outperform then-current Nvidia technology.

## Variants

Falcon Northwest, a high-end PC company, and Guillemot, an international video card manufacturer, at one point cooperated to create the Falcon Northwest Special Edition Maxi Gamer Xentor 32 SE. It was a TNT2 Ultra card designed to operate at a record-breaking 195 MHz core and similarly impressive 235 MHz RAM. This was far and away the highest clocked TNT2 model released. The card used special extremely low latency (for the time) 4.3 ns SDRAM to achieve the high RAM clock speed. The regular Maxi Gamer Xentor 32 came with the core clocked at 175 MHz and memory at either 183 MHz or 195 MHz, depending on which RAM chips the board arrived with.
The Creative 3D Blaster TNT2 Ultra came clocked at the standard 150 MHz core and 183 MHz RAM. However, Creative included a unique software package that allowed the user to run software that used 3dfx's Glide. This wrapper, named Unified, was not as compatible with Glide games as real 3dfx hardware, but it was also the only card available other than a 3dfx card that could run Glide software. This Glide wrapper was very slow, not without issues, and was rather unstable. The main use of the wrapper was to allow 3D acceleration of games that only supported Glide 3D accelerators.
Hercules equipped their Dynamite TNT2 Ultra with faster-than-stock components, as well. The card came with a 175 MHz core clock and 200 MHz memory. The card lacked TV output, however.
ELSA's Erazor III came clocked at non-Ultra TNT2 rates but included "3D Revelator" shutter glasses. These glasses made games look as though they were coming out of the screen, and worked with both Direct3D and some OpenGL titles.

## Aladdin TNT2 chipset

ALi integrated the RIVA TNT2 core into the motherboard chipset Aladdin TNT2. The northbridge ALi M1631 with graphic core was commonly paired with a M1535D southbridge and was prepared for the low-cost Socket 370 motherboards. Aladdin TNT2 offers support for both a local frame buffer (4-32MB) as well as unified memory mode. Frame buffer memory operated at 150 MHz and used 64-bit bus. This lacked an external AGP 4x port for a separate graphic card. With an integrated local frame buffer, TNT2 core offered similar speed compared to the separate TNT2 M64 AGP cards. Main motherboard manufacturers like Asus prepared boards with the Aladdin TNT2 and local memory. But solution was mostly known from low-cost and low-quality boards without separate memory. Boards like PC-CHIPS M754LMR (used chipset relabelled to PC133 GfX Pro) were known for both low speed and low stability. TNT2 graphic speed was crippled by missing local frame buffer and slow access to the main memory.

## Chipset table

| Model | Launch | Code name | Fab (nm) | Transistors (million) | Die size (mm$^2$) | Bus interface | Core clock (MHz) | Memory clock (MHz) | Core config | Fillrate | Fillrate | Fillrate | Fillrate | Memory | Memory | Memory | Memory | TDP (Watts) | Latest API support | Latest API support |
| Model | Launch | Code name | Fab (nm) | Transistors (million) | Die size (mm$^2$) | Bus interface | Core clock (MHz) | Memory clock (MHz) | Core config | MOperations/s | MPixels/s | MTexels/s | MVertices/s | Size (MB) | Bandwidth (GB/s) | Bus type | Bus width (bit) | TDP (Watts) | Direct3D | OpenGL |
| Riva TNT2 M64 | October 1999 | NV6 | TSMC 250 nm | | | AGP 4x, PCI | 125 | 150 | 2:2:2 | 250 | 250 | 250 | 0 | 8 16 32 | 1.2 | SDR | 64 | ? | 6.0 | 1.2 |
| Riva TNT2 | March 15, 1999 | NV5 | TSMC 250 nm | 15 | 90 | AGP 4x, PCI | 125 | 150 | 2:2:2 | 250 | 250 | 250 | 0 | 16 32 | 2.4 | SDR | 128 | ? | 6.0 | 1.2 |
| Riva TNT2 Pro | October 12, 1999 | NV5 | TSMC 220 nm | 15 | 90 | AGP 4x, PCI | 143 | 166 | 2:2:2 | 286 | 286 | 286 | 0 | 16 32 | 2.656 | SDR | 128 | ? | 6.0 | 1.2 |
| Riva TNT2 Ultra | March 15, 1999 | NV5 | TSMC 250 nm | 15 | 90 | AGP 4x, PCI | 150 | 183 | 2:2:2 | 300 | 300 | 300 | 0 | 16 32 | 2.928 | SDR | 128 | ? | 6.0 | 1.2 |
* ↑ Pixel pipelines: texture mapping units: render output units

## Competing chipsets

* 3dfx Voodoo2
* 3dfx Voodoo3
* Matrox G400
* ATI Rage 128
* S3 Graphics Savage4