3dfx

From Vogons Wiki
Revision as of 14:56, 14 May 2013 by D1stortion (Talk | contribs)

Jump to: navigation, search
Old 3dfx logo

3dfx (written as 3Dfx until 1999) was a 3D graphics chipset manufacturer and later on graphics card manufacturer. Founded in 1994, the company was one of the pioneers of 3D graphics in the PC industry in the mid to late 1990's. Their products were mainly popular for PC 3D game accelerators, but also used in arcade machines and professional visualization systems.

New 3dfx logo

They played an important role in the 3D graphics industry until December 15, 2000, when most of their assets were purchased by NVIDIA Corporation, after which the company filed for bancruptcy and officialy went defunct in 2002.

General 3dfx information

3dfx cards - namely their proprietary Glide API - can be considered one of the prime reasons to use vintage hardware today, because many early 3D games starting from 1996 had versions for at least some 3dfx cards, and in many cases these cards brought the superior image quality. A notorious example for this is Unreal (1998), a game that was geared towards software rendering at first, but had a Glide renderer added during development as soon as it was clear that Voodoo would come out as the best 3D accelerator. The game also had Direct3D and OpenGL renderers, but Direct3D was well in its infancy back in the day and even the OpenGL renderer wasn't their best effort, therefore players with competitor cards had to wait for Epic's patches to improve the graphics, but in the end it would take fanmade patches to provide competitive renderers.[1]

It was also common for game developers to put 3dfx logos on their games' boxes, leading to misconceptions for a decent amount of games supporting Glide which actually do not at all, or only provide a special MiniGL driver for 3dfx cards. This was again due to 3dfx being the dominant 3D solution at this time, and also a commonly known brand with PC gamers. If software does not straightforwardly access either glide.dll, glide2x.dll/ovl or glide3x.dll, it cannot be said to directly support the Glide API.

Since Glide was a proprietary interface, there were 3rd party efforts from early on to bring it to all 3D cards. Glide wrappers are at a level where they can properly emulate how those games would look on a real Voodoo card and can be considered a viable alternative to the real cards. A problem with them is that games written for Win9x are not necessarily compatible with modern operating systems, so only a (at best) period-correct Win9x system can be guaranteed to play all Glide games properly.

The main weak points of all vintage cards apart from incompatibility with modern mainboards/operating systems are lack of full screen anti-aliasing (addressed with V5) and anisotropic filtering (implemented in GeForce 256, only started to be useful with about GeForce 3).

A disadvantage of 3dfx's SLI multi-GPU solution (V2 SLI/V5 for consumer cards) is that it is somewhat prone to slight horizontal artifacts somewhat akin to screen tearing, which results from the multiple chips not fully working synchronously. This can be prevented by activating VSync in the drivers or in the games, a solution which itself has the problem of causing mouse lag in many cases.

All 3dfx cards use the AGP port as a mere 66 MHz PCI port and do not utilize any of the special features that AGP offers. PCI and AGP versions of 3dfx cards perform almost identically. All AGP 3dfx cards are AGP 2x (3.3V) and must not used in newer 1.5V slots. Only retail Voodoo 4 4500 cards are AGP 4x 1.5V capable.

Cards of Voodoo2 SLI/3 grade speed scale with CPUs up until about a ~1 GHz Intel Pentium III Coppermine, although a PIII 500 Katmai should be enough to play all Glide games fluently. AMD's K6 line can be considered second choice when building a 3dfx centered PC, because these CPUs can be a significant bottleneck with some later games. Pentium Classic and Pentium MMX CPUs will only be able to run early Glide titles full-speed. Older games should be able to cope with faster CPUs; exceptions are listed here. Lastly, it should be noted that Voodoo Graphics cards will not work with K7 (Athlon) CPUs, and Voodoo2 cards will need special 3rd party drivers to work with these CPUs.

Community-made resources for 3dfx cards include drivers, such as Amigamerlin, x3dfx and SFFT, which can provide more features and speed than the latest official drivers from 2000 and some of which allow the cards to be run under Windows XP, or tools such as V.Control which provide more in-depth tweaking options. For potentially better OpenGL compatibility or speed, one can use the MesaFX standalone OpenGL driver or Metabyte's WickedGL MiniGL driver.

