<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://nvwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Starfrost</id>
	<title>NvWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://nvwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Starfrost"/>
	<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php/Special:Contributions/Starfrost"/>
	<updated>2026-05-13T14:38:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1736</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1736"/>
		<updated>2026-03-27T17:18:22Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up a set of four 8-bit registers, one for each divider; the first register in the set is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last is used to hold the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
On NV1, there are only two configurations on the STG-1764 that directly correspond to controlling the operation of the PLLs is the low three bits of &amp;lt;code&amp;gt;SGS_DAC_POWER_MGMT_B&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x000D&amp;lt;/code&amp;gt;), which is used to switch off individual PLLs (who SGS-Thomson mysteriously misspelt as &amp;quot;PPLs&amp;quot;). The default state of these registers is off, which enables all PLLs - enabling bit 2 will disable APLL, bit 1 will disable VPLL and bit 0 disables VPLL. The base clock is always 12.096MHz, since this is the only one supported by the STG-1764 RAMDAC.&lt;br /&gt;
&lt;br /&gt;
The other set of configuration which is available is contained within the lower four bits of &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x0005&amp;lt;/code&amp;gt;). These exclusively deal with the VPLL, since the video clock needs much more configuration due to the variety of resolutions and refresh rates that the GPU and RAMDAC can output. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; VPLL-related bits&lt;br /&gt;
|-&lt;br /&gt;
! Bit(s) !! Name !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Direction: &#039;&#039;&#039;off&#039;&#039;&#039; - output, &#039;&#039;&#039;on&#039;&#039;&#039; - input. || Not sure what this means. I don&#039;t know what reversing the &amp;quot;direction&amp;quot; of the VPLL would do.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Impedance: &#039;&#039;&#039;off&#039;&#039;&#039; - &amp;quot;low&amp;quot;, &#039;&#039;&#039;on&#039;&#039;&#039; - &amp;quot;high&amp;quot; || No exact ohmage is provided. Possibly intended for board&lt;br /&gt;
|-&lt;br /&gt;
| 2:0 || Video clock display ||&lt;br /&gt;
* 0x00 - Divide by 1 (don&#039;t do anything)&lt;br /&gt;
* 0x01 - Divide by 2&lt;br /&gt;
* 0x02 - Divide by 4&lt;br /&gt;
* 0x03 - Divide by 8&lt;br /&gt;
* 0x04 - Divide by 16&lt;br /&gt;
|| Applies a post-divider to the VCLK after it is calculated. Resource Manager version 2.3 only uses values of 1 and 2; these are used to get a finer-grained control over the exact video clock. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1735</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1735"/>
		<updated>2026-03-25T21:15:46Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up a set of four 8-bit registers, one for each divider; the first register in the set is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last is used to hold the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
On NV1, there are only two configurations on the STG-1764 that directly correspond to controlling the operation of the PLLs is the low three bits of &amp;lt;code&amp;gt;SGS_DAC_POWER_MGMT_B&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x000D&amp;lt;/code&amp;gt;), which is used to switch off individual PLLs (who SGS-Thomson mysteriously misspelt as &amp;quot;PPLs&amp;quot;). The default state of these registers is off, which enables all PLLs - enabling bit 2 will disable APLL, bit 1 will disable VPLL and bit 0 disables VPLL. The base clock is always 12.096MHz, since this is the only one supported by the STG-1764 RAMDAC.&lt;br /&gt;
&lt;br /&gt;
The other set of configuration which is available is contained within the lower four bits of &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x0005&amp;lt;/code&amp;gt;). These exclusively deal with the VPLL, since the video clock needs much more configuration due to the variety of resolutions and refresh rates that the GPU and RAMDAC can output. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; VPLL-related bits&lt;br /&gt;
|-&lt;br /&gt;
! Bit(s) !! Name !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Direction: &#039;&#039;&#039;off&#039;&#039;&#039; - output, &#039;&#039;&#039;on&#039;&#039;&#039; - input. || Not sure what this means. I don&#039;t know what reversing the &amp;quot;direction&amp;quot; of the VPLL would do.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Impedance: &#039;&#039;&#039;off&#039;&#039;&#039; - &amp;quot;low&amp;quot;, &#039;&#039;&#039;on&#039;&#039;&#039; - &amp;quot;high&amp;quot; || No exact ohmage is provided. Possibly intended for board&lt;br /&gt;
|-&lt;br /&gt;
| 2:0 || Video clock display ||&lt;br /&gt;
* 0x00 - Divide by 1 (don&#039;t do anything)&lt;br /&gt;
* 0x01 - Divide by 2&lt;br /&gt;
* 0x02 - Divide by 4&lt;br /&gt;
* 0x03 - Divide by 8&lt;br /&gt;
* 0x04 - Divide by 16&lt;br /&gt;
|| Applies a post-divider to the VCLK after it is calculated. Resource Manager version 2.3 only uses dividers of one and two.  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1734</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1734"/>
		<updated>2026-03-25T21:10:10Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up four 8-bit registers, one for each divider; the first register is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
On NV1, there are only two configurations on the STG-1764 that directly correspond to controlling the operation of the PLLs is the low three bits of &amp;lt;code&amp;gt;SGS_DAC_POWER_MGMT_B&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x000D&amp;lt;/code&amp;gt;), which is used to switch off individual PLLs (who SGS-Thomson mysteriously misspelt as &amp;quot;PPLs&amp;quot;). The default state of these registers is off, which enables all PLLs - enabling bit 2 will disable APLL, bit 1 will disable VPLL and bit 0 disables VPLL. The base clock is always 12.096MHz, since this is the only one supported by the STG-1764 RAMDAC.&lt;br /&gt;
&lt;br /&gt;
The other set of configuration which is available is contained within the lower four bits of &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x0005&amp;lt;/code&amp;gt;). These exclusively deal with the VPLL, since the video clock needs much more configuration due to the variety of resolutions and refresh rates that the GPU can run at. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; V PLL-related bits&lt;br /&gt;
|-&lt;br /&gt;
! Bit(s) !! Name !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Direction: &#039;&#039;&#039;off&#039;&#039;&#039; - output, &#039;&#039;&#039;on&#039;&#039;&#039; - input. || Not sure what this means. I don&#039;t know what reversing the &amp;quot;direction&amp;quot; of the VPLL would do.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Impedance: &#039;&#039;&#039;off&#039;&#039;&#039; - &amp;quot;low&amp;quot;, &#039;&#039;&#039;on&#039;&#039;&#039; - &amp;quot;high&amp;quot; || No exact ohmage is provided. Possibly intended for board&lt;br /&gt;
|-&lt;br /&gt;
| 2:0 || Video clock display ||&lt;br /&gt;
* 0x00 - Divide by 1 (don&#039;t do anything)&lt;br /&gt;
* 0x01 - Divide by 2&lt;br /&gt;
* 0x02 - Divide by 4&lt;br /&gt;
* 0x03 - Divide by 8&lt;br /&gt;
* 0x04 - Divide by 16&lt;br /&gt;
|| Applies a post-divider to the VCLK after it is calculated. Resource Manager version 2.3 only uses dividers of one and two.  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1733</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1733"/>
		<updated>2026-03-25T21:08:07Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up four 8-bit registers, one for each divider; the first register is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
On NV1, there are only two configurations on the STG-1764 that directly correspond to controlling the operation of the PLLs is the low three bits of &amp;lt;code&amp;gt;SGS_DAC_POWER_MGMT_B&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x000D&amp;lt;/code&amp;gt;), which is used to switch off individual PLLs (who SGS-Thomson mysteriously misspelt as &amp;quot;PPLs&amp;quot;). The default state of these registers is off, which enables all PLLs - enabling bit 2 will disable APLL, bit 1 will disable VPLL and bit 0 disables VPLL.&lt;br /&gt;
&lt;br /&gt;
The other set of configuration which is available is contained within the lower four bits of &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x0005&amp;lt;/code&amp;gt;). These exclusively deal with the VPLL, since the video clock needs much more configuration due to the variety of resolutions and refresh rates that the GPU can run at. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;SGS_DAC_CONFIG_1&amp;lt;/code&amp;gt; V PLL-related bits&lt;br /&gt;
|-&lt;br /&gt;
! Bit(s) !! Name !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Direction: &#039;&#039;&#039;off&#039;&#039;&#039; - output, &#039;&#039;&#039;on&#039;&#039;&#039; - input. || Not sure what this means. I don&#039;t know what reversing the &amp;quot;direction&amp;quot; of the VPLL would do.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Impedance: &#039;&#039;&#039;off&#039;&#039;&#039; - &amp;quot;low&amp;quot;, &#039;&#039;&#039;on&#039;&#039;&#039; - &amp;quot;high&amp;quot; || No exact ohmage is provided. Possibly intended for board&lt;br /&gt;
|-&lt;br /&gt;
| 2:0 || Video clock display ||&lt;br /&gt;
* 0x00 - Divide by 1 (don&#039;t do anything)&lt;br /&gt;
* 0x01 - Divide by 2&lt;br /&gt;
* 0x02 - Divide by 4&lt;br /&gt;
* 0x03 - Divide by 8&lt;br /&gt;
* 0x04 - Divide by 16&lt;br /&gt;
|| Applies a post-divider to the VCLK after it is calculated. Resource Manager version 2.3 only uses dividers of one and two.  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1732</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1732"/>
		<updated>2026-03-25T19:54:38Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: Add PLL config 000d 2:0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up four 8-bit registers, one for each divider; the first register is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
On NV1, the only configuration on the STG-1764 that directly corresponds to controlling the operation of the PLLs is the low three bits of &amp;lt;code&amp;gt;SGS_DAC_POWER_MGMT_B&amp;lt;/code&amp;gt; (SGS DAC register &amp;lt;code&amp;gt;0x000D&amp;lt;/code&amp;gt;), which are used to switch off individual PLLs (mysteriously misspelt as &amp;quot;PPLs&amp;quot;); enabling bit 2 will disable APLL, bit 1 will disable VPLL and bit 0 would disable VPLL.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1731</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1731"/>
		<updated>2026-03-25T17:23:28Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up four 8-bit registers, one for each divider; the first register is used to hold the &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, the second the &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, the third the &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt; and the last the &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;APLL&amp;lt;/code&amp;gt; || Used to drive the audio system, although I am not sure exactly what it does - perhaps it drives the AD1845 SoundPort codec chip || DAC space &amp;lt;code&amp;gt;0x14-0x17&amp;lt;/code&amp;gt; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; || Used to drive the video signal || DAC space &amp;lt;code&amp;gt;0x10-0x13&amp;lt;/code&amp;gt; || Clock speed dependent on chosen refresh rate and resolution. Typically within the range of 40 to a maximum of 170MHz.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used by these registers (except in NV1)&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1730</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1730"/>
		<updated>2026-03-25T17:15:59Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs which are used for different purposes and are presented in this table. In the NV1, the organisation of the registers for the clock dividers is slightly different - since they are located within the STG-1764 DAC, they are not located within MMIO but are actually located inside the internal register space of the 1764, which uses 8-bit registers. This, as well as the ultimately never used OPLL, means that each PLL takes up four 8-bit registers, one for each divier&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Clock sources on the NV1&lt;br /&gt;
|-&lt;br /&gt;
! PLL !! Purpose !! MMIO address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; || The name means &#039;&#039;&#039;M&#039;&#039;&#039;emory PLL, but actually clocks both the GPU core and the Video RAM || DAC space &amp;lt;code&amp;gt;0x18-0x1C&amp;lt;/code&amp;gt; ||&lt;br /&gt;
Set by [[VBIOS]] scripts by default, however the GPU drivers will clock the GPU themselves if the Video BIOS does not. Default values are: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Video BIOS&#039;&#039;&#039;: &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=91, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (50.033454 MHz),&lt;br /&gt;
* &#039;&#039;&#039;Drivers&#039;&#039;&#039; (if PLL command cannot be found in Video BIOS): &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;=100, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;=14, &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;=1 (43.2 MHz),&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example || Example&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1729</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1729"/>
		<updated>2026-03-25T17:06:42Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at the MMIO address range between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers starting at MMIO address &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits of the register making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be simply the clock speed of the signal coming directly from the on-board clock crystal or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the base clock speed is 10MHz, &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt; is 90, &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt; is 10 and &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt; is 1, the formula resolves as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(10000000 * 90) / (10 &amp;lt;&amp;lt; 1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which resolves to exactly 45,000,000 Hz (or 45 MHz).&lt;br /&gt;
&lt;br /&gt;
Additionally, via the configuration register at &amp;lt;code&amp;gt;0x60850C&amp;lt;/code&amp;gt;, various steps can be applied by the RAMDAC after this initial calculation. These settings are typically per-PLL; for example, a clock could be divided by a fixed divider, or its source can be changed. This aspect of the operation of the clock generators will be covered more in detail in the GPU-specific section. &lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs. &lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1728</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1728"/>
		<updated>2026-03-25T17:02:21Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and nVIDIA GPUs are no exception. In early GPUs, the system of generating phase-locked loops (PLL) was a derivative of the system used by the SGS-Thomson (now STMicro) STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}}. &lt;br /&gt;
&lt;br /&gt;
=== Initial clock system (1995-2002) ===&lt;br /&gt;
&lt;br /&gt;
The clock system in NV1 to NV2x is based in the external DAC (NV1) or on chip within in the &amp;lt;code&amp;gt;[[PRAMDAC]]&amp;lt;/code&amp;gt; functional block (NV3 or later). Where it is integrated onto the chip, it is exposed in all generations at MMIO address ranges between &amp;lt;code&amp;gt;0x680300&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;0x680FFF&amp;lt;/code&amp;gt;. In most cases (and in all cases prior to [[NV10]]), the registers staring at &amp;lt;code&amp;gt;0x680500&amp;lt;/code&amp;gt; and ending at &amp;lt;code&amp;gt;0x6805FF&amp;lt;/code&amp;gt; are used for PLL configuration; each PLL has a 32-bit{{ref|c}} register assigned to it, and there is a second 32-bit register (typically at &amp;lt;code&amp;gt;0x68050C&amp;lt;/code&amp;gt;) that is used to configure these PLLs. Each PLL register is split into three dividers{{ref|b}}, with the low 8 bits making up &amp;lt;code&amp;gt;MDIV&amp;lt;/code&amp;gt;, bits 15 through 8 making up &amp;lt;code&amp;gt;NDIV&amp;lt;/code&amp;gt;, and a three-bit (bits 18 through 16) &amp;lt;code&amp;gt;PDIV&amp;lt;/code&amp;gt;. These are combined with a base clock speed - which can be hardcoded by simply taking the signal coming directly from the on-board clock crystal, or configured via straps - in order to create the final clock speed using the following formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(base_clock_speed * NDIV) / (MDIV &amp;lt;&amp;lt; PDIV)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLLs on the NV1 ===&lt;br /&gt;
The NV1 has three PLLs. &lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note|b|}} The NV1 technically has a fourth divider, &amp;lt;code&amp;gt;ODIV&amp;lt;/code&amp;gt;, but it is always set to a value of 1 and is effectively never used.&lt;br /&gt;
{{note|c|}} Only 19 bits are actually used&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1727</id>
		<title>GPU Clocking</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=GPU_Clocking&amp;diff=1727"/>
		<updated>2026-03-25T14:47:27Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: Created page with &amp;quot;Any electronic device needs a clock source to operate, and Nvidia GPUs are no exception. In early nVIDIA GPU&amp;#039;s, the system of generating phase-locked loops (PLL) was a derivative that used by the SGS-Thomson STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from NV1 until NV20. A partial break from this system was introduced with the implementation of mult...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any electronic device needs a clock source to operate, and Nvidia GPUs are no exception. In early nVIDIA GPU&#039;s, the system of generating phase-locked loops (PLL) was a derivative that used by the SGS-Thomson STG-1764 &amp;quot;Van Gogh&amp;quot;, which was used as the external RAMDAC on the NV1. Although which PLLs existed changed, the overall system implementation was very similar from [[NV1]] until [[NV20]]. A partial break from this system was introduced with the implementation of multi-stage clocks in [[NV30]] and a full break was achieved with [[NV40]]&#039;s implementation of clock domains{{ref|a}},&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
{{note|a|}} Used to allow different parts of the GPU core to run at different clock frequencies.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV1_known_models&amp;diff=1726</id>
		<title>NV1 known models</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV1_known_models&amp;diff=1726"/>
		<updated>2026-03-19T23:07:11Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of known card models of the NVidia NV1. Attempts have been made to sort the companies by number of units sold.&lt;br /&gt;
&lt;br /&gt;
=== Diamond Multimedia ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 2120 || DRAM || 1 MB || STG2000X&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 2200 || DRAM || 2 MB || STG2000X (usually)&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 3240 || VRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 3400 || VRAM || 4 MB (2MB on &amp;quot;3D Memory Module&amp;quot;) || NV1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Videoforte ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| VF64-3DG-01 || DRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| VF64-3DG-02 || DRAM || 4 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| MAG Japan MultimediaCard MAG-8000 || EDO DRAM || 4 MB || NV1 (Seems to be a rebranded version of the 3DG-02, since the driver CD has a &amp;quot;VF64-3DG&amp;quot; folder. Serial number on listing was 000081, so very few were ever produced)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Jazz Multimedia ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| 3D Magic || DRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| 3D Magic VRAM (cancelled) || VRAM || Unknown || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Leadtek ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Proview GD400 (very few produced - all 9547) || DRAM || 1 MB || STG-2000X&lt;br /&gt;
|-&lt;br /&gt;
| Proview GV500 (cancelled) || VRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Turbo 2000B || DRAM || 1 MB or 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== YUAN ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| JRS-3DS-100 (v3.0, v6.0, v6.9 known) || DRAM  || 2 MB || STG-2000X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV1_known_models&amp;diff=1725</id>
		<title>NV1 known models</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV1_known_models&amp;diff=1725"/>
		<updated>2026-03-19T23:06:52Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of known card models of the NVidia NV1. Attempts have been made to sort the companies by number of units sold.&lt;br /&gt;
