Some of the early PC 3D graphics cards such as the 3dfx Voodoo Graphics cards had a passthrough port to enable them to switch to a secondary card to display 2D graphics. I am curious to know why these cards were incapable of good 2D graphics in themselves, and what caused them to depend on another card for 2D rather than using their 3D accelerated chipset to also do 2D, as is usually done today.
5I don't remember the situation being as the question title says: I only remember three 3D-only accelerators: the first 3DFX Voodoo, the Voodoo 2, and a Power VR. The others of the time were capable of 2D as well (I had a Diamond-branded card which used the Permedia 2 chipset and got up to 10FPS in Quake!)– Aaron FNov 13, 2019 at 9:27
2Fair enough, I've changed it to SOME early 3D cards.– user3570736Nov 13, 2019 at 9:54
4@AaronF One wonders what the S3 Virge would have achieved in Quake :-)– Simon FNov 13, 2019 at 12:27
2@SimonF I'm sure I used to know the answer to that! :D and, oops, I should have said "GLQuake"! When playing competitively, we would all run it in 320x200 software mode to get high framerates on our CRT screens <nostalgic sigh>– Aaron FNov 13, 2019 at 12:39
2@AaronF :-) I have the Virge programming manual - the messing about you have to do to draw each triangle! Also, was surprised to learn Virge actually had "texture compression" though I don't think they called it that per se.... but that's another story.– Simon FNov 13, 2019 at 12:42
Early high-performance 3D accelerators such as the Voodoo Graphics have limited framebuffer resolutions (640×480 for most Voodoo Graphics configurations, 800×600 for the Voodoo2 in non-SLI) and colour depths (16-bit with dithering), which make them unsuitable for 2D — in the second half of the nineties, 1024×768 was a requirement at least in computer magazines. Their texture mapping units don’t support very large textures either (256×256), so they can’t map a 2D display onto 3D. The architecture also uses a number of optimisations which work for games but not for general desktop use: textures are compressed, and the output is low-pass filtered to minimise the impact of dithering (so it ends up somewhat blurry).
Skipping the 2D section also means that the chipsets don’t have to deal with all the complexities of PC graphics: text-mode support (character generator etc.), a VGA-compatible BIOS... The 3Dfx hardware first met with success in the arcade world where these aspects aren’t a consideration. To some extent 3Dfx’s success was a case of serendipity: they happened to have a good 3D chip, proven in the arcade, which could be used in an add-on PC product just at the time PCs became fast enough to whet gamers’ appetite for 3D games but leave them wanting (Quake...) and RAM got fast enough and cheap enough. They also had a decent API (Glide) and managed to land some significant games (Tomb Raider, Grand Theft Auto...). And perhaps most importantly, their 3D acceleration was significant enough, compared with software rendering and the hardware competition, that gamers were willing to buy a 3D-specific add-on.
Setting aside transistor budget to implement 2D support would have meant reducing the 3D performance; early accelerators were large chips for their time. There was one Voodoo competitor which supported 2D, the Rendition Vérité, but it was slower than the Voodoo Graphics and its VGA performance was abysmal (10 fps in DOOM). The other realistic Voodoo competitor, the PowerVR Series1, was also 3D-only. Other combined 2D/3D accelerators at the time (Matrox Mystique, S3 ViRGE, ATI 3D RAGE) had much lower 3D performance.
The situation with 3D accelerators is similar to that of sound cards a few years earlier: they were sold primarily for game-players, until they became unavoidable for everyone... As long as they targeted a subset of the market, it made sense for them to be add-on cards rather than replacements (or until the GeForce came out).
19I would also add that putting their existing arcade chipset onto an add-on card probably saved months and millions of dollars of engineering work over creating a new chipset that could do both 2D and 3D. Nov 12, 2019 at 21:26
8If memory serves, the original Voodoo specifically was limited to 16-bit dithered output, with a hardware low-pass filter to eliminate the dithering in post. So compared to 2d cards of the era not just a lower resolution and a lower colour depth, but deliberately less sharp.– TommyNov 12, 2019 at 22:08
7In the case of the ViRGE, 'much lower 3D performance' is probably being too kind. It's 3d was so slow that at the time it was mocked as being the worlds only 3d DEcelerator card, because of performing worse than doing the 3rd graphics calculations directly on the CPU. Nov 13, 2019 at 11:44
3Minor gripe re "The other realistic Voodoo competitor, the PowerVR Series1, was also 3D-only, and still slower than the Voodoo." It would be more accurate to say that they relative strengths and weaknesses. IIRC, the Voodoo could do two layers of textures operations on a pixel per clock (e.g. for trilinear) but I think only clocked at 40MHz. PCX1&2 could do hidden surface removal at 32 pixels/clock (effectively multiplying opaque fill rate) and was clocked at 50~60+Mhz, and could render at 24bpp and at higher resolution than voodoo– Simon FNov 13, 2019 at 12:57
3I recall once trying some hack where you could use a Voodoo card (a Voodoo 2 perhaps) as an additional 2D desktop display in Windows. I can't remember what other limitations it had, but the dithering or something like it was apparent there.– ilkkachuNov 13, 2019 at 13:55
In the case of the PowerVR PCX1 and PXC2 devices (as in e.g. the Matrox 'm3D' and Videologic 'Apocalyse3D/3Dx') there was never any intention to directly support the 2D operations (e.g. blitting/rectangle filling/ bit map caching) required for the Windows system.
Since these devices could write directly to the 2D card's framebuffer memory, via the burst write facility of the PCI bus, there seemed little point in duplicating the 2D card's functionality. Instead, the silicon was dedicated entirely to 3D rendering functions.(IIRC the 3Dfx system had 3 packages whereas the PowerVR solution was all crammed into a single device)
Another reason was the frame buffer itself; Why completely duplicate storage (and increase cost) when the user had already paid for the RAM on the 2D card? Those particular PowerVR devices could directly render to (up to) a 1024x1024 image, which was a fair chunk of RAM in those days♣.
(In theory, given that the stride register was 12bit, I guess the drivers could have been modified to allow the card to render a larger frame buffer by doing it in multiple sections, but I would be surprised if (m)any 2D cards of that era supported higher resolutions)
This eventually changed due to increasing integration of 2D and 3D, in silicon, increased render target and FPS requirements (and also possibly because, IIRC (but this was a long time ago so take with the usual measure of salt), later versions of Windows made it impossible to hot-patch the 2D card driver...)
♣ IIRC it was tricky enough to convince a couple of vendors that 1 or 2MB of texture memory was not really sufficient for a 3D game and that they really should go for 4MB.