All 3dfx cards share the fact that the graphics core and memory always run at the same frequency. This makes overclocking generally harder than on other cards, because in many cases the memory will hit the limit earlier than the core. Still it is possible: V1/V2 cards can be overclocked by environment variables, while the other cards contain an option in the driver for this. With most drivers this needs to be unlocked with a special utility from 3dfx, which will also allow the user to set VSync options for both DirectX and OpenGL. Better cooling, e.g. through means of a case fan is advised when overclocking.

Note that 3dfx cards can react quite sensitively to overclocked system buses, such as the commonly attempted 133 MHz FSB on 100 MHz-specified Intel 440BX chipset boards. Such an overclock on these boards will result in a 89 MHz (instead of 66 MHz) frequency for the AGP bus due to the lack of a proper divider, which can result in garbled BIOS screens and IDE drive corruption. Finally, note that all overclocking happens at the user's own risk.

Getting the best compatibility

For better compatibility and versatility, it is common practice among vintage computer enthusiasts to have multiple video or sound cards in one system. Back in the day, this was typically widespread and necessary for 3D-only 3dfx cards with a loop cable (V1/V2). That way, one can easily have a faster card for OpenGL/D3D (or a card supporting one of the other proprietary 3D APIs) combined with e.g. V2 SLI which will automatically engage when Glide is chosen in games. This may cause issues with some cards if for some reason OpenGL/D3D would be needed on the 3dfx card(s).

Another way is to combine said non-3dfx card with a 2D+3D 3dfx card, one of them being AGP and the other one PCI. Due to both being full video cards one would need to perform the switch in the BIOS under "Primary VGA adapter", "Boot from AGP/PCI" or likewise (if it supports it) depending on what card is needed. This method has the disadvantage of requiring to relocate the monitor cable each time because there is no passthrough; a monitor with multiple inputs or a VGA or KVM switch would solve that problem, potentially with DVI for one of the cards if available. This should work very reliably without any conflicts.

It is also possible to take advantage of multi-monitor support in Windows 98, either with a multi-input monitor by switching between inputs on the monitor itself or two monitors. However, this has been reported to cause Windows to use the OpenGL software fallback mode as long as the secondary display is enabled, so it is perhaps not the optimal solution. Direct3D hardware acceleration only works on the primary display.

Finally, for maximum Glide compatibility, one could even use three cards (e.g. V1, V2 and V3/4/5) and switch between the cards by copying the appropriate glide2x.dll/glide3x.dll drivers into the game directory depending on which card the game should run with. When using this method, it is important to install the drivers in ascending order, so that games which access the drivers in the Windows folder use the newest 3dfx card. For DOS games, one would analogically copy Glide2x.ovl into the game folder.

To get games which were originally made for Voodoo Graphics to work with Voodoo2 boards, one can use the following SST variables in the autoexec.bat, either directly or by an external batchfile:

SET SST_GRXCLK=90
SET SST_FT_CLK_DEL=0x4
SET SST_TF0_CLK_DEL=0x6
SET SST_TF1_CLK_DEL=0x6
SET SST_VIN_CLKDEL=0x1
SET SST_VOUT_CLKDEL=0x0
SET SST_TMUMEM_SIZE=2

Voodoo Graphics

Diamond Monster 3D (4 MB)
Canopus Pure3D (6 MB)

The Voodoo Graphics chipset, based on the SST1 architecture, was 3dfx's first foray into the PC market. Its release in 1996 was primarily made possible by EDO DRAM declining in price, allowing good profits from an adequately-equipped ~$300 Voodoo Graphics solution. The PCI cards, which were manufactured by board partners, feature a frame buffer processor, a texture mapping unit (TMU), a RAMDAC and 4 MB EDO DRAM (some later versions were released with 6 or even 8 MB). Both the RAM and graphics processors operate at 50 MHz, with 2 MB RAM being used as framebuffer and 2 MB as texture memory. The RAM banks are on independent 64-bit buses. A Pentium 90 with 8 MB RAM was considered the minimal specifications for these cards.