&lt;br /&gt;
=== Diamond Multimedia ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 2120 || DRAM || 1 MB || STG2000X&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 2200 || DRAM || 2 MB || STG2000X (usually)&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 3240 || VRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| Edge 3D 3400 || VRAM || 4 MB (2MB on &amp;quot;3D Memory Module&amp;quot;) || NV1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Videoforte ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| VF64-3DG-01 || DRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| VF64-3DG-02 || DRAM || 4 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| MAG Japan MultimediaCard MAG-8000 || EDO DRAM || 4 MB || NV1 (Seems to be a rebranded version of the 3DG-02, since the driver CD has a &amp;quot;VF64-3DG&amp;quot; folder)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Jazz Multimedia ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| 3D Magic || DRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
| 3D Magic VRAM (cancelled) || VRAM || Unknown || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Leadtek ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Proview GD400 (very few produced - all 9547) || DRAM || 1 MB || STG-2000X&lt;br /&gt;
|-&lt;br /&gt;
| Proview GV500 (cancelled) || VRAM || 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| Turbo 2000B || DRAM || 1 MB or 2 MB || NV1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== YUAN ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Model information&lt;br /&gt;
|-&lt;br /&gt;
! Brand name !! RAM type !! RAM amount !! Chip branding&lt;br /&gt;
|-&lt;br /&gt;
| JRS-3DS-100 (v3.0, v6.0, v6.9 known) || DRAM  || 2 MB || STG-2000X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV1&amp;diff=1724</id>
		<title>NV1</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV1&amp;diff=1724"/>
		<updated>2026-02-03T23:55:49Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV1&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV1&lt;br /&gt;
|branding=SGS-Thomson STG2000; NV1; OEM cards: Diamond Edge 3D; Jazz Multimedia 3D Magic&lt;br /&gt;
|announcement_date=22 May 1995&lt;br /&gt;
|release_date=Q3 1995&lt;br /&gt;
|end_of_production=Likely between February 26, 1996 and March 3, 1996&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;104a&amp;lt;/code&amp;gt; (SGS-Thomson; DRAM version); &amp;lt;code&amp;gt;10de&amp;lt;/code&amp;gt; (NVidia; VRAM version)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0008&amp;lt;/code&amp;gt; (main GPU)&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;0009&amp;lt;/code&amp;gt; (VGA emulation layer)&lt;br /&gt;
|buses_supported=VLB (never commercialised), PCI&lt;br /&gt;
|directx_version=2.0 (badly software emulated)&lt;br /&gt;
|opengl_version=Not supported&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Architecture reference==&lt;br /&gt;
* [[NV1 RMC]]&lt;br /&gt;
* [[NV1 known units]]&lt;br /&gt;
* [[PTIMER]]&lt;br /&gt;
* [[VBIOS]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* 644 registers, plus some extra that function as arrays&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[NV1 known models]]&lt;br /&gt;
* [[NV1 known units]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Hardware_errata&amp;diff=1723</id>
		<title>Hardware errata</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Hardware_errata&amp;diff=1723"/>
		<updated>2026-01-19T20:09:02Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of known hardware errata in Nvidia graphics cards&lt;br /&gt;
&lt;br /&gt;
== Shared across multiple GPUs ==&lt;br /&gt;
&lt;br /&gt;
== NV3 ==&lt;br /&gt;
&lt;br /&gt;
=== Early VBIOS bugs ===&lt;br /&gt;
While not technically a hardware errata, due to an unknown issue with the video BIOS code in certain very early NVidia RIVA 128 units, certain VGA functions are broken. This causes garbage characters to appear inside of the Windows 98 Startup menu while trying to boot from CD-ROM. &lt;br /&gt;
&lt;br /&gt;
This bug is known to exist in very early STB Velocity 128 units with VBIOS version 1.60, dated 8 August 1997, with GPUs manufactured in July 1997; this behaviour was discovered on a chip manufactured in week 33 of 1997, VRAM manufactured week 25, a 1.60 Velocity 128 VBIOS with a label on top reading &amp;lt;code&amp;gt;9/17/97&amp;lt;/code&amp;gt; and a final board manufacture date of 10 October 1997, and was later confirmed when this VBIOS was dumped and emulated. This behaviour does not appear to exist on VBIOSes dated 3 September 1997 and later, although it is currently unknown whether this behaviour exists in older VBIOS versions, with VBIOS versions as old as 1.40 being known to exist (however this VBIOS may have only been present in engineering samples). There is no workaround for this bug other than potentially updating the VBIOS, although using a method that involves mashing the down arrow key you can still get into Windows 98 Setup with no problems. &lt;br /&gt;
&lt;br /&gt;
It is unclear if this issue originates from Nvidia, or any modifications STB Systems may have made to the VBIOS code. While bitrot of the VBIOS flash chip was considered as a possibility, dumping the VBIOS multiple times and via multiple methods (both by reading out the &amp;lt;code&amp;gt;PROM&amp;lt;/code&amp;gt; region and reading directly from the below-1 MB area reserved for the VBIOS) proved that it was fully intact.&lt;br /&gt;
&lt;br /&gt;
=== Extremely strange behaviour on turning off interrupts ===&lt;br /&gt;
On a NV3T (RIVA 128 ZX) stepping A2 card, turning off interrupts did not turn off interrupts, but instead caused all areas of MMIO not to be mapped to a register to endlessly decrement, wrapping over to &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; when they reached zero. The card showed no outward symptoms of this extremely strange behaviour and otherwise continued to operate normally. &lt;br /&gt;
&lt;br /&gt;
=== CRTC scanline counter needs to be read twice ===&lt;br /&gt;
Under some circumstances, the CRTC scanline counter needs to be read twice to get an accurate result.&lt;br /&gt;
&lt;br /&gt;
=== NV3 DMA submission error ===&lt;br /&gt;
In the following circumstances: &lt;br /&gt;
&lt;br /&gt;
* A 16 or 32-bit blit is occurring via the DMA method;&lt;br /&gt;
* the source area has a width of less than 16 pixels;&lt;br /&gt;
* the format of the blit has alpha transparency;&lt;br /&gt;
* the blit needs to be stretched during transfer;&lt;br /&gt;
* the source of the blit is in the GPU local VRAM;&lt;br /&gt;
* the NV3 card is Revision A or B (i.e. an original RIVA 128 rather than a ZX).&lt;br /&gt;
&lt;br /&gt;
The data may be transferred incorrectly, although the mechanism of such is not known. The drivers work around this by sending the pitch of the data to be sent in bytes, rather than the width in pixels. The older hardware revisions may not account for the pitch not being the same as the width (this is further suggested by the same code not being in the 8bpp blitting code) in this case.&lt;br /&gt;
&lt;br /&gt;
== NV4 ==&lt;br /&gt;
&lt;br /&gt;
=== Random VRAM corruption at pixel clocks above 160MHz using 64-bit bus ===&lt;br /&gt;
Due to a bug in the NV4 bus arbitration hardware to do with both memory refreshes and pagetable TLB misses, random VRAM corruption may occur if the [[PSTRAPS|straps]] are set such that the card is configured to use a 64-bit bus (used in many lower-end NV3, NV4 and NV5 configurations), and the pixel clock is above 160Mhz. This, in practice, requires a refresh rate of above 60Hz, a framebuffer configured to use 32 bits per pixel mode (which 24 bits per pixel is internally considered to be as well), and a resolution of 1600x1200 or higher. Nvidia worked around this in their drivers by simply preventing the selection of any video mode where the resolution is 1600x1200x32 and the refresh rate is above 60Hz.&lt;br /&gt;
&lt;br /&gt;
=== [[VBIOS]] mapped to wrong location ===&lt;br /&gt;
Official documentation for NV4-based products states that the VBIOS should be mapped to &amp;lt;code&amp;gt;0x300000-0x300FFF&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;PROM&amp;lt;/code&amp;gt;) in BAR0. However, in practice, according to dumps on multiple revision A5 NV4 chips, it is actually mapped to &amp;lt;code&amp;gt;0x700000-0x70FFFF&amp;lt;/code&amp;gt;, which clashes with the first &amp;lt;code&amp;gt;0xFFFF&amp;lt;/code&amp;gt; bytes of [[NV4 PRAMIN|PRAMIN]] and makes that range of RAMIN unusavble (unless the ROM is disabled using PCI configuration space register 0x31?); the area that NVIDIA seemingly intended the Video BIOS to be mapepd to instead simply returns &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; for all bytes. However, this is not a problem in practice since only the areas of RAMIN starting at an offset &amp;lt;code&amp;gt;0x10000&amp;lt;/code&amp;gt; are actually used by Nvidia&#039;s drivers due to where the location of [[NV4 RAMHT|RAMHT]] is initialised to. However, it is of concern to emulator developers and those individuals hoping to program the GPU registers directly.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;PCRTC_CONFIG&amp;lt;/code&amp;gt; cannot be accessed unless another CRTC register is accessed first ===&lt;br /&gt;
The NV4 CRTC config register (configuring the [[Weitek]] licensed CRTC) cannot be accessed (for read or write) unless another CRTC register is read first on NV4 revision A. This was fixed in revision B of the NV4.&lt;br /&gt;
&lt;br /&gt;
=== TV mode: Cursor &amp;amp; overlay position inaccuracies ===&lt;br /&gt;
The cursor, as well as the overlay position may have a slightly inaccurate position if an NV4-based card is connected to a TV and the straps are configured for TV Mode. This is worked around in the drivers by Nvidia by adding an adjust value - &amp;lt;code&amp;gt;0x00010400&amp;lt;/code&amp;gt; in the case of the overlay position and &amp;lt;code&amp;gt;0x00010004&amp;lt;/code&amp;gt; for the window start position.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Hardware_errata&amp;diff=1722</id>
		<title>Hardware errata</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Hardware_errata&amp;diff=1722"/>
		<updated>2026-01-19T20:08:38Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of known hardware errata in Nvidia graphics cards&lt;br /&gt;
&lt;br /&gt;
== Shared across multiple GPUs ==&lt;br /&gt;
&lt;br /&gt;
== NV3 ==&lt;br /&gt;
&lt;br /&gt;
=== Early VBIOS bugs ===&lt;br /&gt;
While not technically a hardware errata, due to an unknown issue with the video BIOS code in certain very early NVidia RIVA 128 units, certain VGA functions are broken. This causes garbage characters to appear inside of the Windows 98 Startup menu while trying to boot from CD-ROM. &lt;br /&gt;
&lt;br /&gt;
This bug is known to exist in very early STB Velocity 128 units with VBIOS version 1.60, dated 8 August 1997, with GPUs manufactured in July 1997; this behaviour was discovered on a chip manufactured in week 33 of 1997, VRAM manufactured week 25, a 1.60 Velocity 128 VBIOS with a label on top reading &amp;lt;code&amp;gt;9/17/97&amp;lt;/code&amp;gt; and a final board manufacture date of 10 October 1997, and was later confirmed when this VBIOS was dumped and emulated. This behaviour does not appear to exist on VBIOSes dated 3 September 1997 and later, although it is currently unknown whether this behaviour exists in older VBIOS versions, with VBIOS versions as old as 1.40 being known to exist (however this VBIOS may have only been present in engineering samples). There is no workaround for this bug other than potentially updating the VBIOS, although using a method that involves mashing the down arrow key you can still get into Windows 98 Setup with no problems. &lt;br /&gt;
&lt;br /&gt;
It is unclear if this issue originates from Nvidia, or any modifications STB Systems may have made to the VBIOS code. While bitrot of the VBIOS flash chip was considered as a possibility, dumping the VBIOS multiple times and via multiple methods (both by reading out the &amp;lt;code&amp;gt;PROM&amp;lt;/code&amp;gt; region and reading directly from the below-1 MB area reserved for the VBIOS) proved that it was fully intact.&lt;br /&gt;
&lt;br /&gt;
=== Extremely strange behaviour on turning off interrupts ===&lt;br /&gt;
On a NV3T (RIVA 128 ZX) stepping A2 card, turning off interrupts did not turn off interrupts, but instead caused all areas of MMIO not to be mapped to a register to endlessly decrement, wrapping over to &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; when they reached zero. The card showed no outward symptoms of this extremely strange behaviour and otherwise continued to operate normally. &lt;br /&gt;
&lt;br /&gt;
=== CRTC scanline counter needs to be read twice ===&lt;br /&gt;
Under some circumstances, the CRTC scanline counter needs to be read twice to get an accurate result.&lt;br /&gt;
&lt;br /&gt;
=== NV3 DMA submission error ===&lt;br /&gt;
In the following circumstances: &lt;br /&gt;
&lt;br /&gt;
* A 16 or 32-bit blit is occurring via the DMA method;&lt;br /&gt;
* the source area has a width of less than 16 pixels;&lt;br /&gt;
* the format of the blit has alpha transparency;&lt;br /&gt;
* the blit needs to be stretched during transfer;&lt;br /&gt;
* the source of the blit is in the GPU local VRAM;&lt;br /&gt;
* the NV3 card is Revision A or B (i.e. an original RIVA 128 rather than a ZX).&lt;br /&gt;
&lt;br /&gt;
The data may be transferred incorrectly, although the mechanism of such is not known. The drivers work around this by sending the pitch of the data to be sent in bytes, rather than the width in pixels. The older hardware revisions may not account for the pitch not being the same as the width (this is further suggested by the same code not being in the 8bpp blitting code) in this case.&lt;br /&gt;
&lt;br /&gt;
== NV4 ==&lt;br /&gt;
&lt;br /&gt;
=== Random VRAM corruption at pixel clocks above 160MHz using 64-bit bus ===&lt;br /&gt;
Due to a bug in the NV4 bus arbitration hardware to do with both memory refreshes and pagetable TLB misses, random VRAM corruption may occur if the [[PSTRAPS|straps]] are set such that the card is configured to use a 64-bit bus (used in many lower-end NV3, NV4 and NV5 configurations), and the pixel clock is above 160Mhz. This, in practice, requires a refresh rate of above 60Hz, a framebuffer configured to use 32 bits per pixel mode (which 24 bits per pixel is internally considered to be as well), and a resolution of 1600x1200 or higher. Nvidia worked around this in their drivers by simply preventing the selection of any video mode where the resolution is 1600x1200x32 and the refresh rate is above 60Hz.&lt;br /&gt;
&lt;br /&gt;
=== [[VBIOS]] mapped to wrong location ===&lt;br /&gt;
Official documentation for NV4-based products states that the VBIOS should be mapped to &amp;lt;code&amp;gt;0x300000-0x300FFF&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;PROM&amp;lt;/code&amp;gt;) in BAR0. However, in practice, according to dumps on multiple revision A5 NV4 chips, it is actually mapped to &amp;lt;code&amp;gt;0x700000-0x70FFFF&amp;lt;/code&amp;gt;, which clashes with the first &amp;lt;code&amp;gt;0xFFFF&amp;lt;/code&amp;gt; bytes of [[NV4 PRAMIN|PRAMIN]] and makes that range of RAMIN unusavble (unless the ROM is disabled using PCI configuration space register 0x31?); the area that NVIDIA seemingly intended the Video BIOS to be mapepd to instead simply returns &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; for all bytes. However, this is not a problem in practice since only the areas of RAMIN starting at an offset &amp;lt;code&amp;gt;0x10000&amp;lt;/code&amp;gt; are actually used by Nvidia&#039;s drivers due to where the location of [[NV4 RAMHT|RAMHT]] is initialised to. However, it is of concern to emulator developers and those individuals hoping to program the GPU registers directly.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;PCRTC_CONFIG&amp;lt;/code&amp;gt; cannot be accessed unless another CRTC register is accessed first ===&lt;br /&gt;
The NV4 CRTC config register (configuring the [[Weitek]] licensed CRTC) cannot be accessed (for read or write) unless another CRTC is read first on NV4 revision A. This was fixed in revision B of the NV4.&lt;br /&gt;
&lt;br /&gt;
=== TV mode: Cursor &amp;amp; overlay position inaccuracies ===&lt;br /&gt;
The cursor, as well as the overlay position may have a slightly inaccurate position if an NV4-based card is connected to a TV and the straps are configured for TV Mode. This is worked around in the drivers by Nvidia by adding an adjust value - &amp;lt;code&amp;gt;0x00010400&amp;lt;/code&amp;gt; in the case of the overlay position and &amp;lt;code&amp;gt;0x00010004&amp;lt;/code&amp;gt; for the window start position.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1721</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1721"/>
		<updated>2026-01-13T16:57:19Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2025|04|14|df=y}}&lt;br /&gt;
| latest release version = 1.0.1&lt;br /&gt;
| latest release date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.103; 1.1.0.102&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|13|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]], [[wikipedia:Diagnostic program|Diagnostic program]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1720</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1720"/>
		<updated>2026-01-05T19:44:45Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2025|04|14|df=y}}&lt;br /&gt;
| latest release version = 1.0.1&lt;br /&gt;
| latest release date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.75&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]], [[wikipedia:Diagnostic program|Diagnostic program]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1719</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1719"/>
		<updated>2026-01-05T02:15:48Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2025|04|14|df=y}}&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]], [[wikipedia:Diagnostic program|Diagnostic program]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1718</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1718"/>
		<updated>2026-01-05T02:13:15Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2025|04|14|df=y}}&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1717</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1717"/>
		<updated>2026-01-05T02:13:05Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2025|04|14}}&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1716</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1716"/>
		<updated>2026-01-05T02:12:51Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2024|04|14}}&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1715</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1715"/>
		<updated>2026-01-05T02:12:12Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| released = {{Start date and age|2024|04|25}}&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1714</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1714"/>
		<updated>2026-01-05T02:11:40Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest release version = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1713</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1713"/>
		<updated>2026-01-05T02:11:20Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest release = 1.0.0&lt;br /&gt;