The chipset was rich in features, boasting perspective correct texture mapping, bilinear texture filtering, level of detail MIP mapping, sub-pixel correction, polygonal-based Gouraud shading and texture modulation. It natively supported Direct3D 5 and was notable for supporting all of its required features with adequate speed, unlike previous 3D chipsets such as S3 Virge and Matrox Mystique. It also introduced Glide, 3dfx's own proprietary API that worked initially under DOS and later under Windows 9x and NT 4.0/2000. Glide was essentially a subset of OpenGL, with no support for features deemed unnecessary for PC gaming at the time, and for some functions not supported by the SST1 architecture. OpenGL games were initially only supported through the use of MiniGL, which was an OpenGL driver with only the necessary functions implemented for a specific game, most notably Quake engines. In May 1999, 3dfx released a full OpenGL ICD, providing support for all OpenGL applications.

Voodoo Graphics does not have 2D functions like VGA or GUI acceleration, meaning that it has to be used in conjunction with a standard 2D card by means of a VGA passthrough cable. Voodoo cards have relays onboard that switch between passthrough mode and output mode, controlled by the driver or DOS game/Glide. Unfortunately the passthrough impacts 2D quality because of the signal passing through additional circuitry that may not be of optimum quality. High resolution GUI modes are most noticeably affected.

Thanks to 3dfx's efforts with game developers and publishers and the excellent performance of their solution, the company's technology was quickly adopted as the de-facto standard in PC 3D gaming. Voodoo 1 enjoyed lengthy support from game developers. Despite only supporting resolutions as high as 640x480 (800x600 without the usage of Z-buffering) and 16-bit color depth, the card was usable with games into 2000.

It has been reported that Voodoo1 cards produce artifacts on the screen and do not play most DOS Glide games correctly when the FSB is higher than 100 MHz, even if the PCI bus runs at default clock speeds.

The prime competitors upon its release were the PowerVR PCX1 and Rendition Vérité V1000 chipsets, the latter of which already featured complete 2D processing onboard. Other competitors include the Matrox Millenium II/Matrox Mystique, ATI Rage II, S3 Virge and NVIDIA RIVA 128, all of which had 2D functions, but only the RIVA 128 can be said to match the Voodoo 1 in performance, while of course lacking Glide support.

Bottom line: The card's prime use case would be early statically-linked Glide games in DOS that depend on the first Voodoo chipset. Later games, starting with ca. 1997, are better played with the subsequent Voodoo cards.

Cards with higher than 4 MB are a trade-off: they have somewhat higher compatibility to later games, but lose some compatibility with first generation titles. 6 MB versions only have more texture memory and are therefore still limited to 640x480; 8 MB boards are able to show 800x600 resolutions due to extra framebuffer memory. Both offer somewhat smoother frame rates in games with more texture memory usage, such as Unreal and Quake 2.

Voodoo Rush

Jazz Adrenaline 3D (Alliance ProMotion)
Procomp G108 (Macronix)

Voodoo Rush was released in August 1997 for the PCI bus and addressed the main shortcoming of the Voodoo Graphics by being a complete 2D/3D solution. The chipset combined either an Alliance Semiconductor AT25/AT3D or Macronix 2D core on the same board as the exact same Voodoo chipset (on some cards the 3dfx part came as a daughterboard).

The combination of two independent chipsets led to a bottleneck for the 3dfx part and therefore about 10% lower performance. The cards had 4, 6 or 8 MB total memory, with only 8 MB versions offering 4 MB for texture space, similarly to Voodoo Graphics. Some cards had slightly higher clocks to close the performance gap. The cards also sometimes weren't fully compatible to existing games, leading to specific Voodoo Rush patches for some games, e.g. Tomb Raider.

The AT3D chipset has rudimentary 3D functions which can be activated, meaning that Rush cards that feature it have two 3D chipsets.

Bottom line: Rush cards were an infamous early attempt at a 2D/3D card by 3dfx and should be avoided when building a vintage gaming system. Primarily a curiosity. Despite that, the cards may be potentially useful in fringe cases like in a system with only a single available PCI slot that does not support a Banshee or Voodoo 3 because of a weak power supply or weak voltage regulators. They shouldn't be difficult to acquire since the demand is not as high as for other 3dfx cards.

Voodoo2

Provideo PV830 (reference Voodoo2 with 110MHz rated RAM)

Released in early 1998, the Voodoo2 chipset (SST96) expanded upon its predecessor by adding a second texture processor, featuring 8 or 12 MB EDO DRAM and supporting Direct3D 6. The clock was increased to 90 MHz, almost doubling the performance compared to Voodoo1. Performance in games utilizing the Voodoo2's second texture unit by means of single-pass multitexturing is further increased. The first notable games to do so were GLQuake, Quake II (both 1997) and Unreal (1998). Single-pass trilinear filtering was possible as well.

The cards also support SLI (Scan-Line Interleave), a technique which allows 2 cards to be run simultaneously and draw the lines of the image in turn, boosting performance and enabling a resolution of up to 1024x768. With one card installed, up to 800x600 is possible regardless of memory. For SLI operation a special SLI cable is required. It is also possible to use a modified floppy drive cable.

Following the same principle as the Voodoo1 there are three independent 64-bit RAM buses, one for the frame buffer processor and one for each TMU. While 4 MB RAM are available for the frame buffer, the textures have to be copied into the RAM of both TMUs. So even though there are technically 4 or 8 MB of texture memory on a card effectively there are only 2 or 4 MB available for textures. With SLI this amount does not grow, instead the textures will be copied two more times.

Voodoo2 still requires the passthrough cable and use of a separate 2D card. However, the chipset does have some 2D features and there is a driver for Linux that allows one to use Voodoo2 as a GUI accelerator.

A large number of cards from different manufacturers were released, with some deviating from the reference design and/or featuring extra cooling and even slight factory overclocks. The Voodoo2 remained the standard for PC 3D accelerator cards throughout 1998.

Competitors included the NVIDIA RIVA TNT, ATI Rage 128 and the Matrox G200.

Bottom line: The iconic Voodoo2 SLI setup holds nostalgic value for some people. Voodoo2 SLI is viable for almost all Glide games, and has the advantage over Voodoo 3 that it can play more Glide games originally only designed for Voodoo1, with necessary environment variable configuration. Weak points include occasional slight stutter due to the restrictive memory architecture and possible image quality problems due to the passthrough design.

Banshee

Released in 1998, the Banshee was 3dfx's first fully integrated 2D+3D card. It combines a new 2D core, a single-TMU Voodoo2 and the RAMDAC into one chip. It is clocked at 100 MHz, meaning that the midrange Banshee was actually slightly faster in then prevalent single-textured games than the high-end Voodoo2, yet clearly falls behind in games utilizing multi-texturing. Banshee cards were the first 3dfx cards to universally feature some kind of cooling solution and came equipped with 8MB/16MB SDRAM or SGRAM, with PCI and AGP versions existent.

Its 2D acceleration was very capable. It rivaled the fastest 2D cores from Matrox, Nvidia, and ATI, consisting of a 128-bit GUI engine and a 128-bit VESA VBE 3.0 VGA core. DirectDraw is accelerated, and the GUI portion supports all of the Windows Graphics Device Interface (GDI) in hardware. The GUI engine achieved near-theoretical maximum performance with a null driver test in Windows NT.

Bottom line: Banshee cards are far superior to Voodoo Rush, although they have a few bugs in various areas such as video playback and DOS VESA modes. As such they are not ideal gaming choices, although they can be still useful for some games.

Voodoo 3

Voodoo 3 3000 AGP
Voodoo 3 3500 TV

The Voodoo 3, codenamed "Avenger", was announced at COMDEX in November 1998 and released on April 3, 1999. Following the buyout of STB, 3dfx was now manufacturing their own cards. The Voodoo 3 was basically a higher-clocked Banshee core outfitted with a second texture unit and some bugfixes. The cards were released in four different flavors: the 125 MHz Voodoo 3 1000, the 143 MHz Voodoo 3 2000, the 166 MHz Voodoo 3 3000, and the 183 MHz Voodoo 3 3500 TV with integrated TV tuner. Except for the low-end V3 1000, which could also come with 8 MB, all cards featured 16 MB. The V3 line came both in PCI or AGP versions, with the 3500 being AGP-only. Some PCI versions featured SGRAM instead of the standard SDRAM. Thanks to the integrated 350 MHz RAMDAC (V3 3000/3500), the maximum resolution is 2048x1536 at about 75 Hz.