| latest release date = {{Start date and age|2025|12|31|df=y}}&lt;br /&gt;
| latest preview version = 2.0.0.59&lt;br /&gt;
| latest preview date = {{Start date and age|2026|01|05|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1712</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1712"/>
		<updated>2025-12-31T01:54:20Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) often produced dozens of SKUs for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical graphics cards.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (&amp;lt;code&amp;gt;USCALED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USTRTCH&amp;lt;/code&amp;gt; objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* Configurable frustum culling modes (clockwise/counterclockwise)&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support changed to &amp;quot;NEC mode&amp;quot; strap rather than different VBIOS&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is possible again&lt;br /&gt;
* The ability to write to &amp;lt;code&amp;gt;PSTRAPS&amp;lt;/code&amp;gt;&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to &amp;lt;code&amp;gt;0x0019&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
** Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
By April of 1997, revenues were soaring and the future of the company was secured. Therefore, nVIDIA began work on their next generation design, which would have enough time in the oven to be polished and finished on release; large refactors of both the hardware and software platforms used since [[NV1]] were undertaken. Due to this (the NV4 is the first GPU supported by modern-style multi-chip drivers, rather than requiring a separate Resource Manager branch for every single model of hardware), for a very long time (until just before the debut of CUDA) this design was considered to be the &amp;quot;base&amp;quot; level that all other designs extended, with newer GPUs being &amp;quot;NV4 compatible&amp;quot;. Despite having to be underclocked quite severely, it was still almost as fast as the Voodoo2 with several serious advantages; the GPU was released as the RIVA TNT in August 1998 and, despite some controversy over its underclocking, sold and reviewed very well. &lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* Up to 16 MB VRAM&lt;br /&gt;
* Hardware-accelerated stencil buffering (8-bit); can be interlaced with the Z buffer for higher performance and lower memory bandwidth use (&amp;quot;zeta buffer&amp;quot;)&lt;br /&gt;
* 16 DMA channels instead of 8&lt;br /&gt;
* Pushbuffer-based DMA object submission&lt;br /&gt;
** They can be 124 or 512 bytes&lt;br /&gt;
* 32-bit 3D rendering&lt;br /&gt;
* Dual texture pipes that can rasterise two texels per cycle&lt;br /&gt;
* PFIFO CACHE1 is now 128 slots deep instead of 64&lt;br /&gt;
* Class system in GPU is now the same as the class system in the Resource Manager&lt;br /&gt;
* FIFO timeslice scheduler &lt;br /&gt;
* [[NV4 PGRAPH#Colour combiners|Colour combiners]], two proto-shaders that operate on the fragments right before rasterisation - the result of one can be passed into the other.&lt;br /&gt;
* Unified memory support for iGPUs&lt;br /&gt;
* Some DVD acceleration support (such as support for various DVD colour formats like &amp;lt;code&amp;gt;A4V6YB6A4U6YA6&amp;lt;/code&amp;gt;), but I am not sure if it was finished&lt;br /&gt;
* Trilinear filtering&lt;br /&gt;
* Anisotropic filtering (kind of crappy and approximated)&lt;br /&gt;
* Texture swizzling&lt;br /&gt;
* Configurable Z buffer format (IEEE 754 float or fixed point)&lt;br /&gt;
* Up to 6 buffers&lt;br /&gt;
** Ability to swizzle buffers 2 and 5&lt;br /&gt;
** Buffers are now optionally part of the MMU with a base and limit&lt;br /&gt;
* Somewhat different &amp;lt;code&amp;gt;NvNotification&amp;lt;/code&amp;gt; format&lt;br /&gt;
* Ability to scramble the framebuffer&lt;br /&gt;
* MMIO register to change start of CRTC VGA framebuffer&lt;br /&gt;
* Even more debug registers, including ping-pong mode (what??)&lt;br /&gt;
* An extremely basic two instruction set DMA bytecode to allow jumping between different parts of DMA streams&lt;br /&gt;
* 16bpp modes are now actually 16bpp by default, not 15bpp&lt;br /&gt;
* Buffer formats &amp;lt;code&amp;gt;Z8R8G8B8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;O1Z7R8G8B8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;O1A7R8G8B8&amp;lt;/code&amp;gt; for interlacing Z and colour buffers&lt;br /&gt;
* YUV buffer formats &amp;lt;code&amp;gt;V8YB8U8YA8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;YB8V8YA8U8&amp;lt;/code&amp;gt; &lt;br /&gt;
* &amp;lt;code&amp;gt;FFINTFC&amp;lt;/code&amp;gt; registers for internal state information &lt;br /&gt;
* [[Weitek]] CRTC extended sequencer register locking was moved from sequencer register 0x6 to CRTC register 0x1F&lt;br /&gt;
** CRTC extended sequencer registers can be unlocked for read or both read and write. In NV3 they can only be unlocked for read and write&lt;br /&gt;
* &amp;lt;code&amp;gt;PRAMDAC&amp;lt;/code&amp;gt; can output 24 bit colour - the GPU still only works with 8, 16 and 32 bit colour, and it doesn&#039;t seem these modes are exposed to the display drivers.&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* 1 MB VRAM (2 and 4 are actually supported but none were ever made, although 4 MB was announced)&lt;br /&gt;
* &amp;lt;code&amp;gt;U*&amp;lt;/code&amp;gt; registers. Instead, method information can be obtained via determining which Resource Manager methods are sent to hardware.&lt;br /&gt;
* [[NV3 DMA]] mode submission&lt;br /&gt;
* PC-98 support&lt;br /&gt;
* Microsoft zero-order hold texture (&amp;lt;code&amp;gt;ZOH_MS&amp;lt;/code&amp;gt;) coordinate interpolation &lt;br /&gt;
* &amp;lt;code&amp;gt;PRAMDAC_GENERAL_CONTROL_565_MODE&amp;lt;/code&amp;gt; is removed, replaced with the &amp;lt;code&amp;gt;ALT_MODE&amp;lt;/code&amp;gt; bit, which can cause 16bpp to become 15bpp and 32bpp to become 24bpp&lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1711</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1711"/>
		<updated>2025-12-31T01:46:36Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) often produced dozens of SKUs for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical graphics cards.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (&amp;lt;code&amp;gt;USCALED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USTRTCH&amp;lt;/code&amp;gt; objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* Configurable frustum culling modes (clockwise/counterclockwise)&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support changed to &amp;quot;NEC mode&amp;quot; strap rather than different VBIOS&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is possible again&lt;br /&gt;
* The ability to write to &amp;lt;code&amp;gt;PSTRAPS&amp;lt;/code&amp;gt;&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to &amp;lt;code&amp;gt;0x0019&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
** Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
By April of 1997, revenues were soaring and the future of the company was secured. Therefore, nVIDIA began work on their next generation design, which would have enough time in the oven to be polished and finished on release; large refactors of both the hardware and software platforms used since [[NV1]] were undertaken. Due to this (the NV4 is the first GPU supported by modern-style multi-chip drivers, rather than requiring a separate Resource Manager branch for every single model of hardware), for a very long time (until just before the debut of CUDA) this design was considered to be the &amp;quot;base&amp;quot; level that all other designs extended, with newer GPUs being &amp;quot;NV4 compatible&amp;quot;. Despite having to be underclocked quite severely, it was still almost as fast as the Voodoo2 with several serious advantages&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* Up to 16 MB VRAM&lt;br /&gt;
* Hardware-accelerated stencil buffering (8-bit); can be interlaced with the Z buffer for higher performance and lower memory bandwidth use (&amp;quot;zeta buffer&amp;quot;)&lt;br /&gt;
* 16 DMA channels instead of 8&lt;br /&gt;
* Pushbuffer-based DMA object submission&lt;br /&gt;
** They can be 124 or 512 bytes&lt;br /&gt;
* 32-bit 3D rendering&lt;br /&gt;
* Dual texture pipes that can rasterise two texels per cycle&lt;br /&gt;
* PFIFO CACHE1 is now 128 slots deep instead of 64&lt;br /&gt;
* Class system in GPU is now the same as the class system in the Resource Manager&lt;br /&gt;
* FIFO timeslice scheduler &lt;br /&gt;
* [[NV4 PGRAPH#Colour combiners|Colour combiners]], two proto-shaders that operate on the fragments right before rasterisation - the result of one can be passed into the other.&lt;br /&gt;
* Unified memory support for iGPUs&lt;br /&gt;
* Some DVD acceleration support (such as support for various DVD colour formats like &amp;lt;code&amp;gt;A4V6YB6A4U6YA6&amp;lt;/code&amp;gt;), but I am not sure if it was finished&lt;br /&gt;
* Trilinear filtering&lt;br /&gt;
* Anisotropic filtering (kind of crappy and approximated)&lt;br /&gt;
* Texture swizzling&lt;br /&gt;
* Configurable Z buffer format (IEEE 754 float or fixed point)&lt;br /&gt;
* Up to 6 buffers&lt;br /&gt;
** Ability to swizzle buffers 2 and 5&lt;br /&gt;
** Buffers are now optionally part of the MMU with a base and limit&lt;br /&gt;
* Somewhat different &amp;lt;code&amp;gt;NvNotification&amp;lt;/code&amp;gt; format&lt;br /&gt;
* Ability to scramble the framebuffer&lt;br /&gt;
* MMIO register to change start of CRTC VGA framebuffer&lt;br /&gt;
* Even more debug registers, including ping-pong mode (what??)&lt;br /&gt;
* An extremely basic two instruction set DMA bytecode to allow jumping between different parts of DMA streams&lt;br /&gt;
* 16bpp modes are now actually 16bpp by default, not 15bpp&lt;br /&gt;
* Buffer formats &amp;lt;code&amp;gt;Z8R8G8B8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;O1Z7R8G8B8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;O1A7R8G8B8&amp;lt;/code&amp;gt; for interlacing Z and colour buffers&lt;br /&gt;
* YUV buffer formats &amp;lt;code&amp;gt;V8YB8U8YA8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;YB8V8YA8U8&amp;lt;/code&amp;gt; &lt;br /&gt;
* &amp;lt;code&amp;gt;FFINTFC&amp;lt;/code&amp;gt; registers for internal state information &lt;br /&gt;
* [[Weitek]] CRTC extended sequencer register locking was moved from sequencer register 0x6 to CRTC register 0x1F&lt;br /&gt;
** CRTC extended sequencer registers can be unlocked for read or both read and write. In NV3 they can only be unlocked for read and write&lt;br /&gt;
* &amp;lt;code&amp;gt;PRAMDAC&amp;lt;/code&amp;gt; can output 24 bit colour - the GPU still only works with 8, 16 and 32 bit colour, and it doesn&#039;t seem these modes are exposed to the display drivers.&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* 1 MB VRAM (2 and 4 are actually supported but none were ever made, although 4 MB was announced)&lt;br /&gt;
* &amp;lt;code&amp;gt;U*&amp;lt;/code&amp;gt; registers. Instead, method information can be obtained via determining which Resource Manager methods are sent to hardware.&lt;br /&gt;
* [[NV3 DMA]] mode submission&lt;br /&gt;
* PC-98 support&lt;br /&gt;
* Microsoft zero-order hold texture (&amp;lt;code&amp;gt;ZOH_MS&amp;lt;/code&amp;gt;) coordinate interpolation &lt;br /&gt;
* &amp;lt;code&amp;gt;PRAMDAC_GENERAL_CONTROL_565_MODE&amp;lt;/code&amp;gt; is removed, replaced with the &amp;lt;code&amp;gt;ALT_MODE&amp;lt;/code&amp;gt; bit, which can cause 16bpp to become 15bpp and 32bpp to become 24bpp&lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1710</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1710"/>
		<updated>2025-12-31T01:43:41Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) often produced dozens of SKUs for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical graphics cards.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (&amp;lt;code&amp;gt;USCALED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USTRTCH&amp;lt;/code&amp;gt; objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* Configurable frustum culling modes (clockwise/counterclockwise)&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support changed to &amp;quot;NEC mode&amp;quot; strap rather than different VBIOS&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is possible again&lt;br /&gt;
* The ability to write to &amp;lt;code&amp;gt;PSTRAPS&amp;lt;/code&amp;gt;&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to &amp;lt;code&amp;gt;0x0019&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
** Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
By April of 1997, revenues were soaring and the future of the company was secured. Therefore, nVIDIA began work on their next generation design, which would have enough time in the oven to be polished and finished on release; large refactors of both the hardware and software platforms used since [[NV1]] were undertaken. Due to this (the NV4 is the first GPU supported by modern-style multi-chip drivers, rather than requiring a separate Resource Manager branch for every single model of hardware), for a very long time (until just before the debut of CUDA) this design was considered to be the &amp;quot;base&amp;quot; level that all other designs extended, with newer GPUs being &amp;quot;NV4 compatible&amp;quot;. Despite having to be underclocked quite severely, it was still almost as fast as the Voodoo2 with several serious advantages&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* Up to 16 MB VRAM&lt;br /&gt;
* Hardware-accelerated stencil buffering (8-bit); can be interlaced with the Z buffer for higher performance and lower memory bandwidth use (&amp;quot;zeta buffer&amp;quot;)&lt;br /&gt;
* 16 DMA channels instead of 8&lt;br /&gt;
* Pushbuffer-based DMA object submission&lt;br /&gt;
** They can be 124 or 512 bytes&lt;br /&gt;
* 32-bit 3D rendering&lt;br /&gt;
* Dual texture pipes that can rasterise two texels per cycle&lt;br /&gt;
* PFIFO CACHE1 is now 128 slots deep instead of 64&lt;br /&gt;
* Class system in GPU is now the same as the class system in the Resource Manager&lt;br /&gt;
* FIFO timeslice scheduler &lt;br /&gt;
* [[NV4 PGRAPH#Colour combiners|Colour combiners]], two proto-shaders that operate on the fragments right before rasterisation - the result of one can be passed into the other.&lt;br /&gt;
* Unified memory support for iGPUs&lt;br /&gt;
* Some DVD acceleration support (such as support for various DVD colour formats like &amp;lt;code&amp;gt;A4V6YB6A4U6YA6&amp;lt;/code&amp;gt;), but I am not sure if it was finished&lt;br /&gt;
* Trilinear filtering&lt;br /&gt;
* Anisotropic filtering (kind of crappy and approximated)&lt;br /&gt;
* Texture swizzling&lt;br /&gt;
* Configurable Z buffer format (IEEE 754 float or fixed point)&lt;br /&gt;
* Up to 6 buffers&lt;br /&gt;
** Ability to swizzle buffers 2 and 5&lt;br /&gt;
** Buffers are now optionally part of the MMU with a base and limit&lt;br /&gt;
* Somewhat different &amp;lt;code&amp;gt;NvNotification&amp;lt;/code&amp;gt; format&lt;br /&gt;
* Ability to scramble the framebuffer&lt;br /&gt;
* MMIO register to change start of CRTC VGA framebuffer&lt;br /&gt;
* Even more debug registers, including ping-pong mode (what??)&lt;br /&gt;
* An extremely basic two instruction set DMA bytecode to allow jumping between different parts of DMA streams&lt;br /&gt;
* 16bpp modes are now actually 16bpp by default, not 15bpp&lt;br /&gt;
* Buffer formats &amp;lt;code&amp;gt;Z8R8G8B8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;O1Z7R8G8B8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;O1A7R8G8B8&amp;lt;/code&amp;gt; for interlacing Z and colour buffers&lt;br /&gt;
* YUV buffer formats &amp;lt;code&amp;gt;V8YB8U8YA8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;YB8V8YA8U8&amp;lt;/code&amp;gt; &lt;br /&gt;
* &amp;lt;code&amp;gt;FFINTFC&amp;lt;/code&amp;gt; registers for internal state information &lt;br /&gt;
* [[Weitek]] CRTC extended sequencer register locking was moved from sequencer register 0x6 to CRTC register 0x1F&lt;br /&gt;
** CRTC extended sequencer registers can be unlocked for read or both read and write. In NV3 they can only be unlocked for read and write&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* 1 MB VRAM (2 and 4 are actually supported but none were ever made, although 4 MB was announced)&lt;br /&gt;
* &amp;lt;code&amp;gt;U*&amp;lt;/code&amp;gt; registers. Instead, method information can be obtained via determining which Resource Manager methods are sent to hardware.&lt;br /&gt;
* [[NV3 DMA]] mode submission&lt;br /&gt;
* PC-98 support&lt;br /&gt;
* Microsoft zero-order hold texture (&amp;lt;code&amp;gt;ZOH_MS&amp;lt;/code&amp;gt;) coordinate interpolation &lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1709</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1709"/>
		<updated>2025-12-31T01:43:03Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) often produced dozens of SKUs for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical graphics cards.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (&amp;lt;code&amp;gt;USCALED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USTRTCH&amp;lt;/code&amp;gt; objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* Configurable frustum culling modes (clockwise/counterclockwise)&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support changed to &amp;quot;NEC mode&amp;quot; strap rather than different VBIOS&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is possible again&lt;br /&gt;
* The ability to write to &amp;lt;code&amp;gt;PSTRAPS&amp;lt;/code&amp;gt;&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to &amp;lt;code&amp;gt;0x0019/code&amp;gt;)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
** Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
By April of 1997, revenues were soaring and the future of the company was secured. Therefore, nVIDIA began work on their next generation design, which would have enough time in the oven to be polished and finished on release; large refactors of both the hardware and software platforms used since [[NV1]] were undertaken. Due to this (the NV4 is the first GPU supported by modern-style multi-chip drivers, rather than requiring a separate Resource Manager branch for every single model of hardware), for a very long time (until just before the debut of CUDA) this design was considered to be the &amp;quot;base&amp;quot; level that all other designs extended, with newer GPUs being &amp;quot;NV4 compatible&amp;quot;. Despite having to be underclocked quite severely, it was still almost as fast as the Voodoo2 with several serious advantages&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* Up to 16 MB VRAM&lt;br /&gt;
* Hardware-accelerated stencil buffering (8-bit); can be interlaced with the Z buffer for higher performance and lower memory bandwidth use (&amp;quot;zeta buffer&amp;quot;)&lt;br /&gt;
* 16 DMA channels instead of 8&lt;br /&gt;
* Pushbuffer-based DMA object submission&lt;br /&gt;
** They can be 124 or 512 bytes&lt;br /&gt;
* 32-bit 3D rendering&lt;br /&gt;
* Dual texture pipes that can rasterise two texels per cycle&lt;br /&gt;
* PFIFO CACHE1 is now 128 slots deep instead of 64&lt;br /&gt;
* Class system in GPU is now the same as the class system in the Resource Manager&lt;br /&gt;
* FIFO timeslice scheduler &lt;br /&gt;
* [[NV4 PGRAPH#Colour combiners|Colour combiners]], two proto-shaders that operate on the fragments right before rasterisation - the result of one can be passed into the other.&lt;br /&gt;
* Unified memory support for iGPUs&lt;br /&gt;
* Some DVD acceleration support (such as support for various DVD colour formats like &amp;lt;code&amp;gt;A4V6YB6A4U6YA6&amp;lt;/code&amp;gt;), but I am not sure if it was finished&lt;br /&gt;
* Trilinear filtering&lt;br /&gt;
* Anisotropic filtering (kind of crappy and approximated)&lt;br /&gt;
* Texture swizzling&lt;br /&gt;
* Configurable Z buffer format (IEEE 754 float or fixed point)&lt;br /&gt;
* Up to 6 buffers&lt;br /&gt;
** Ability to swizzle buffers 2 and 5&lt;br /&gt;
** Buffers are now optionally part of the MMU with a base and limit&lt;br /&gt;
* Somewhat different &amp;lt;code&amp;gt;NvNotification&amp;lt;/code&amp;gt; format&lt;br /&gt;
* Ability to scramble the framebuffer&lt;br /&gt;
* MMIO register to change start of CRTC VGA framebuffer&lt;br /&gt;
* Even more debug registers, including ping-pong mode (what??)&lt;br /&gt;
* An extremely basic two instruction set DMA bytecode to allow jumping between different parts of DMA streams&lt;br /&gt;
* 16bpp modes are now actually 16bpp by default, not 15bpp&lt;br /&gt;
* Buffer formats &amp;lt;code&amp;gt;Z8R8G8B8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;O1Z7R8G8B8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;O1A7R8G8B8&amp;lt;/code&amp;gt; for interlacing Z and colour buffers&lt;br /&gt;
* YUV buffer formats &amp;lt;code&amp;gt;V8YB8U8YA8&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;YB8V8YA8U8&amp;lt;/code&amp;gt; &lt;br /&gt;
* &amp;lt;code&amp;gt;FFINTFC&amp;lt;/code&amp;gt; registers for internal state information &lt;br /&gt;
* [[Weitek]] CRTC extended sequencer register locking was moved from sequencer register 0x6 to CRTC register 0x1F&lt;br /&gt;
** CRTC extended sequencer registers can be unlocked for read or both read and write. In NV3 they can only be unlocked for read and write&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* 1 MB VRAM (2 and 4 are actually supported but none were ever made, although 4 MB was announced)&lt;br /&gt;
* &amp;lt;code&amp;gt;U*&amp;lt;/code&amp;gt; registers. Instead, method information can be obtained via determining which Resource Manager methods are sent to hardware.&lt;br /&gt;
* [[NV3 DMA]] mode submission&lt;br /&gt;
* PC-98 support&lt;br /&gt;
* Microsoft zero-order hold texture (&amp;lt;code&amp;gt;ZOH_MS&amp;lt;/code&amp;gt;) coordinate interpolation &lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1708</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1708"/>
		<updated>2025-12-27T14:59:12Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) often produced dozens of SKUs for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical graphics cards.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (`USCALED` and `USTRTCH` objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support (&amp;quot;NEC mode&amp;quot;)&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is better again&lt;br /&gt;
* The ability to write to `PSTRAPS`&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to `0x0019`)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
* Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Hardware-accelerated stencil buffering &lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1707</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1707"/>
		<updated>2025-12-27T14:58:52Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) sometimes made dozens of mdoels for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical SKUs.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (&amp;lt;code&amp;gt;NVDAC&amp;lt;/code&amp;gt;), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL&amp;lt;/code&amp;gt; for pixel clock, varying based on resolution and color depth for controlling the CRT, and &amp;lt;code&amp;gt;MPLL&amp;lt;/code&amp;gt; for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (`USCALED` and `USTRTCH` objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support (&amp;quot;NEC mode&amp;quot;)&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is better again&lt;br /&gt;
* The ability to write to `PSTRAPS`&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to `0x0019`)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
* Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Hardware-accelerated stencil buffering &lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1706</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1706"/>
		<updated>2025-12-27T14:58:45Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest preview version = 1.0-rc3&lt;br /&gt;
| latest preview date = {{Start date and age|2025|12|26|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]], [[wikipedia:Windows 3.x|Windows 3.x]] and [[wikipedia:Windows 9x|Windows 9x]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware; it can run in a Windows 9x DOSbox, and has also been tested on Windows 3.1 and even 3.0, so can be run at the same time as NVIDIA&#039;s drivers. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Emulation_status&amp;diff=1705</id>
		<title>Emulation status</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Emulation_status&amp;diff=1705"/>
		<updated>2025-12-27T14:57:52Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details the emulation status for various NVIDIA GPUs.&lt;br /&gt;
&lt;br /&gt;
== NV3 ==&lt;br /&gt;
Emulation is &#039;&#039;&#039;partially working&#039;&#039;&#039;. Most of the pipeline exists, the GPU is detected and drivers initialise on all known supported operating systems, and 2D partially works. The S2SB issue has been fixed, but buffer 0 is still not being set up correctly. Additionally, the DMA engine, required for 3D, is not yet emulated correctly (the format is understood but there are issues determining what to send).&lt;br /&gt;
&lt;br /&gt;
== NV4 ==&lt;br /&gt;
Very early research and development is in progress. The Video BIOS first successfully ran in 86Box on 13 September 2025.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1704</id>
		<title>List of GPUs</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=List_of_GPUs&amp;diff=1704"/>
		<updated>2025-12-27T14:56:34Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all models of Nvidia GPUs. Although the focus of this wiki is on older models (approximately those released between 1995 and 2000), all GPUs manufactured by Nvidia are provided here for the purposes of reference. GPUs are sorted by &#039;&#039;architectural revision&#039;&#039;, not branding, since Nvidia (especially in the 2000s) sometimes made dozens of mdoels for a particular &amp;quot;series&amp;quot; and the list would be full of hundreds of almost identical SKUs.&lt;br /&gt;
&lt;br /&gt;
==Quadratic texture mappers==&lt;br /&gt;
&lt;br /&gt;
=== NV0 ===&lt;br /&gt;
{{Main|NV0}}&lt;br /&gt;
Not actually a GPU, but a series of VxD drivers under Windows 3.x to emulate the NV1 environment before it was ready. &lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* Unknown&lt;br /&gt;
&lt;br /&gt;
=== NV1 ===&lt;br /&gt;
{{Main|NV1}}&lt;br /&gt;
&lt;br /&gt;
The first GPU (or as it was dubbed by Nvidia at the time, &amp;quot;Multimedia Accelerator&amp;quot;) designed by Nvidia and manufactured by SGS-Thomson Microelectronics (now STMicroelectronics), designed starting in 1993 and ending with its release in 1995. Its name is a contraction of &amp;quot;GX Next Version&amp;quot; (GXNV), as the GPU was designed by the same person, Curtis Priem, who designed the Sun GX for graphics workstations; Huang mandated the rename to NV1 for legal reasons. Unlike all later released Nvidia graphics cards, it does not render using triangles as the fundamental basis of graphical rendering but instead by using quad patching to implement quadratic texture mapped (QTM)&#039;d curves. This has advantages for certain applications, such as computer-aided design and smooth curved surfaces, but is much more cumbersome for programming and game engine development, which was the intended market. There are also many other unique features, as Nvidia&#039;s strategy at this time was to attempt to monopolise all of the I/O on the graphical hardware. Ultimately it failed, due to its high cost, poor VGA functionality, and poor Direct3D (which was based on graphical hardware), and was discontinued in Q1 of 1996, not long after its launch. Apparently, at least 250,000 chips were sold, but most of them were returned without ever being put into cards due to poor sales; the poor sales also appear to have led to the cancellation of a 350 nm die shrink&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/090904.pdf (Microprocessor Report, July 10, 1995)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The original text (barring some minor redactions) of the &amp;quot;Strategic Collaboration Agreement&amp;quot; to develop the Nvidia NV1, RIVA 128 (NV3) and RIVA 128 ZX (NV3T) with SGS-Thomson can be found in a 1998 SEC filing, as it was an agreement that materially affected investors scoping out the company for potential investment during the IPO process&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Features====&lt;br /&gt;
* 2D acceleration supporting BitBlit (both src/dst and pattern), clipping rectangles, points, lines, lins (lines without their starting and ending pixels), hardware-accelerated monochrome cursors, and image upload (from various sources) with a maximum resolution of 1600x1200 and a maximum colour depth of 32-bit. Drivers implement GDI, possibly DCI (Windows 3.x drivers for the NV1 have not been identified) and DirectDraw&lt;br /&gt;
* Hardware accelerated alpha-testing (chroma key), plane mask and clipping rectangle with double buffering and page flipping support&lt;br /&gt;
* 3D quadratic texture mapping (QTM) for perfect curved surface rendering with bilinear filtering support&lt;br /&gt;
* 3D Quadrilateral and Triangle rendering (however much slower than QTMs and not the primary focus)&lt;br /&gt;
* Two-cache Gray-code indexed FIFO, [[PFIFO]] (one, &amp;lt;code&amp;gt;CACHE0&amp;lt;/code&amp;gt;, with a size of one; another with 32 total entries) for graphical command (&amp;quot;object&amp;quot; submission)&lt;br /&gt;
* Pseudo-C++ object system for total lunacy in design&lt;br /&gt;
* Multi-channel DMA engine with 8 DMA channels, each with 8 subchannels (selectable by &amp;quot;context switching&amp;quot;), which can also be written to via PIO (&amp;lt;code&amp;gt;NV_USER&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Oddly addressed [[RAMIN]] area for object submission&lt;br /&gt;
* Hash table ([[RAMHT]]) for further object caching&lt;br /&gt;
* Built-in error handling for invalid object submission via sending to [[RAMRO]]&lt;br /&gt;
* Notification functionality via DMA into driver memory for GPU to driver communication&lt;br /&gt;
* 1 to 4 MB of video memory, which can either be DRAM or VRAM&lt;br /&gt;
* External RAMDAC (`NVDAC`), manufactured and, for some DACs, designed by SGS-Thomson (SGS-Thomson SGS-1732 and SGS-1764) for CRT control and image generation from the data sent to the GPU&lt;br /&gt;
* Partially emulated VGA compatibility implemented via a separate PCI ID&lt;br /&gt;
* Multiple clock sources (&amp;lt;code&amp;gt;VPLL` for pixel clock, varying based on resolution and color depth for controlling the CRT, and `MPLL` for everything else - the card ran at 100Mhz on average)&lt;br /&gt;
&lt;br /&gt;
This particular model of graphics card has many unique features that are not shared by any other model of Nvidia graphics card: &lt;br /&gt;
* Non-Sound Blaster compatible sound card with MIDI playback on-die (in some models)&lt;br /&gt;
* Sega Saturn game port support (in the external DAC)&lt;br /&gt;
* Partial VGA compatibility, largely emulated in software&lt;br /&gt;
* EEPROM for storage of chip ID&lt;br /&gt;
* [[NV1/DRM|Unused hardware-implemented encryption and digital rights management functionality]]&lt;br /&gt;
* VESA Local Bus support, as well as PCI (seemingly only PCI versions were released as VLB was relatively short-lived)&lt;br /&gt;
* Proprietary NVLIB API to avoid direct hardware programming &lt;br /&gt;
&lt;br /&gt;
=== NV2 ===&lt;br /&gt;
{{Main|NV2}}&lt;br /&gt;
The NV2 was a GPU designed under contract from Sega for the &amp;quot;Saturn V08&amp;quot;, the first version of the project that became the Sega Dreamcast, starting in May 1995&amp;lt;ref&amp;gt;https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-000618.txt (Nvidia Form S-1 for Registration of Securities, March 6, 1998)&amp;lt;/ref&amp;gt; around the time of the announcement of the NV1. It was cancelled, at some point around early to mid 1996, due to internal pressure from Sega (especially their AM2 division) to move to a triangle-based model, combined with possible intransigence on Nvidia&#039;s part. SEGA still paid (loaned then forgave) NVIDIA 5 million dollars, which prevented the company from going bankrupt immediately. Most information on the technical implementation of the NV2 comes from Don Goddard, who was the main employee tasked with programming the NV2 (via a software emulator on the NV1) - which he described as &amp;quot;hella confusing&amp;quot;, and with no debugging - at Sega of America.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Proto-shader microcode similar to the Nintendo 64 Reality Coprocessor &amp;amp; Reality Signal Processor GPU to handle texture compression, lighting, positions, and texture U/V coordinates&lt;br /&gt;
* Possibly hardware-accelerated lighting &lt;br /&gt;
* Color compression&lt;br /&gt;
* Hardware-accelerated Z-buffering&lt;br /&gt;
* Cartridge DMA (yes, cartridge) via the &amp;lt;code&amp;gt;PCART&amp;lt;/code&amp;gt; subsystem&lt;br /&gt;
* No VGA compatibility, as it was a game console GPU&lt;br /&gt;
&lt;br /&gt;
The status on if the NV2 ever worked as physical hardware is disputed; it was certainly taped out (even if only for one stepping, A0), and failed a demonstration to Sega, which may have triggered the cancellation of the project. However, some sources claim that a single engineer, Wayne Kogachi&amp;lt;ref&amp;gt;&#039;&#039;The Nvidia Way&#039;&#039;, Tae Kim, page 62&amp;lt;/ref&amp;gt;, was assigned to and was successfully able to product a working chip. This was done in order to trigger an $1 million milestone payment, which was required due to the company&#039;s zero sales at the time.  &lt;br /&gt;
&lt;br /&gt;
=== NV3 (Quadratic Texture Mapped version) ===&lt;br /&gt;
{{Main|NV3 (QTM)}}&lt;br /&gt;
&lt;br /&gt;
Before [[David Kirk]] was hired at Nvidia, Nvidia were planning to launch a QTM-based &amp;quot;NV3&amp;quot; (entirely separate to the product launched as the Riva 128), a 100% functional superset of NV1 for PCs. It was announced around March 1996&amp;lt;ref&amp;gt;https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/100304.pdf (Microprocessor Report, March 5, 1996)&amp;lt;/ref&amp;gt; for volume production in October of 1996, and was apparently going to be used in a home theater system by Lexicon, as the audio chip, provide an integrated RAMDAC and be generally much faster. It was most likely cancelled extremely quickly after its announcement, owing to Nvidia&#039;s new direction of developing triangle-based graphics accelerators. Very little else is known about it (other than the fact it would apparently be able to process 500,000 50-pixel triangles per second) and the original press release, published on 22 January 1996, does not mention the NV3, but also calls the NV1 NVIDIA&#039;s &amp;quot;first generation&amp;quot; product&amp;lt;ref&amp;gt;https://web.archive.org/web/19961112163232/http://www.nvidia.com/corporate/prlexicon.html (&amp;quot;LEXICON AND NVIDIA TEAM UP FOR NEXT GENERATION OF PC ENTERTAINMENT SOUND&amp;quot;; NVIDIA Corporation; 22 January 1996)&amp;lt;/ref&amp;gt;. However, it does not seem to be a typo on the part of Microprocessor Report since it is repeated many times and explicitly stated to be a PC graphics card, which the NV2 was not.&lt;br /&gt;
&lt;br /&gt;
==Fixed function, no T&amp;amp;L (RIVA)==&lt;br /&gt;
&lt;br /&gt;
=== NV3 (RIVA 128)===&lt;br /&gt;
{{Main|NV3}}&lt;br /&gt;
[[David Kirk]] left Crystal Dynamics to replace [[Curtis Priem]] as the manager of GPU development at Nvidia after the NV2 was cancelled, and decided that sane design was the best way to go. Across nine months in 1996 and 1997, a triangle-based design was thrown together (completed in approximately January 1997?), tested extensively on a hardware simulator from another nearly-bankrupt company called [[Ikos]] (as Nvidia did not have the money for more than one revision of the chip without sales), and then taped out around 1 April 1997&amp;lt;ref&amp;gt;https://www.wave-report.com/1997%20Wave%20issues/wave707.html#707.4 (WAVE Report, 14 April 1997, &amp;quot;2 weeks out of fab&amp;quot;)&amp;lt;/ref&amp;gt;. The card was demoed at CGDC 1997, with Direct3D drivers that had only had crash bugs fixed hours before the demo and OpenGL drivers that had only achieved any functionality at all two days earlier&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/qAKzlj9qf5Q/m/lBQ25B1dhJMJ (USENET; &amp;quot;3D Chips at CGDC&amp;quot;, Samuel S. Paik, 28 April 1997)&amp;lt;/ref&amp;gt;, and were apparently &amp;quot;slow and buggy&amp;quot;. The card launched as the &amp;quot;RIVA 128&amp;quot; (&#039;&#039;&#039;R&#039;&#039;&#039;eal-time &#039;&#039;&#039;I&#039;&#039;&#039;nteractive &#039;&#039;&#039;V&#039;&#039;&#039;ideo and &#039;&#039;&#039;A&#039;&#039;&#039;nimation accelerator, &#039;&#039;&#039;128&#039;&#039;&#039;-bit bus) in August 1997 (while the earliest known drivers are GDI-only NT 4.0 drivers compiled on 17 July 1997, these seem to have simply been an accidental release of pre-release drivers with an OEM card as they are an extreme outlier, with the earliest Win9x drivers and generic Nvidia drivers dated mid-August). OpenGL drivers were first released in alpha form in December 1997 and full form in March 1998. &lt;br /&gt;
&lt;br /&gt;
The card was very successful, at least compared to previous models and caused Nvidia&#039;s revenue to jump from $5.5 million in the first nine months of 1997 to $23.5 million in the last few months - several million were manufactured. Driver support ended in early 1999 (although 2D-only drivers continued to be compiled for Windows 2000 and XP until 2001) and manufacturing ended some time in mid to late 1999 for the ZX variant.&lt;br /&gt;
&lt;br /&gt;
====New features====&lt;br /&gt;
* Triangle-based rendering mostly compliant with the DirectX 5.0 specification (apparently, they did not receive the final spec in time, resulting in certain blending modes being missing)&lt;br /&gt;
* Non-crappy Direct3D drivers (the NV1 D3D drivers are simply wrappers around the GPU&#039;s native quad patching)&lt;br /&gt;
* Full OpenGL Installable Client Driver with OpenGL 1.1 compliance (released in early 1998)&lt;br /&gt;
* GDI acceleration for clipped rectangles, transparent bitmaps, and 1bpp color-expanded bit blit&lt;br /&gt;
* The ability to scale and stretch images while receiving them from system memory (`USCALED` and `USTRTCH` objects)&lt;br /&gt;
* Generic image upload objects&lt;br /&gt;
* AGP 1X bus support&lt;br /&gt;
* DMA object submission for 3D&lt;br /&gt;
* [[NV3 RMA|Real-Mode Access]], replacing [[NV1 RMC]]&lt;br /&gt;
* Up to 4 buffers which can be moved around in memory and have their pitch and color format changed at any time, the 4th buffer is hardcoded in the drivers to be used as a &amp;quot;zeta buffer&amp;quot; (currently a Z buffer, later stencil buffering was added), allowing much more versatile (and annoying) screen-to-screen blit capability&lt;br /&gt;
* Multiple interpolation modes for texture interpolation (zero order hold, &amp;quot;Microsoft&amp;quot; zero order hold and full order hold)&lt;br /&gt;
* Hardware-accelerated Z-buffering (in a released card)&lt;br /&gt;
* Perspective-correct texture mapping (QTMs used forward texture mapping)&lt;br /&gt;
* RGB565 textures (later drivers only); technically, the output format in 3D is always 32-bit, but only 16-bit source texture data can be loaded&lt;br /&gt;
* Hardware-accelerated culling&lt;br /&gt;
* Hardware-accelerated alpha buffer (for 3D acceleration)&lt;br /&gt;
* Hardware-accelerated specular highlight&lt;br /&gt;
* Hardware-accelerated texture offseting (varying the origin point of a texture)&lt;br /&gt;
* Hardware fog support with 24-bit colour (vertex fog only)&lt;br /&gt;
* Hardware-accelerated color space conversion &lt;br /&gt;
* Hardware cursor now supports colour&lt;br /&gt;
* YUV420 and YUV422 support&lt;br /&gt;
* PC-98 support (&amp;quot;NEC mode&amp;quot;)&lt;br /&gt;
* Moved to a new 350 nm process rather than 500 nm&lt;br /&gt;
* &amp;quot;Mediaport&amp;quot; on-card that allows plugging in external MPEG decoder&lt;br /&gt;
* TV-Out support&lt;br /&gt;
* RAMDAC and CRTC integrated on-die&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DFB&amp;quot; (Dumb Framebuffer) in PCI BAR1 allowing you to write into the GPU directly without interfacing with the 2D or 3D acceleration engine&lt;br /&gt;
* VGA and VESA compatibility, licensed from [[Weitek]]&lt;br /&gt;
&lt;br /&gt;
====Removed features====&lt;br /&gt;
* Quadratic texture mapping (QTM) support&lt;br /&gt;
* Quad patching more generally&lt;br /&gt;
* [[NV1 DRM|Digital rights management]]&lt;br /&gt;
* [[NV1 RMC]] (replaced with RMA)&lt;br /&gt;
* Sound capability (Revision B and later)&lt;br /&gt;
* Sega Saturn gamepad support&lt;br /&gt;
* [[NV2]] microcode&lt;br /&gt;
* VLB bus support&lt;br /&gt;
* 3D capability at resolutions above 960*720 due to the GPU keeping more data in VRAM, NV1 could do up to 1152*864&lt;br /&gt;
&lt;br /&gt;
=== NV3T (RIVA 128 ZX) ===&lt;br /&gt;
{{Main|NV3#NV3T}}&lt;br /&gt;
&lt;br /&gt;
When Intel announced the Intel i740 GPU, Nvidia got cold feet and decided to rev a new version, revision C, of the RIVA 128, add some minor features, allow for 8 MB of VRAM and rebrand it as a new version.&lt;br /&gt;
&lt;br /&gt;
====Added features====&lt;br /&gt;
* 8 MB of VRAM, rather than just 2 or 4&lt;br /&gt;
* 1080p and 1920x1200 resolution support in the BIOS&lt;br /&gt;
* PFIFO CACHE1 is now 64 slots deep instead of 32 &lt;br /&gt;
* 3D capability at resolutions above 960*720 is better again&lt;br /&gt;
* The ability to write to `PSTRAPS`&lt;br /&gt;
* ACPI support (indicated by the PCI device ID changing to `0x0019`)&lt;br /&gt;
* Notifiers to VRAM rather than just the main system RAM (check this)&lt;br /&gt;
* Higher RAMDAC clock (260Mhz instead of 205)&lt;br /&gt;
* Much higher colour depths in 2D due to the higher amount of VRAM and higher maximum pixel clock (16-bit is still only supported in 3D, because only 16-bit texture formats can be loaded by PGRAPH)&lt;br /&gt;
* AGP 2X bus support&lt;br /&gt;
&lt;br /&gt;
=== NV4 (RIVA TNT) ===&lt;br /&gt;
* Hardware-accelerated stencil buffering &lt;br /&gt;
&lt;br /&gt;
=== NV5 (RIVA TNT2) ===&lt;br /&gt;
&lt;br /&gt;
==== NV5ULTRA (RIVA TNT2 Ultra) ====&lt;br /&gt;
==== NV5VANTA (RIVA TNT2 Vanta; Vanta LT) ====&lt;br /&gt;
==== NV6 (RIVA TNT2 M64) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Celsius architecture: Fixed function, T&amp;amp;L==&lt;br /&gt;
&lt;br /&gt;
==Kelvin architecture: Programmable shaders==&lt;br /&gt;
&lt;br /&gt;
==Rankine architecture==&lt;br /&gt;
&lt;br /&gt;
==Curie architecture==&lt;br /&gt;
&lt;br /&gt;
==Tesla architecture: GPGPU, unified shaders and CUDA ==&lt;br /&gt;
&lt;br /&gt;
==Tesla 2.0 architecture (GT2xx)==&lt;br /&gt;
&lt;br /&gt;
==Fermi architecture==&lt;br /&gt;
&lt;br /&gt;
==Kepler architecture==&lt;br /&gt;
&lt;br /&gt;
==Maxwell architecture==&lt;br /&gt;
&lt;br /&gt;
==Pascal architecture==&lt;br /&gt;
&lt;br /&gt;
==Volta architecture==&lt;br /&gt;
&lt;br /&gt;
==Turing architecture: Raytracing and ML==&lt;br /&gt;
&lt;br /&gt;
==Ampere architecture==&lt;br /&gt;
&lt;br /&gt;
==Lovelace / Hopper architecture==&lt;br /&gt;
&lt;br /&gt;
==Blackwell (GB1xx)==&lt;br /&gt;
&lt;br /&gt;
==Blackwell 2.0 (GB2xx)==&lt;br /&gt;
&lt;br /&gt;
==Rubin architecture (still in development)==&lt;br /&gt;
This is Nvidia&#039;s 2026 architecture for GPUs.&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=File:Nvplay_unsupported.png&amp;diff=1702</id>
		<title>File:Nvplay unsupported.png</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=File:Nvplay_unsupported.png&amp;diff=1702"/>
		<updated>2025-12-27T01:21:46Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: NVplay showing its unsupported screen in VGA mode Windows 2000. Windows NT is not compatible with NVPlay as NTVDM does not allow direct hardware access for good reasons.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
NVplay showing its unsupported screen in VGA mode Windows 2000. Windows NT is not compatible with NVPlay as NTVDM does not allow direct hardware access for good reasons.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Timeline&amp;diff=1699</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Timeline&amp;diff=1699"/>
		<updated>2025-12-26T23:06:10Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a timeline of the early history of Nvidia.&lt;br /&gt;
&lt;br /&gt;
== 1950s and earlier ==&lt;br /&gt;
* 1948: David S. H. Rosenthal (one of the NV1 designers) is born.&lt;br /&gt;
* March 6, 1950: John Nickolls is born.&lt;br /&gt;
* 1958 or 1959: [[Curtis Priem]] is born. For some reason, his exact birth year is not known.&lt;br /&gt;
* May 2, 1959: Chris Malachowsky is born.&lt;br /&gt;
* 1959: The revolutionary Sketchpad program is created on the MIT TX-2 computer by a team led by Ivan Sutherland (later of Evans and Sutherland). It allowed the drawing of objects using a light pen and was one of the first entirely graphical programs and a pioneer of human-computer interaction as a concept.&lt;br /&gt;
&lt;br /&gt;
== 1960s ==&lt;br /&gt;
* 1960: David Kirk (Nvidia&#039;s chief scientist from 1997 until 2009) is born.&lt;br /&gt;
* February 17, 1962: Jensen Huang is born in Taiwan.&lt;br /&gt;
* 1958-1962: The &amp;quot;perceptron&amp;quot; concept (the predecessor to modern artificial neural networks) is first explored by Frank Rosenblatt.&lt;br /&gt;
* 1964: The first 3D computer art is created, a three-dimensional hand.&lt;br /&gt;
* 1967: Jensen Huang&#039;s family moves to Thailand.&lt;br /&gt;
* 1969: Evans and Sutherland, Inc. releases the LDS-1 (Line Drawing System-1), the first commercial 3D graphics system.&lt;br /&gt;
* 1969: An extremely influential book on perceptrons by AI researchers Marvin Minsky and Seymour Papert causes  serious damage to the reputation of the perceptron concept and ends serious research into them for the next twenty years. This is despite the book acknowleging the strengths and setting out to be an overall evaluation of perceptrons rather than a debunking of their efficacy; this may be due to the small size and generally close-knit AI community of the time. However, even if this book had never been published, neural networks capable of serious learning ability were not plausible even on supercomputers until the 1990s, due to the very high resource use of these programs; nevertheless, it does not prevent the invention of backpropagation by a Finnish master&#039;s student in 1970.&lt;br /&gt;
* 1969: The Special Interest Group in Computer Graphics and Interactive Techniques (SIGGRAPH) is founded by the ACM (Association for Computing Machinery). It becomes one of the most prominent conferences for discussion of, and research into, computer graphics as a field.&lt;br /&gt;
 &lt;br /&gt;
== 1970s ==&lt;br /&gt;
* 1973: Jensen Huang is sent to the United States by his parents. They believed they were sending him to a prestigious private school, but they actually sent him to the Oneida Baptist Institute, a reform school for troubled children in Kentucky&lt;br /&gt;
* 1975: Huang&#039;s family move to the United States and he relocates to Oregon to live with them.&lt;br /&gt;
* 1977: Approximate birth date of Ian Buck (one of the inventors of GPGPU) based on his university records.&lt;br /&gt;
* 1978: Jensen Huang gets a job at Denny&#039;s as a dishwasher, eventually promoted to a busboy and then a waiter, to supplant his income while he studies at university. This era of his life later becomes a large part of his mythology, and the Denny&#039;s restaurants of Silicon Valley became a general hangout spot in later years. He was also apparently a nationally ranked table tennis player during this time.&lt;br /&gt;
&lt;br /&gt;
== 1980s ==&lt;br /&gt;
* 1980: As a part of a research project led by ex-E&amp;amp;S employee Jim Clark. the first integrated circuit specifically intended for 3D geometry processing is created, the Geometry Engine.&lt;br /&gt;
* 1980: Jensen Huang starts a course in electrical engineering at Oregon State University.&lt;br /&gt;
* August 12, 1981: IBM announces its Personal Computer, using an Intel CPU and Microsoft-supplied (via Seattle Computer Products) operating system. This is the start of the modern PC &amp;quot;Wintel&amp;quot; standard architecture and the products that Nvidia&#039;s add-on boards would be available for.&lt;br /&gt;
* 1981: [[Weitek]], designer of the Nvidia VGA cores, is founded, initially to develop floating-point units and other accelerator chips.&lt;br /&gt;
* 1982: SiliconGraphics Computer Systems, Inc. is founded. &lt;br /&gt;
* 1982: Microsoft starts working on an implementation of the obscure Graphical Kernel System (GKS) standard for device-independent graphics called GDI (Graphics Device Interface.)&lt;br /&gt;
* 1982: Possibly after seeing a demonstration of the &amp;quot;Visi On&amp;quot; preemptive OS for the PC, Microsoft merges the GDI with another project, Interface Manager, a standard interface library for Microsoft&#039;s apps division, to create the &amp;quot;Microsoft Window Manager&amp;quot; project, later renamed Microsoft Desktop and then simply to Windows. The project slowly becomes an almost complete operating system (except for disk I/O and filesystem services, which are still provided by MS-DOS).&lt;br /&gt;
* 1982: Priem is hired at a company called Vermont Microsystems, Inc. to develop graphics hardware in collaboration with IBM.&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 25. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1982: SGS-Thomson Microelectronics is founded from the merger of the French state-owned semiconductor company SGS and the Italian Thomson Microelectronics.&lt;br /&gt;
* 1984: The approximate birth date of Mark Harris (founder of GPGPU.org), based on his university records.&lt;br /&gt;
* Early-Mid 1980s: Chris Malachowsky is hired at HP to work on the HP 1000 line of computers while finishing his master&#039;s degree from Santa Clara University.&lt;br /&gt;
* 1984: Jensen Huang graduates alongside his future wife Lori Mills. He interviews at Texas Instruments, AMD and LSI Logic; he receives offers from the latter two and elects to join AMD as an engineer. &lt;br /&gt;
* 1984: The &amp;quot;IRIS 1000&amp;quot; terminal and workstation line is released by SGI at a mid-five figure cost; it is one of the most powerful graphics workstations of its era and the start of SGI&#039;s rise to cultural prominence.&lt;br /&gt;
* August 14, 1984: IBM announces its third-generation (or second depending on how the XT gets counted) PC - the Advanced Technology (PC/AT). One of the graphics options is the Professional Graphics Controller, a CGA-compatible three-board coprocessor with an 8Mhz 8088 that can do up to 640x480 at an 8bpp bit depth (256 colours), and provides a ROM to perform 2D and 3D graphics calculations via both assembly and a human-readable command set, including very advanced font rendering for the time. This was designed by Vermont Microsystems; Curtis Priem&#039;s name is included in the ROM, alongside two other programmers, one of whom now works at NVIDIA.&lt;br /&gt;
* 1984: Priem leaves Vermont Microsystems and moves to a company called GenRad, one of the largest manufacturers of electronic testing equipment at the time; however, unbeknowst to Priem, the company is in financial distress and suffering from poor management.&lt;br /&gt;
* December 1984: Jensen Huang and Lori Mills (a day after his proposal to her) almost die in a car crash in the Oregon mountains. He twisted his neck, requiring stitches and a neck brace.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 26. ISBN 9780593832691&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1985: One of Huang&#039;s coworkers convinces him to leave AMD and work for LSI Logic, then one of the most cutting-edge silicon design and fabrication companies, instead.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 29. ISBN 9780593832691&amp;lt;/ref&amp;gt;. He is later assigned to the Sun Microsystems account, where he meets Priem and Malachowsky.&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 22. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1985: Lori Mills is hired at SGI.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 30. ISBN 9780593832691&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1986: Pixar is founded; its first serious work, the &amp;quot;Luxo Jr.&amp;quot; animated spot, shown at SIGGRAPH in 1986, is one of the first 3D animated short films to be considered credible by the animation industry.&lt;br /&gt;
* 1986: The Texas Instruments Graphics Architecture (TIGA) line of 2D GPUs is released for the PC; it is one of the earliest attempts at proper PC graphics but fails due to the lack of a standardised operating system to write drivers for.&lt;br /&gt;
* 1986: Priem leaves GenRad and, due to his reputation as the designer of the IBM PGC, is shortly after hired at Sun Microsystems, to work on their next-generation graphics architecture alongside Chris Malachowsky.&lt;br /&gt;
* ~1986: Vermont Microsystems releases the IM-1024, the successor to the PGC. It swaps out the 8Mhz 8088 for a 10Mhz 80186 (much faster due to much more efficient operation) and allows up to 1024x768x8bpp rendering; this was delivered via a Windows 1.03 driver. It does not appear Priem was involved, as he left around the time of the completion of the PGC.&lt;br /&gt;
* 1986-1987: Chris Malachowsky is hired by Sun after finishing his master&#039;s degree, after considering both moving to the UK division of HP in Bristol and various other US-based tech companies, including Evans and Sutherland.&lt;br /&gt;
* October 1987: IBM releases the catchily named 8514/A, the first fixed-function PC graphics accelerator. It is later copied by many companies including ATi and S3 Graphics, becoming the basis of many early 1990s PC graphics accelerators.&lt;br /&gt;
* January 21, 1988: Curtis Priem produces several documents about the &amp;quot;CG6&amp;quot; architecture, which later became his second graphics card design, the Sun GX.&amp;lt;ref&amp;gt;&#039;&#039;Sun GX TEC Reference&#039;&#039; (Priem, Curtis; 21 January 1988) http://www.bitsavers.org/components/lsiLogic/sparc/GX/Sun_GX_TEC_Jan1988.pdf)&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;&#039;&#039;Sun GX FBC Reference&#039;&#039; (Priem, Curtis; 21 January 1988) http://www.bitsavers.org/components/lsiLogic/sparc/GX/Sun_GX_FBC_Jan1988.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1988: Programmer&#039;s Hierarchical Interactive Graphics System (PHIGS), an early 3D graphics standard, is released; it is adopted by many companies.&lt;br /&gt;
* 1988: Namco releases the System 21 &amp;quot;Polygonizer&amp;quot;, the first 3D-capable arcade board, and the flat-shaded 3D game &amp;quot;Winning Run&amp;quot;; possibly the first time the average gamer could obtain access to reasonably fast 3D graphics. &lt;br /&gt;
* 1989: The Sun GX (possibly codenamed &amp;quot;CG6&amp;quot;), a primarily quadliateral based 2D/3D graphics card, is released as an option for Sun&#039;s line of workstations, designed by Priem. Priem and another Sun employee, Bruce Factor, releases a flight simulator, Aviator, for GX-based Sun workstations and continue to release updates for the next few years, eventually commercialising the program. Later on, Sun bundled the GX with various Sun-3 and SPARCstation workstations&amp;lt;ref&amp;gt;https://old.hotchips.org/wp-content/uploads/hc_archives/hc01/3_Tue/HC1.S8/HC1.8.2.pdf&amp;lt;/ref&amp;gt;. The manufacturing was handled by LSI Logic and hense Jensen Huang, as he was the person in charge of the Sun account.&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 32. ISBN 9781324086710).&amp;lt;/ref&amp;gt;. A PHIGS implementation is provided.&lt;br /&gt;
&lt;br /&gt;
== 1990-1992 ==&lt;br /&gt;
* 1990: SGI releases the IrisVision, a 3D GPU for the PC capable of flat and Gouraud shading. Only around 5,000 units are sold due to the exorbitantly high cost, and SGI eventually spins off the team responsible for it into another company called Pellucid.&lt;br /&gt;
* ~1990: After the success of the GX project, Huang is allowed by the founder and CEO of LSI Logic, Wolf Corrigan, to create a division that would sell SoCs combining multiple funcitons onto one chip.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 33. ISBN 9780593832691&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1991: Lori Mills leaves SGI to raise her and Jensen&#039;s two children. This seriously stretches their personal finances despite Jensen holding a secure and well paying job. Malachowsky&#039;s wife did a similar thing; later, Malachowsky conceded that both him and Huang&#039;s wives were &amp;quot;superior engineers&amp;quot; to them.&lt;br /&gt;
* Early 1990s: Due to the massively accelerating pace and performance of PCs, running texture mapped 3D games with a reasonable level of quality becomes an increasingly plausible and cheap option. By 1997, over 70 companies are founded to attempt to exploit this market. One of these attempts is made by Malachowsky and Priem, who proposed to Sun that they enter into the gaming graphics business - the proposal is rejected.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 35. ISBN 9780593832691&amp;lt;/ref&amp;gt;. &amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 22. ISBN 9781324086710).&amp;lt;/ref&amp;gt;. Apparently, the dysfunctional work environment of Sun got so bad that he would regularly start crying in the various recreation areas of Sun&#039;s campus&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 37. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 1992: SGI cleans up and renames IRIS GL (its graphics library) to OpenGL, turning it over to the OpenGL Architecture Review Board (ARB; later handed to Khronos Group in 2006) and releasing it as an open graphics API standard.&lt;br /&gt;
* Late 1992: After the failure of both their proposal to Sun and and a similar proposal to SGI to enter the PC consumer 3D graphics space, Malachowsky and Priem contact Huang to discuss the concept of founding a 3D graphics company; one version of this proposal, before Huang was involved, involved building a chip for the Korean &#039;&#039;chaebol&#039;&#039; Samsung. After he got involved in the project, Huang was assigned as the CEO of this hypothetical company due to his larger amount of business experience; additionally, the trio&#039;s coworkers at Sun were skeptical of Malachowsky and Priem&#039;s ability to work together. This may have been a wise observation, considering they often broke out into screaming matches against each other. After some time and many meetings in various seedy Denny&#039;s restaurants, Jensen accepts after determining that it was possible to make at least $50 million of revenue from the venture&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 41. ISBN 9780593832691&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* December 31, 1992: Curtis Priem resigns from Sun Microsystems to jumpstart the new venture (the families of Malachowsky and Huang were demanding that they wait until the other resigned). Several Sun employees follow him despite the high risk and lack of any funding due to his reputation as the founder of the GX.&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 40. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NV1 era: 1993-1995 ==&lt;br /&gt;
* Early 1993: The founders of Nvidia stop going to the Denny&#039;s where they were discussing the founding of Nvidia due to an outbreak of gang warfare near the restaurant leading to the windows being shot through.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 41. ISBN 9780593832691&amp;lt;/ref&amp;gt;. Later on, a plaque was inserted to commemorate the founding of Nvidia allegedly occurring within it, although in reality it was simply discussed there and formally founded inside Priem&#039;s townhouse.&lt;br /&gt;
* February 17, 1993: Jensen Huang resigns from LSI Logic after spending six weeks transferring his projects to other managers within the company.&amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 42. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Early March 1993: Chris Malachowsky, after an attempt by his manager to convince him to move to work on the project that later became Java fails, resigns from Sun to join Nvidia. His manager let them take and upgrade their personal workstations at Sun for Nvidia&#039;s use.&lt;br /&gt;
* April 5, 1993: NVidia, Inc. is formally founded in Curtis Priem&#039;s townhouse with a $200 initial capitalisation. The equity is initially split equally between the three founders. The name is a pun on &amp;quot;New Venture&amp;quot; and also the &amp;quot;GX next version&amp;quot; project that Priem and Malachowsky initially proposed to Sun; Huang forced them to rename it to NV1 to prevent any possible copyright issues with their former employers. The first headquarters of the company were two of the three bedrooms of Priem&#039;s house; an impromptu bedroom was set up in the garage.&amp;lt;ref&amp;gt;The Thinking Machine (Witt, Stephen; 2025), pp. 43. ISBN 9780593832691&amp;lt;/ref&amp;gt;. Early employees included David Rosenthal (who had mvoed to the US from Britain at this point).&lt;br /&gt;
* April 8, 1993: Curtis Priem changes the description of his SPARCstation 1 UUCP server to read &amp;quot;Nvidia&amp;quot;&amp;lt;ref&amp;gt;UUCP Mapping Project: https://groups.google.com/g/comp.mail.maps/c/QmEyGC73D_c/m/34dhQKz4ZOYJ&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Mid 1993: Nvidia, despite a bad pitch involving a commodity PC being hacked to use a Sun GX, receives $4 million in seed funding from Sutter Hill Ventures and Sequoia Capital, mostly due to the founders&#039; reputation. Shortly after this, the company rented office space in Sunnyvale, California. &amp;lt;ref&amp;gt;The Nvidia Way (Kae, Tim; 2024), pp. 53. ISBN 9781324086710).&amp;lt;/ref&amp;gt;&lt;br /&gt;
* June 29, 1993: Nvidia refiles its articles of incorporation to allow the issuance of &amp;quot;Series A&amp;quot; stock shares to third parties other than the founders. This is most likely an approximate date to when Sutter Hill and Sequoia invested.&lt;br /&gt;
* October 20, 1993: Version 1.0 of the &amp;quot;NV Architecture Specification&amp;quot; document is produced; it is an overview of the architecture of the graphics accelerators that Nvidia intends to build.&amp;lt;ref&amp;gt;SGS-Thomson/Nvidia Strategic Collaboration Agreement (SEC filing), including 1996 and 1998 amendments. Available online at https://contracts.onecle.com/nvidia/sgs.collab.1993.11.10.shtml)&amp;lt;/ref&amp;gt;                   &lt;br /&gt;
* November 1993: Pellucid is taken over by another company called Media Vision to develop sound cards and 2D/3D graphics products.&lt;br /&gt;
* November 10, 1993: Nvidia signs an agreement with SGS-Thomson Microelectronics to develop a graphics accelerator which will be fabricated by SGS and jointly marketed by Nvidia and SGS.&amp;lt;ref&amp;gt;SGS-Thomson/Nvidia Strategic Collaboration Agreement (SEC filing), including 1996 and 1998 amendments. Available online at https://contracts.onecle.com/nvidia/sgs.collab.1993.11.10.shtml)&amp;lt;/ref&amp;gt;. The chip will be branded NV1 and split into two variants; a mid-range 64-bit bus DRAM variant (&amp;quot;NV1-D64&amp;quot;) and a high-end 32-bit bus variant using VRAM memory (&amp;quot;NV1-V32&amp;quot;). SGS paid Nvidia $500,000 in return for the rights to market the D64 variant only and brand it as the STG-2000; SGS also provided the RAMDAC and legacy VGA support for the NV1 (becoming the STG-1732/1764 chips) and deployed certain engineers to assist Nvidia with the NV1.                  &lt;br /&gt;
* November 19, 1993: According to code comments, development of the NVidia Hardware Simulator (NV0) and a dummy Resource Manager to simulate an Nvidia device under Windows 3.1 had started by this time.&lt;br /&gt;
* December 10, 1993: id Software releases DOOM. While technically not a 3D game, the BSP rendering method used removed almost all limitations of 2D and the game completed the popularisation of both 3D games and the first-person shooter genre. It also had a role in the early development of mods, the speedrunning community and online gaming.&lt;br /&gt;
* Early 1994: Several Media Vision employees, many of which had been around since the days of the IrisVision at SGI, leave out of frustration at the company&#039;s seeming unwillingness to pursue 3D graphics and create 3D/fx Interactive, Inc. (later shortened to 3Dfx) Initially it intended to build a motherboard but its funder, Gordon Campbell, requested an add-on card to be produced as well as arcade machines; the company was incorporated on February 24, 1994. &lt;br /&gt;
* May 17, 1994: The CEO of Media Vision, Paul Jain resigns due to the exposure of massive amounts of financial fraud by the company. The company enters into bankruptcy proceedings, shuts down its graphics business and is reorganised as Aureal Semiconductor. Jain is indicted, but never convicted, of 27 counts of various fraud charges by the US Department of Justice, although both him and the CFO of the company are eventually fined.&lt;br /&gt;
* Mid-1994: An initial version of the NV1 design is completed and revision A01 of the NV1 is taped out and sent to ST. A VHS tape exists of the chips being returned to Nvidia, but it is not available. Nvidia was paid $1 million for the milestone under the terms of the Strategic Collaboration Agreement.&amp;lt;ref&amp;gt;SGS-Thomson/Nvidia Strategic Collaboration Agreement (SEC filing), including 1996 and 1998 amendments. Available online at https://contracts.onecle.com/nvidia/sgs.collab.1993.11.10.shtml)&amp;lt;/ref&amp;gt;     &lt;br /&gt;
* June 15, 1994: Driver development for a real [[Software#Resource Manager]] running, presumably, under a real NV1 chip, had started by this time.               &lt;br /&gt;
* July 26, 1994: Nvidia reports some details of their architecture to the Jon Peddle Report, who had advised Huang not to found Nvidia.&amp;lt;ref&amp;gt;Nvidia&#039;s Quadratic Processor: The NV1 (available online at https://www.computer.org/publications/tech-news/chasing-pixels/nvidias-quadratic-processor-the-nv1)&amp;lt;/ref&amp;gt;. The company is also mentioned in the 25 July 1994 issue of InfoWorld.&lt;br /&gt;
* August 1, 1994: Under the terms of the Strategic Collaboration Agreement, Nvidia was paid another $500,000 by SGS-Thomson.&amp;lt;ref&amp;gt;SGS-Thomson/Nvidia Strategic Collaboration Agreement (SEC filing), including 1996 and 1998 amendments. Available online at https://contracts.onecle.com/nvidia/sgs.collab.1993.11.10.shtml)&amp;lt;/ref&amp;gt;                   &lt;br /&gt;
* November 1, 1994: Another $500,000 payment to Nvidia was made.&amp;lt;ref&amp;gt;SGS-Thomson/Nvidia Strategic Collaboration Agreement (SEC filing), including 1996 and 1998 amendments. Available online at https://contracts.onecle.com/nvidia/sgs.collab.1993.11.10.shtml)&amp;lt;/ref&amp;gt;       &lt;br /&gt;
* ~Late 1994: Revision A02 of the NV1, presumably fixing bugs with earlier revisions, is taped out.&lt;br /&gt;
* December 14, 1994: Nvidia again amends its articles of incorporation to allow Series B venture capitalists to receive shares. This is most likely indicative of an approximate date for Nvidia&#039;s Series B financing.&lt;br /&gt;
* December 24, 1994: Despite their public support for OpenGL, a skunkworks team within Microsoft starts development of Microsoft&#039;s proprietary standard graphical API for Windows, DirectX (initially called the &amp;quot;Windows 95 Game SDK&amp;quot;). Initially, only the 2D DirectDraw component was released, but a 3D API was released in early 1996 with version 2.0. This API is based on traditional triangle-based rendering with perspective-correct texture mapping, and the rapid standardisation of game develoeprs on this API, due to Microsoft&#039;s near-monopoly on the market, will cause Nvidia serious problems in the future.&lt;br /&gt;
* January 4, 1995: An Nvidia employee helps a Usenet user find Video for Windows 1.1d and the Indeo 3.2 codec&amp;lt;ref&amp;gt;&amp;quot;Info Request&amp;quot;; USENET comp.graphics; https://groups.google.com/g/comp.graphics/c/MZcpuy751l8/m/5fHqF3jUJUEJ&amp;lt;/ref&amp;gt;&lt;br /&gt;
* January 11, 1995: An Nvidia employee inquires about printing off a large number of CD-Rs (&amp;quot;initially 20, then 100, then a large number&amp;quot;). Possibly this means that the NV1 SDK was first released shortly after this time.&amp;lt;ref&amp;gt;&amp;quot;RECORDABLE CD--R advice sought; S.Page; USENET alt.cdrom; https://groups.google.com/g/comp.graphics/c/MZcpuy751l8/m/5fHqF3jUJUEJ)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* January 16, 1995: By this point, some kind of website existed at https://nvidia.com.&lt;br /&gt;
* January-April 1995: An Nvidia employee posts many times about use of the FrameMaker software for writing program help on USENET; presumably documentation of the NV1 was already progressing at this stage.&lt;br /&gt;
* March 7, 1995: The &amp;quot;QUADTEX&amp;quot; SDK demo, demonstrating the utilisation of quadratic texture mapping to warp a 3D object, has started development by this time.&lt;br /&gt;
* May 23, 1995: The NV1 is officially announced via a press release on Nvidia&#039;s website and various SGS-Thomson marketing activities. The reaction appears to have been rather muted, with a few trade press articles published at the time and a rather enthusiastic declaration that the NV1 was the &amp;quot;NEXT GENERATION OF PC GAME PROGRAMMING&amp;quot; on USENET.&lt;br /&gt;
* May 1995: The [[NV2]] project is started by Nvidia and Sega.&amp;lt;ref&amp;gt;NVIDIA Notes to Financial Statements; SEC Form S1/A; available online at https://www.sec.gov/Archives/edgar/data/1045810/0001012870-98-001519.txt&amp;lt;/ref&amp;gt;&lt;br /&gt;
* June 1995: By this point, revision B01 of the NV1, including performance improvements for bilinear filtering, the [[NV1 DRM]] engine and various errata fixes, has been produced.&lt;br /&gt;
* June 15, 1995: Version 0.4 of the &amp;quot;Programming NV&amp;quot; document is produced. Nvidia amends its articles of incorporation to allow Series C venture capitalists to receive shares. This is most likely indicative of an approximate date for Nvidia&#039;s Series C financing.&lt;br /&gt;
* August 21, 1995: By this time Nvidia has created an adapter board that allows Sun Microsystems SBUS expansion boards to be inserted into slots intended for the VESA Local Bus used on some early 1990s (typically 486-based) computers; refer to [[SBus to VL Converter]] for further information. &lt;br /&gt;
* August 24, 1995: Windows 95 is released; Nvidia has already been working on porting their drivers to it for several months.  &lt;br /&gt;
* November 23, 1995: The NV1 is released.&lt;br /&gt;
== Notes ==&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1698</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1698"/>
		<updated>2025-12-26T23:05:33Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been NVIDIA&#039;s first product released for sale, available by August 1995&amp;lt;ref&amp;gt;https://discmaster.textfiles.com/view/16967/CDware_Sep-Dec_1995.bin/.products/.wais/wais-src/Hardware_Peripherals/Interface_Devices_and_Controllers/SBUS-to-VL_Converter.html&amp;lt;/ref&amp;gt;. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel; the product was probably intended for use on Sun Solaris. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;br /&gt;
&lt;br /&gt;
Later on (by March 1996&amp;lt;ref&amp;gt;https://discmaster.textfiles.com/view/20246/Catalyst%20CDWARE%201996%20May%20to%20August.iso/.products/.wais/wais-src/Hardware_Peripherals/Interface_Devices_and_Controllers/SBUS-to-VL_Converter.html&amp;lt;/ref&amp;gt;), the registered address was changed (from 1206 E. Arques Avenue, the site of Nvidia&#039;s first offices, to 1226 Tiros Way, its second offices) and a fax address added for someone called &amp;quot;Chris&amp;quot;. This presuambly means that it was still being sold at some level by that time.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1697</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1697"/>
		<updated>2025-12-26T23:04:29Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been NVIDIA&#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel; the product was probably intended for use on Sun Solaris. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;br /&gt;
&lt;br /&gt;
Later on (by March 1996), the registered address was changed (from 1206 E. Arques Avenue, the site of Nvidia&#039;s first offices, to 1226 Tiros Way, its second offices) and a fax address added for someone called &amp;quot;Chris&amp;quot;. This presuambly means that it was still being sold at some level by that time.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1696</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1696"/>
		<updated>2025-12-26T23:02:47Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been NVIDIA&#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel; the product was probably intended for use on Sun Solaris. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1695</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1695"/>
		<updated>2025-12-26T23:02:19Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been NVIDIA&#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1694</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1694"/>
		<updated>2025-12-26T23:01:48Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been nVIDIA&#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1693</id>
		<title>SBus to VL Converter</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=SBus_to_VL_Converter&amp;diff=1693"/>
		<updated>2025-12-26T23:01:35Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;SBus to VL Converter&amp;#039;&amp;#039;&amp;#039; may have been Nvidia&amp;#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the NV1 (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SBus to VL Converter&#039;&#039;&#039; may have been Nvidia&#039;s first product released for sale, available by August 1995. It allowed the insertion of Sun Microsystems workstation SBus units into VESA Local Bus (a bus common on 486 and early Pentium PC motherboard machines. It was listed in a &amp;quot;Catalyst Catalog&amp;quot; in August 1995. It was likely designed for internal development work on the [[NV1]] (since many early Nvidia employees were ex-Sun Microsystems employees) and may have been sold by phone order or via some other non-retail channel. The fact that it was listed in a catalog implies it was intended to be sold or at least showcased.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1690</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1690"/>
		<updated>2025-12-26T22:20:08Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest preview version = 1.0-rc3&lt;br /&gt;
| latest preview date = {{Start date and age|2025|12|26|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]] and [[wikipedia:Microsoft Windows|DOS-based Microsoft Windows]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1689</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1689"/>
		<updated>2025-12-26T22:19:59Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest preview version = 1.0-rc3&lt;br /&gt;
| latest preview date = {{Start date and age|2025|12|25|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]] and [[wikipedia:Microsoft Windows|DOS-based Microsoft Windows]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1688</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1688"/>
		<updated>2025-12-26T22:19:52Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| screenshot = Nvplay_6.png&lt;br /&gt;
| caption = A screenshot of NVPlay after completing some tests on an Nvidia Riva 128&lt;br /&gt;
| developer = [https://github.com/starfrost013/ Connor Hyde (starfrost)]&lt;br /&gt;
| latest preview version = 1.0-rc3&lt;br /&gt;
| latest preview date = {{Start date and age|2025|12|21|df=y}}&lt;br /&gt;
| repo = {{URL|https://github.com/starfrost013/nvplayground/}}&lt;br /&gt;
| operating system = [[wikipedia:MS-DOS|MS-DOS]] and [[wikipedia:Microsoft Windows|DOS-based Microsoft Windows]]&lt;br /&gt;
| programming language = [[wikipedia:C (programming language)|C]]&lt;br /&gt;
| genre = [[wikipedia:Device driver|Driver]], [[wikipedia:Read-eval-print loop|REPL]]&lt;br /&gt;
| license = [[wikipedia:MIT License | MIT License]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware. &lt;br /&gt;
&lt;br /&gt;
By default, NVPlay runs in a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV3&amp;diff=1687</id>
		<title>NV3</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV3&amp;diff=1687"/>
		<updated>2025-12-26T21:36:08Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV3&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV3&lt;br /&gt;
|branding=RIVA 128&lt;br /&gt;
|announcement_date=25 April 1997&lt;br /&gt;
|release_date=25 August 1997&lt;br /&gt;
|end_of_production=late(?) 1998&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;12d2&amp;lt;/code&amp;gt; (SGS/Nvidia)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0018&amp;lt;/code&amp;gt; &lt;br /&gt;
|buses_supported=PCI, AGP 1X&lt;br /&gt;
|directx_version=5.0&lt;br /&gt;
|opengl_version=1.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The NV3 architecture is Nvidia&#039;s third-generation graphics architecture, designed from 1996 to 1997 and released at the end of August 1997&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/M_kHjM9bv8o/m/wUJnpYyJtF4J&amp;lt;/ref&amp;gt; under the &#039;&#039;Riva 128&#039;&#039; branding. It was designed by a team under the direction of [[David Kirk]] and was designed to be the &amp;quot;fastest triangle renderer on earth&amp;quot; at the time while being able to be desizned in a very short time (due to Nvidia&#039;s near-bankruptcy during the period of its design), provide 2D acceleration with full, non-emulated (unlike the [[NV1]]) VGA compatibility, and at a reasonably low price. It did achieve this goal, although with many caveats: the graphics image quality was not as good as some rival cards, such as the 3dfx Voodoo, there are a few minor missing features within the architecture that were considered important at the time like trilinear texture filtering. Most importantly, the NV3 architecture was by far the fastest 2D/3D combo card, and by some measures the fastest 3D card full stop, available at the time, as 3dfx Voodoo-based cards before the Voodoo Banshee, excluding the disastrous Voodoo Rush, can only accelerate 3D applications (barring specialised &amp;quot;3D-on-2D&amp;quot; drivers), and even then only in fullscreen mode. Even when it was not used as a 3D card, it was often used as a passthrough for a 3dfx Voodoo card (despite the Riva 128 having almost equal 3D capabilities). While the Riva 128 had worse CPU scaling, performing slower on slower CPUs, despite its more complete triangle setup engine, its overall speed was slightly faster, especially on smaller triangles, albeit with somewhat worse image quality (in 1997, having a usable image at all was considered decent due to catastrophe cards like the Alliance Semiconductor aT3D, but by 1999 it was considered almost bad image quality); it could also load much larger textures (2048x2048, although impractical due to the limited VRAM, as opposed to the Voodoo&#039;s 256x256). Most NV3-architecture based graphics cards ran at a default clock speed of 100 Mhz (although some TSMC-manufactured NV3T chips are specified to run at 90 Mhz, and overclocking up to around 120 Mhz was often done safely with the requisite improvements in performance), with the pixel clock ranging up to a maximum of 230 (NV3) or 260 (NV3T) Mhz. A maximum of 4 megabytes of Video RAM is supported and the card can be run off of either the PCI 2.1 (at 66 Megahertz bus speed) or AGP 1X buses.&lt;br /&gt;
&lt;br /&gt;
The 2D acceleration of the NV3 architecture provides full VGA, VBE 3.0, and accelerated 2D support, Windows GDI acceleration (including full GDI ternary bitblit ROP support), point, line and rectangle drawing, image rendering, screen to screen blit with up to four manipulatable buffers (although only two are used for this purpose in practice in the Nvidia drivers), image scaling and stretching, rendering at an 8 to 32 bits per pixel colour depth at a maximum theoretical resolution of 2048*1536 and maximum practical resolution of either 1600*1200 (NV3) or 1920*1200 (NV3T), although this requires reducing the colour depth to 16bpp or lower. Other supported features of the 2D graphics pipeline include colour conversion (including RGB10, YUV420 and 422, and palette-based colour formats), colour-expansion and downconversion, color-expanded bitblit for optimised text bitmap rendering, color key, plane mask and TV-out functionality with video overlay support (via the on-board &amp;quot;Mediaport&amp;quot;). Buffers can be anywhere in VRAM with any pitch and any supported colour format. The card&#039;s VGA support is provided via a modified Weitek VGA core that Nvidia licensed.&lt;br /&gt;
&lt;br /&gt;
There also exists within the NV3 architecture a fairly robust (for the time), mostly Direct3D 5.0-compliant and OpenGL 1.1 3D rendering implementation. Flat shading, gouraud shading, perspective-corrected (via submission of a homogenous 1/W value to the GPU to be used for perspective correction: the GPU will not perform this itself) bilinear-filtered texture mapping, per polygon and later per-pixel (with a driver update) mip-mapping, texture interpolation and wrapping (supported texture wrapping modes are clamping, mirroring and wrapping, and they can be set separately for both the U and V coordinate), most Direct3D 5.0 rendering ROPs (additive blending from the Direct3D 5.0 specification is missing and a few others), meshes, specular highlight, a 16-bit Z-buffer (interleaved in what was called a &amp;quot;zeta buffer&amp;quot; for optimisation reasons; a stencil buffer is also emulated in software), alpha-buffering for alpha blending, hardware fog (vertex fog - applying the fog colour and intensity at a vertex level - is implemented in hardware, whereas table fog - the slightly higher quality version where the fog colour is applied at output pixel levle - is emulated using vertex fog) with 24-bit fog colour; while triangle setup (span interpolation and similar operations) are accelerated, transformation and lighting{{ref|a}} are not (this would have to wait for [[NV10]]). Most of the interface to the NV3&#039;s 3D engine is implemented via the &amp;lt;code&amp;gt;NV_D3D0Z&amp;lt;/code&amp;gt; class; the interface to this class is via various methods for the control of all of the above features and then the submission of X, Y, Z, M (the aforementioned homogenous 1/W coordinte), U and V (for textures) coordinates for up to 128 triangles at a time. Although the output pixel format appears to be always 32-bit, only the 16-bit (not even 8-bit; the drivers convert any non 16-bit texture to 16-bit) &amp;lt;code&amp;gt;A4R4G4B4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1R5G5B5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;R5G5B5&amp;lt;/code&amp;gt; and, via registry tweaks in the Direct3D driver, &amp;lt;code&amp;gt;R5G6B5&amp;lt;/code&amp;gt; texture formats can be loaded; the largest texture size that can be loaded is 2048x2048, although in practice this is most likely done by splitting up the large texture into smaller textures, since a 2048x2048 texture (even at just 8bpp) is a minimum of 4 MB - too small to fit in the regular NV3 VRAM, and in a supported texture format will be 8 MB; too large for any variant of the NV3 architecture to support. Multitexturing is not supported; only a single texture can be supplied via the &amp;lt;code&amp;gt;NV_D3D0Z&amp;lt;/code&amp;gt; class methods at a time. Up to 128 triangles can be submitted at a time, therefore it is a good idea to ensure the area covered by only one texture is close to a multiple of 128 while optimising for this graphics card.&lt;br /&gt;
&lt;br /&gt;
The PIO mode from the NV1 for object submission remains and is used for most basic 2D drivers, however a new DMA mode is added for faster object submission and higher three-dimensional graphics throughput.&lt;br /&gt;
&lt;br /&gt;
==NV3T==&lt;br /&gt;
{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV3T&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV3T&lt;br /&gt;
|branding=RIVA 128 ZX&lt;br /&gt;
|announcement_date=27 February 1998&lt;br /&gt;
|release_date=Q2 1998&lt;br /&gt;
|end_of_production=mid-1999&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;12d2&amp;lt;/code&amp;gt; (SGS/Nvidia)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0018&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0019&amp;lt;/code&amp;gt; if ACPI is enabled)&lt;br /&gt;
|buses_supported=PCI, AGP 2X (will run at 1X speed if 2X not supported by chipset)&lt;br /&gt;
|directx_version=5.0&lt;br /&gt;
|opengl_version=1.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The NV3T (NV3 Turbo; also known as NV3 revision C), commercialised as the &#039;&#039;RIVA 128 ZX&#039;&#039; (briefly called &amp;quot;RIVA 128 Turbo&amp;quot;), is a respin of the NV3 to allow for higher RAMDAC clock speeds (260Mhz) and more Video RAM to compete with the Intel i740. It expands the maximum amount of video RAM to 8MB, makes PFIFO&#039;s CACHE1 64 units deep instead of 32, allows for resolutions above 1600x1200 by both the aforementioned higher clocked RAMDAC in both the VGA BIOS and the drivers, and can run 3D at higher resolutions due to its higher amount of video RAM. Additionally, this was the first Nvidia GPU (other than the very few [[NV2]]&#039;s manufactured) to be manufactured by a manufacturer that is not STMicroelectronics (then SGS-Thomson): the RIVA 128 ZX was manufactured by TSMC; it appears that they may not have had equal yields to ST (despite ST&#039;s yield crisis at the time), as some NV3Ts manufactured by TSMC are downclocked to 90 megahertz.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
[[NV3 Getting Started]] - How to program the RIVA 128, the real way&lt;br /&gt;
&lt;br /&gt;
==Hardware subsystems==&lt;br /&gt;
NV3 and NV3T share the same hardware subsystems:&lt;br /&gt;
&lt;br /&gt;
* [[NV3 memory mapping|Memory mapping]] - How things are mapped out&lt;br /&gt;
* [[NV3 PMC|PMC]] - The part that controls everything else&lt;br /&gt;
* [[NV3 rendering pipeline]] - How rendering happens&lt;br /&gt;
** [[NV3 object submission]] - How rendering starts&lt;br /&gt;
** [[NV3 NV_USER|NV_USER]] - How to submit objects using Programmed I/O&lt;br /&gt;
** [[NV3 PFIFO#DMA|DMA Engine]] - How to submit objects using DMA&lt;br /&gt;
** [[NV3 PFIFO|PFIFO]] - FIFO for optimised graphics engine submission&lt;br /&gt;
** [[NV3 PFB|PFB]] - Framebuffer interface&lt;br /&gt;
** [[NV3 PGRAPH|PGRAPH]] - 2D/3D graphics rendering engine (name comes from &amp;quot;Scene graph&amp;quot;)&lt;br /&gt;
** [[NV3 PGRAPH#Cache|PGRAPH_CACHE]] - Internal vertex and pixel storage&lt;br /&gt;
** [[NV3 Graphics objects|Graphics objects]] - Available graphics objects&lt;br /&gt;
** [[NV3 RAMIN|RAMIN]] - Where graphics objects get stored&lt;br /&gt;
** [[NV3 RAMHT|RAMHT]] - How you find graphics objects&lt;br /&gt;
** [[NV3 RAMFC|RAMFC]] - Where the objects go for DMA context switching&lt;br /&gt;
** [[NV3 RAMRO|RAMRO]] - Where objects go when it all goes wrong&lt;br /&gt;
** [[NV3 RAMAU|RAMAU]] - Remnants of what was meant to be&lt;br /&gt;
** [[NV3 Notification Engine|Notification Engine]] - How to tell software the state of the hardware&lt;br /&gt;
** [[NV3 PRAMDAC|PRAMDAC]] - RAMDAC for clocks, memory timings, CLUT, and sending the framebuffer to the TV or monitor&lt;br /&gt;
* [[NV3 DPRAM|DPRAM]] - Talk to VRAM&lt;br /&gt;
* [[NV3 PVIDEO|PVIDEO]] - Video overlay and control&lt;br /&gt;
* [[NV3 PME|PME]] - Mediaport - Lets you plug in an external MPEG decoder&lt;br /&gt;
* [[PRMCIO]] - CRTC for controlling a connected CRT display&lt;br /&gt;
* [[PRMVIO]] - Legacy VGA support, courtesy of [[Weitek]]&lt;br /&gt;
* [[PTIMER]] - Programmable interval timer&lt;br /&gt;
* [[PDFB]] - Just a dumb framebuffer&lt;br /&gt;
* [[RMA|Real-mode access]] - Access the GPU from real mode&lt;br /&gt;
* [[VBIOS]] - Initialisation, POST, VGA and VESA&lt;br /&gt;
* [[PROM]] - Read from the Video BIOS&lt;br /&gt;
* [[PDAC]] - Optional external DAC support&lt;br /&gt;
* [[NV3 configuration#PCI configuration registers|PCI configuration registers]] - PCI configuration registers&lt;br /&gt;
* [[NV3 configuration#Manufacture-time configuration|Manufacture-time configuration]] - Read the manufacturer, stepping, bus size, bus and more of your GPU&lt;br /&gt;
* [[NV3 configuration#Straps|Straps]] - OEM-level configuration&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[STG-3001]]&lt;br /&gt;
* [[NV3 (QTM)]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{note|a}}The &amp;lt;code&amp;gt;NV_PGRAPH_DEBUG_2&amp;lt;/code&amp;gt; register&#039;s bit 15 is officially called &amp;lt;code&amp;gt;LIGHTING_3D_ENABLED&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;NV_PGRAPH_STATUS&amp;lt;/code&amp;gt; register&#039;s 26th bit is called &amp;lt;code&amp;gt;NV_PGRAPH_STATUS_LIGHTING&amp;lt;/code&amp;gt; which can be &amp;quot;busy&amp;quot; or not. It doesn&#039;t appear that these have any real effect on how the graphics hardware behaves: they may be leftovers from [[NV2]].&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV1&amp;diff=1686</id>
		<title>NV1</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV1&amp;diff=1686"/>
		<updated>2025-12-26T21:35:15Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV1&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV1&lt;br /&gt;
|branding=SGS-Thomson STG2000; NV1; OEM cards: Diamond Edge 3D; Jazz Multimedia 3D Magic&lt;br /&gt;
|announcement_date=22 May 1995&lt;br /&gt;
|release_date=Q3 1995&lt;br /&gt;
|end_of_production=Likely between February 26, 1996 and March 3, 1996&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;104a&amp;lt;/code&amp;gt; (SGS-Thomson; DRAM version); &amp;lt;code&amp;gt;10de&amp;lt;/code&amp;gt; (NVidia; VRAM version)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0008&amp;lt;/code&amp;gt; (main GPU)&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;0009&amp;lt;/code&amp;gt; (VGA emulation layer)&lt;br /&gt;
|buses_supported=VLB (never commercialised), PCI&lt;br /&gt;
|directx_version=2.0 (badly software emulated)&lt;br /&gt;
|opengl_version=Not supported&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Architecture reference==&lt;br /&gt;
* [[NV1 RMC]]&lt;br /&gt;
* [[NV1 known units]]&lt;br /&gt;
* [[PTIMER]]&lt;br /&gt;
* [[VBIOS]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[NV1 known models]]&lt;br /&gt;
* [[NV1 known units]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Template:Infobox_GPU&amp;diff=1685</id>
		<title>Template:Infobox GPU</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Template:Infobox_GPU&amp;diff=1685"/>
		<updated>2025-12-26T21:32:41Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ Infobox&lt;br /&gt;
|autoheaders = y&lt;br /&gt;
&lt;br /&gt;
|title     = {{{title|}}}&lt;br /&gt;
&lt;br /&gt;
|image   = {{#if: {{{image|}}} | [[File:{{{image}}}|{{{screenshot size|290px}}}|alt={{{image alt|{{{image-caption|Screenshot}}}}}}]] }}&lt;br /&gt;
|caption = {{{imagecaption|}}}&lt;br /&gt;
&lt;br /&gt;
|label1 = Branding&lt;br /&gt;
|data1  = {{{branding|}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Codename of the graphics hardware --&amp;gt;&lt;br /&gt;
|label2 = Codename&lt;br /&gt;
|data2 = {{{codename|}}}&lt;br /&gt;
&lt;br /&gt;
|label3 = Architecture&lt;br /&gt;
|data3 = {{{architecture|}}}&lt;br /&gt;
&lt;br /&gt;
|label4 = Era&lt;br /&gt;
|data4 = {{{era|}}}&lt;br /&gt;
&lt;br /&gt;
|label5 = Announcement date&lt;br /&gt;
|data5 = {{{announcement_date|}}}&lt;br /&gt;
&lt;br /&gt;
|label6 = Release date&lt;br /&gt;
|data6 = {{{release_date|}}}&lt;br /&gt;
&lt;br /&gt;
|label7 = End of production&lt;br /&gt;
|data7 = {{{end_of_production|}}}&lt;br /&gt;
&lt;br /&gt;
|label8 = PCI vendor ID&lt;br /&gt;
|data8 = {{{pci_vendor_id|}}}&lt;br /&gt;
&lt;br /&gt;
|label9 = PCI device ID&lt;br /&gt;
|data9 = {{{pci_device_id|}}}&lt;br /&gt;
&lt;br /&gt;
|label10 = &amp;lt;code&amp;gt;NV_PMC_BOOT_0&amp;lt;/code&amp;gt; value&lt;br /&gt;
|data10 = {{{pmc_boot_0|}}}&lt;br /&gt;
&lt;br /&gt;
|label11 = Buses supported&lt;br /&gt;
|data11 = {{{buses|}}}&lt;br /&gt;
&lt;br /&gt;
|label12 = DirectX hardware supported version&lt;br /&gt;
|data12 = {{{directx_version|}}}&lt;br /&gt;
&lt;br /&gt;
|label13 = OpenGL hardware supported version&lt;br /&gt;
|data13 = {{{opengl_version|}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NV3&amp;diff=1684</id>
		<title>NV3</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NV3&amp;diff=1684"/>
		<updated>2025-12-26T21:07:43Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV3&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV3&lt;br /&gt;
|branding=RIVA 128&lt;br /&gt;
|announcement_date=25 April 1997&lt;br /&gt;
|release_date=25 August 1997&lt;br /&gt;
|end_of_production=late(?) 1998&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;12d2&amp;lt;/code&amp;gt; (SGS/Nvidia)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0018&amp;lt;/code&amp;gt; &lt;br /&gt;
|buses_supported=PCI, AGP 1X&lt;br /&gt;
|directx_version=5.0&lt;br /&gt;
|opengl_version=1.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The NV3 architecture is Nvidia&#039;s third-generation graphics architecture, designed from 1996 to 1997 and released at the end of August 1997&amp;lt;ref&amp;gt;https://groups.google.com/g/comp.sys.ibm.pc.hardware.video/c/M_kHjM9bv8o/m/wUJnpYyJtF4J&amp;lt;/ref&amp;gt; under the &#039;&#039;Riva 128&#039;&#039; branding. It was designed by a team under the direction of [[David Kirk]] and was designed to be the &amp;quot;fastest triangle renderer on earth&amp;quot; at the time while being able to be desizned in a very short time (due to Nvidia&#039;s near-bankruptcy during the period of its design), provide 2D acceleration with full, non-emulated (unlike the [[NV1]]) VGA compatibility, and at a reasonably low price. It did achieve this goal, although with many caveats: the graphics image quality was not as good as some rival cards, such as the 3dfx Voodoo, there are a few minor missing features within the architecture that were considered important at the time like trilinear texture filtering. Most importantly, the NV3 architecture was by far the fastest 2D/3D combo card, and by some measures the fastest 3D card full stop, available at the time, as 3dfx Voodoo-based cards before the Voodoo Banshee, excluding the disastrous Voodoo Rush, can only accelerate 3D applications (barring specialised &amp;quot;3D-on-2D&amp;quot; drivers), and even then only in fullscreen mode. Even when it was not used as a 3D card, it was often used as a passthrough for a 3dfx Voodoo card (despite the Riva 128 having almost equal 3D capabilities). While the Riva 128 had worse CPU scaling, performing slower on slower CPUs, despite its more complete triangle setup engine, its overall speed was slightly faster, especially on smaller triangles, albeit with somewhat worse image quality (in 1997, having a usable image at all was considered decent due to catastrophe cards like the Alliance Semiconductor aT3D, but by 1999 it was considered almost bad image quality); it could also load much larger textures (2048x2048, although impractical due to the limited VRAM, as opposed to the Voodoo&#039;s 256x256). Most NV3-architecture based graphics cards ran at a default clock speed of 100 Mhz (although some TSMC-manufactured NV3T chips are specified to run at 90 Mhz, and overclocking up to around 120 Mhz was often done safely with the requisite improvements in performance), with the pixel clock ranging up to a maximum of 230 (NV3) or 260 (NV3T) Mhz. A maximum of 4 megabytes of Video RAM is supported and the card can be run off of either the PCI 2.1 (at 66 Megahertz bus speed) or AGP 1X buses.&lt;br /&gt;
&lt;br /&gt;
The 2D acceleration of the NV3 architecture provides full VGA, VBE 3.0, and accelerated 2D support, Windows GDI acceleration (including full GDI ternary bitblit ROP support), point, line and rectangle drawing, image rendering, screen to screen blit with up to four manipulatable buffers (although only two are used for this purpose in practice in the Nvidia drivers), image scaling and stretching, rendering at an 8 to 32 bits per pixel colour depth at a maximum theoretical resolution of 2048*1536 and maximum practical resolution of either 1600*1200 (NV3) or 1920*1200 (NV3T), although this requires reducing the colour depth to 16bpp or lower. Other supported features of the 2D graphics pipeline include colour conversion (including RGB10, YUV420 and 422, and palette-based colour formats), colour-expansion and downconversion, color-expanded bitblit for optimised text bitmap rendering, color key, plane mask and TV-out functionality with video overlay support (via the on-board &amp;quot;Mediaport&amp;quot;). Buffers can be anywhere in VRAM with any pitch and any supported colour format. The card&#039;s VGA support is provided via a modified Weitek VGA core that Nvidia licensed.&lt;br /&gt;
&lt;br /&gt;
There also exists within the NV3 architecture a fairly robust (for the time), mostly Direct3D 5.0-compliant and OpenGL 1.1 3D rendering implementation. Flat shading, gouraud shading, perspective-corrected (via submission of a homogenous 1/W value to the GPU to be used for perspective correction: the GPU will not perform this itself) bilinear-filtered texture mapping, per polygon and later per-pixel (with a driver update) mip-mapping, texture interpolation and wrapping (supported texture wrapping modes are clamping, mirroring and wrapping, and they can be set separately for both the U and V coordinate), most Direct3D 5.0 rendering ROPs (additive blending from the Direct3D 5.0 specification is missing and a few others), meshes, specular highlight, a 16-bit Z-buffer (interleaved in what was called a &amp;quot;zeta buffer&amp;quot; for optimisation reasons; a stencil buffer is also emulated in software), alpha-buffering for alpha blending, hardware fog (vertex fog - applying the fog colour and intensity at a vertex level - is implemented in hardware, whereas table fog - the slightly higher quality version where the fog colour is applied at output pixel levle - is emulated using vertex fog) with 24-bit fog colour; while triangle setup (span interpolation and similar operations) are accelerated, transformation and lighting{{ref|a}} are not (this would have to wait for [[NV10]]). Most of the interface to the NV3&#039;s 3D engine is implemented via the &amp;lt;code&amp;gt;NV_D3D0Z&amp;lt;/code&amp;gt; class; the interface to this class is via various methods for the control of all of the above features and then the submission of X, Y, Z, M (the aforementioned homogenous 1/W coordinte), U and V (for textures) coordinates for up to 128 triangles at a time. Although the output pixel format appears to be always 32-bit, only the 16-bit (not even 8-bit; the drivers convert any non 16-bit texture to 16-bit) &amp;lt;code&amp;gt;A4R4G4B4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1R5G5B5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;R5G5B5&amp;lt;/code&amp;gt; and, via registry tweaks in the Direct3D driver, &amp;lt;code&amp;gt;R5G6B5&amp;lt;/code&amp;gt; texture formats can be loaded; the largest texture size that can be loaded is 2048x2048, although in practice this is most likely done by splitting up the large texture into smaller textures, since a 2048x2048 texture (even at just 8bpp) is a minimum of 4 MB - too small to fit in the regular NV3 VRAM, and in a supported texture format will be 8 MB; too large for any variant of the NV3 architecture to support. Multitexturing is not supported; only a single texture can be supplied via the &amp;lt;code&amp;gt;NV_D3D0Z&amp;lt;/code&amp;gt; class methods at a time. Up to 128 triangles can be submitted at a time, therefore it is a good idea to ensure the area covered by only one texture is close to a multiple of 128 while optimising for this graphics card.&lt;br /&gt;
&lt;br /&gt;
The PIO mode from the NV1 for object submission remains and is used for most basic 2D drivers, however a new DMA mode is added for faster object submission and higher three-dimensional graphics throughput.&lt;br /&gt;
&lt;br /&gt;
==NV3T==&lt;br /&gt;
{{Template:Infobox GPU&lt;br /&gt;
|title=&#039;&#039;&#039;NV3T&#039;&#039;&#039;&lt;br /&gt;
|architecture=NV3T&lt;br /&gt;
|branding=RIVA 128 ZX&lt;br /&gt;
|announcement_date=27 February 1998&lt;br /&gt;
|release_date=Q2 1998&lt;br /&gt;
|end_of_production=mid-1999&lt;br /&gt;
|pci_vendor_id=&amp;lt;code&amp;gt;12d2&amp;lt;/code&amp;gt; (SGS/Nvidia)&lt;br /&gt;
|pci_device_id=&amp;lt;code&amp;gt;0018&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0019&amp;lt;/code&amp;gt; if ACPI is enabled)&lt;br /&gt;
|buses_supported=PCI, AGP 2X (will run at 1X speed if 2X not supported by chipset)&lt;br /&gt;
|directx_version=5.0&lt;br /&gt;
|opengl_version=1.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The NV3T (NV3 Turbo; also known as NV3 revision C), commercialised as the &#039;&#039;RIVA 128 ZX&#039;&#039; (briefly called &amp;quot;RIVA 128 Turbo&amp;quot;), is a respin of the NV3 to allow for higher RAMDAC clock speeds (260Mhz) and more Video RAM to compete with the Intel i740. It expands the maximum amount of video RAM to 8MB, makes PFIFO&#039;s CACHE1 64 units deep instead of 32, allows for resolutions above 1600x1200 by both the aforementioned higher clocked RAMDAC in both the VGA BIOS and the drivers, and can run 3D at higher resolutions due to its higher amount of video RAM. Additionally, this was the first Nvidia GPU (other than the very few [[NV2]]&#039;s manfuactured) to be manufactured by a manufacturer that is not STMicroelectronics (then SGS-Thomson): the RIVA 128 ZX was manufactured by TSMC; it appears that they may not have had equal yields to ST (despite ST&#039;s yield crisis at the time), as some NV3Ts manufactured by TSMC are downclocked to 90 megahertz.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
[[NV3 Getting Started]] - How to program the RIVA 128, the real way&lt;br /&gt;
&lt;br /&gt;
==Hardware subsystems==&lt;br /&gt;
NV3 and NV3T share the same hardware subsystems:&lt;br /&gt;
&lt;br /&gt;
* [[NV3 memory mapping|Memory mapping]] - How things are mapped out&lt;br /&gt;
* [[NV3 PMC|PMC]] - The part that controls everything else&lt;br /&gt;
* [[NV3 rendering pipeline]] - How rendering happens&lt;br /&gt;
** [[NV3 object submission]] - How rendering starts&lt;br /&gt;
** [[NV3 NV_USER|NV_USER]] - How to submit objects using Programmed I/O&lt;br /&gt;
** [[NV3 PFIFO#DMA|DMA Engine]] - How to submit objects using DMA&lt;br /&gt;
** [[NV3 PFIFO|PFIFO]] - FIFO for optimised graphics engine submission&lt;br /&gt;
** [[NV3 PFB|PFB]] - Framebuffer interface&lt;br /&gt;
** [[NV3 PGRAPH|PGRAPH]] - 2D/3D graphics rendering engine (name comes from &amp;quot;Scene graph&amp;quot;)&lt;br /&gt;
** [[NV3 PGRAPH#Cache|PGRAPH_CACHE]] - Internal vertex and pixel storage&lt;br /&gt;
** [[NV3 Graphics objects|Graphics objects]] - Available graphics objects&lt;br /&gt;
** [[NV3 RAMIN|RAMIN]] - Where graphics objects get stored&lt;br /&gt;
** [[NV3 RAMHT|RAMHT]] - How you find graphics objects&lt;br /&gt;
** [[NV3 RAMFC|RAMFC]] - Where the objects go for DMA context switching&lt;br /&gt;
** [[NV3 RAMRO|RAMRO]] - Where objects go when it all goes wrong&lt;br /&gt;
** [[NV3 RAMAU|RAMAU]] - Remnants of what was meant to be&lt;br /&gt;
** [[NV3 Notification Engine|Notification Engine]] - How to tell software the state of the hardware&lt;br /&gt;
** [[NV3 PRAMDAC|PRAMDAC]] - RAMDAC for clocks, memory timings, CLUT, and sending the framebuffer to the TV or monitor&lt;br /&gt;
* [[NV3 DPRAM|DPRAM]] - Talk to VRAM&lt;br /&gt;
* [[NV3 PVIDEO|PVIDEO]] - Video overlay and control&lt;br /&gt;
* [[NV3 PME|PME]] - Mediaport - Lets you plug in an external MPEG decoder&lt;br /&gt;
* [[PRMCIO]] - CRTC for controlling a connected CRT display&lt;br /&gt;
* [[PRMVIO]] - Legacy VGA support, courtesy of [[Weitek]]&lt;br /&gt;
* [[PTIMER]] - Programmable interval timer&lt;br /&gt;
* [[PDFB]] - Just a dumb framebuffer&lt;br /&gt;
* [[RMA|Real-mode access]] - Access the GPU from real mode&lt;br /&gt;
* [[VBIOS]] - Initialisation, POST, VGA and VESA&lt;br /&gt;
* [[PROM]] - Read from the Video BIOS&lt;br /&gt;
* [[PDAC]] - Optional external DAC support&lt;br /&gt;
* [[NV3 configuration#PCI configuration registers|PCI configuration registers]] - PCI configuration registers&lt;br /&gt;
* [[NV3 configuration#Manufacture-time configuration|Manufacture-time configuration]] - Read the manufacturer, stepping, bus size, bus and more of your GPU&lt;br /&gt;
* [[NV3 configuration#Straps|Straps]] - OEM-level configuration&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[STG-3001]]&lt;br /&gt;
* [[NV3 (QTM)]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{note|a}}The &amp;lt;code&amp;gt;NV_PGRAPH_DEBUG_2&amp;lt;/code&amp;gt; register&#039;s bit 15 is officially called &amp;lt;code&amp;gt;LIGHTING_3D_ENABLED&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;NV_PGRAPH_STATUS&amp;lt;/code&amp;gt; register&#039;s 26th bit is called &amp;lt;code&amp;gt;NV_PGRAPH_STATUS_LIGHTING&amp;lt;/code&amp;gt; which can be &amp;quot;busy&amp;quot; or not. It doesn&#039;t appear that these have any real effect on how the graphics hardware behaves: they may be leftovers from [[NV2]].&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=Main_Page&amp;diff=1665</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=Main_Page&amp;diff=1665"/>
		<updated>2025-12-26T19:56:49Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
= nvwiki: A wiki about Nvidia graphics cards =&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* [[Emulation status]]&lt;br /&gt;
* [[Hardware errata]]&lt;br /&gt;
* [[Timeline]]&lt;br /&gt;
&lt;br /&gt;
=== NVPlay ===&lt;br /&gt;
&lt;br /&gt;
* [[NVPlay]]&lt;br /&gt;
&lt;br /&gt;
{{GPUs}}&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
	<entry>
		<id>https://nvwiki.org/index.php?title=NVPlay&amp;diff=1664</id>
		<title>NVPlay</title>
		<link rel="alternate" type="text/html" href="https://nvwiki.org/index.php?title=NVPlay&amp;diff=1664"/>
		<updated>2025-12-26T19:56:45Z</updated>

		<summary type="html">&lt;p&gt;Starfrost: Starfrost moved page NVPlay Documentation to NVPlay without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;NVPlay&#039;&#039;&#039; is a tool designed to allow low-level communication with and control of graphics hardware, focusing on early Nvidia GPUs from the mid to late 1990s. It is a tool intended for developers to aid emulation efforts. The program will initialise your installed GPU in an entirely freestanding way without any drivers and has several modes that allow different methods to control your graphics hardware. By default it kicks you into a REPL loop that lets you run a set of commands that do register-level GPU I/O.&lt;/div&gt;</summary>
		<author><name>Starfrost</name></author>
	</entry>
</feed>