Now facing stronger competition from NVIDIA's RIVA TNT line, which already supported 32-bit color depth, 1024x1024 textures and AGP texturing, the Voodoo 3 line was somewhat panned by critics and called outdated in terms of features, but was still considered to be very competitive speed-wise, because 32-bit rendering introduced a big performance hit on competitor cards. At that time, 3dfx's marketing was centered around speed, but to demonstrate that the image quality was still better than their last year's high-end setup, they invented the term "22-bit", describing the fact that the RAMDAC of the card would perform either a 2x2 box or 4x1 line filter on the image, depending on the driver settings, masking some of the dithering.[2]

Its prime competitor was the NVIDIA RIVA TNT2, of which the TNT2 Ultra was widely considered to be the better choice overall, mainly due to superior Direct3D performance and more features. Still, arguably 2048x2048 textures and 32-bit rendering were not as significant in 1999 as the better game compatibility of the Voodoo 3. Other competitor cards included the ATI Rage 128 Pro and S3 Savage 4.

The GeForce 256, which came out later that year, beats it both by features and performance in D3D and OGL games, yet can still merely tie it in some Glide-centric games such as Unreal Tournament.

A noteworthy problem with Voodoo 3 or other cards from this generation was the higher power demands, which certain mainboards at the time could not cope with. The issue lied specifically in the voltage regulators for the AGP slot. Intel specified 6A at 3.3V for this slot, but due to cost saving measures some mainboard manufacturers utilized parts that were specified for less than that. Voodoo 3 cards were reported to demand up to 4.8A, which could cause severe thermal issues, crashes and even hardware failures with these boards. One known manufacturer with this problem was Gigabyte. Also Asus had a similar problem, although only two models were reportedly affected; only Nvidia RIVA TNT cards are mentioned, but it is safe to assume that the issue is present for all AGP video cards from that generation and further. Lists for both manufacturers can be found in the links section.

Bottom line: A Voodoo 3 2000 roughly matches Voodoo2 SLI 12MB in speed, while only taking one slot and offering better real-world performance due to more texture memory (for 1024x768 as the highest resolution available with Voodoo2 SLI there would be 16 - 4.5 = 11.5 MB available instead of 4 MB, nearly three times as much). The image quality is slightly better due to more advanced RAMDAC filtering and the end of the passthrough design.

Like with all Voodoo cards, V3 will run games requiring early Direct3D features (8-bit paletted textures or table fog). If this is taken into account together with its good DOS compatibility/speed, wide availability and low cost, the Voodoo 3 can be considered among the best all-around cards for vintage gaming purposes of that time frame and before.

Voodoo 4/5

PowerColor Evilking IV
Voodoo 5 5500

The VSA-100 (Voodoo Scalable Architecture), codenamed "Napalm", was the final product from 3dfx and was released in 2000. Only the single-chip Voodoo 4 4500 and the dual-chip Voodoo 5 5500 made it to market, both clocked at 166 MHz and released both in AGP and PCI versions. It is a further refinement of the architecture of all previous products, with some changes and additions such as two pixel pipelines with one texture unit each (instead of one pipeline with two texture units), larger texture caches and data paths expanded from 16-bit to 32-bit. The chip supports 32-bit color depth 3D rendering, 2048x2048 textures, FXT1 and DXTC texture compression.

Voodoo 4 4500 cards have 32 MB SDRAM. Voodoo 5 5500 cards have 64 MB SDRAM, although only 32 of it are actually usable due to the SLI method used, much like with Voodoo2 SLI. Voodoo 5 cards require supplementary power in the form of a single Molex connection.

The marketing was now more centered on image quality ("cinematic effects") than speed: Through the added "T-buffer" the Voodoo 4 4500 is capable of 2x RGSSAA (rotated-grid supersampling anti-aliasing), while the Voodoo 5 5500 supports up to 4x RGSSAA.[3][4] Compared to other methods such as MSAA (multisample anti-aliasing), this variant is considered higher quality, because it smooths the whole screen and eliminates texture flickering to a great extent, therefore generating a much "calmer" and more realistic image especially when moving in the game.

Unfortunately this comes with a large performance impact due to the high fillrate requirements from rendering at a higher resolution and sampling down to the actual resolution. Additionally, it has the weakness of blurring the text and UI in games; this undesired effect seems to be more detrimental with the 2x mode than the 4x mode. Generally speaking, the 4x mode is only practially useful up to 800x600 depending on the game.

Only very few applications are known to specifically take advantage of the added T-buffer hardware for effects other than anti-aliasing. These include a custom made Q3Test demo (ver. 1.08), in which 3dfx hacked motion blur support to promote their then new cards. Screenshots from this demo emerged around November 1999 and the actual program was released in December 2000, after 3dfx went bankrupt. The demo consists of three maps and does not feature bots; the motion blur effect is seen with weapons, powerups and moving players. It is only displayed correctly with 4xFSAA turned on for OpenGL and there is no known way to enable it in any other version of Quake 3.

Also, Serious Sam First/Second Encounter can make use of the T-buffer. It is used for depth of field effects and motion blur on certain objects. To activate it, the game must run in 16-bit color depth and the following commands must be written in the console:

ogl_iTBuffereffect=2
ogl_iTBufferSamples=4

Other valid values for the second command are 2 and 8, depending on the number of VSA-100 chips on the used card. The FSAA implementation in this game is reported to be faster than in other releases. Still it is unclear whether the other effects work as intended or not.

Finally, it is possible that 3DMark2000 supports it for motion blur effects.

The Voodoo 5 generally performs similarly to the GeForce 256, but was not competitive with high-end GeForce 2 cards, especially since Glide support in new games was rapidly declining by that time. Likewise, the delayed Voodoo 4 4500 was considered obsolete by reviewers upon its introduction due to the GeForce 2 MX performing better at a similar price point. Despite this, reviewers pointed out that the VSA-100's SSAA implementation was superior to the competition.

Unlike the GeForce cards which were Direct3D 7 capable, the VSA-100 line was still limited to Direct3D 6, as it lacked Hardware T&L. This feature, which was introduced by Nvidia a year before, was slowly taking off in 2000 and games from that time which use it to a great extent are not optimally suited for these cards. After 3dfx came to an end, fanmade drivers tried to solve this problem and make 2001 and later games playable on these cards.

Bottom line: The V4 4500 is not a large improvement over the V3, since it performs similarly and its new features are of limited benefit due to this fact. V5 5500 is considerably faster and provides optimal Glide gameplay up to around 1280x1024 without AA, with the added possibility of adding anti-aliasing for higher image quality in lower resolutions, which may be especially useful with older games that are locked to these modes. For authentic hardware, VSA-100 can provide the best visual quality in these titles.

To attain the best possible frame rates, the cards can be combined with fast CPUs such as Athlon XPs with the KT333 chipset. AGP 3.3v support is necessary. Note that with 4xFSAA in any resolution or 1024x768x32 with no AA the Voodoo5 hits its fillrate limit in many games, making faster CPUs effectively useless.[5]

Macintosh PCI versions of the V5 5500 have DVI outputs for clearer image quality. Using this with DOS games may cause problems due to locked refresh rates though.

Other 3dfx cards

The company also released other cards, such as the budget Velocity (name taken after the acquisition of STB) line, which only came with 1 TMU similarly to Banshee, although the second one can reportedly be enabled by a registry hack. Also, 3dfx had plans for a Voodoo 5 6000, which would have come with four VSA-100 chips installed and would have been powered by an external power supply, dubbed "Voodoo Volts". About 150-250 of these were made as prototypes. These cards beat Nvidia's GeForce 2 line and are even competitive with GeForce 3 when used with faster CPUs, and are also capable of 8x RGSSAA. The prototypes are considered "legendary" in the enthusiast community and are highly sought after, with prices easily as high as $1000 paid for them.

User benchmarks

Main article: 3dfx Benchmarks

Video captures

External links