Si les 3dfx vous intéressent, nous avons publié un dossier sur le sujet dans le Canard PC Hardware n°25. Mais commençons par un petit résumé de l'architecture afin de comprendre les modifications effectuées. Les cartes 3dfx de première génération, en 1996, amènent une vraie révolution dans le monde du jeu sur PC : elles offrent une puissance de calcul élevée pour un prix contenu. Comme l'expliquait John Carmack dans son journal, une simple 3dfx dépassait (et de loin) les capacités des rares cartes 3D professionnelles qui valaient 10 ou 20 fois plus cher dans les jeux (bien évidemment, ces dernières gardaient l'avantage dans les applications professionnelles en OpenGL). Une 3dfx typique (Diamond Monster 3D par exemple) intègre une unité de calcul (FBI, Frame Buffer Interface) et une unité TMU (Texture Mapping Unit). Chacune des deux puces dispose habituellement de 2 Mo de mémoire EDO et elles fonctionnent à 50 MHz, soit un fillrate de 50 mégapixels/s. Dans cette configuration, une carte peut afficher du 640 × 480 en 16 bits avec Z-buffer et appliquer une texture par passe. À l'époque, un autre choix se retrouvait parfois dans le monde grand public : des cartes dotées de 6 Mo de RAM, avec 2 Mo pour le FBI et 4 Mo pour le TMU. Ces modèles vendus par Canopus ou Miro promettaient une amélioration des performances, même si en pratique les rares titres nécessitant plus de 2 Mo de mémoire pour les textures offraient de mauvais résultats sur une simple 3Dfx. Dixit John Carmack (encore), une 3Dfx 6 Mo devenait intéressante dans une vraie partie de Quake III, quand les joueurs utilisaient des skins.
Environ 25 FPS sous Quake III.
Les réglages sous Quake III ; lightmap s'impose pour utiliser le multitexturing.
Le pilote OpenGL utilisé avec Quake III détecte bien une Voodoo Graphics en SLI avec deux TMU.
Final Reality, l'ancêtre de 3DMark.
3DMark 99 ne gérait pas encore le multitexturing en Direct 3D.
La configuration maximale avec la Voodoo Graphics : deux unités de calcul (FBI) avec chacune trois unités de texture (TMU) et de la mémoire, le tout en SLI.

Les cartes professionnelles.

Si les cartes grand public n'utilisent que deux puces, la technologie de 3dfx permettait des configurations plus complètes : chaque FBI pouvait recevoir 4 Mo de RAM et être relié à trois TMU, chacun avec 8 Mo de RAM. De plus, une option popularisée avec la Voodoo 2 existait déjà avec la première génération : le SLI. L'idée était de connecter deux "GPU" et de laisser chaque carte calculer une ligne sur deux pour en théorie doubler les performances. Avec 4 Mo de RAM, il devient possible de travailler en 800 × 600, et avec deux cartes en SLI, la mémoire étant partagée, la limite haute passe au 1 024 × 768. Ces configurations se retrouvent dans quelques cartes professionnelles et dans des bornes d'arcade. Une Quantum3D Obsidian 100SB-4440v, par exemple, dispose de deux FBI avec 2 Mo de RAM en SLI et de quatre TMU avec chacun 4 Mo de RAM (deux par FBI), plus une puce 2D. Ce choix restait rare pour une bonne raison : ajouter des unités de texture améliorait les performances dans les logiciels capables d’en appliquer plusieurs, mais ne servait à rien dans les autres cas, comme dans la majorité des jeux des années 1990.

Les deux cartes reliées en SLI, avec un câble issu d'une Voodoo 2.

Dans les jeux.

Les tests montrent rapidement pourquoi les constructeurs ne proposaient pas ce type de configuration à la fin des années 1990 : l'intérêt reste relativement limité. Dans la majorité des jeux de l'époque des premières 3dfx, la seconde unité de texture n'apporte strictement rien car les moteurs 3D n’en appliquent qu'une seule. Nos cartes modernes offrent donc les mêmes performances qu'une vénérable Diamond Monster 3D. Avec un titre comme Quake III (et uniquement en réglant la gestion des lumières sur lightmap pour activer le multitexturing), celle dotée de deux TMU montre un peu sa puissance : ~25 FPS contre ~19 FPS. Le gain existe aussi sous Quake II ou Unreal (en Glide) mais les jeux compatibles restent rares. En réalité, la première 3dfx capable de vraiment tirer parti du multitexturing reste d'ailleurs la Voodoo 2 (voir encadré). Le cas du SLI démontre encore plus l'intérêt marginal de la technologie dans les titres de l'époque : avec un Pentium II à 450 MHz, les performances n'évoluent tout simplement pas. Une seule carte offre les mêmes performances que deux en 640 × 480. L’unique réel avantage vient de la possibilité de jouer en 800 × 600 sans pertes de performances, malgré la présence de ~1,5x plus de pixels à gérer. Il s’agit d’un problème d'ailleurs apparu un peu plus tard avec la Voodoo 2 : le gain en SLI demande un processeur très rapide (Pentium III 800 MHz ou plus). Étant donné que notre Pentium II demeure déjà largement plus véloce que les CPU généralement associés à une 3dfx (plutôt de la génération des Pentium classiques), il semble assez logique que les différents constructeurs se soient abstenus de proposer du SLI. Le tour de force technique reste impressionnant, mais l'intérêt – même pour du rétrogaming – demeure proche de zéro : les jeux de l'époque ne tirent tout simplement pas parti des fonctions supplémentaires des cartes. Ces dernières pouvaient servir dans un contexte professionnel ou dans le monde de l'arcade, avec des titres adaptés à la puissance disponible, mais le gain dans une solution grand public ne pouvait pas compenser le prix élevé. Une carte avec deux TMU coûtait évidemment significativement plus qu'une version dotée d'une seule puce, sans même prendre en compte la gestion de la mémoire, et c'est une des raisons de la chute de 3dfx : quand les concurrents (Nvidia ou ATI) arrivèrent avec des GPU 2D/3D et de la RAM unifiée, les choix de 3dfx qui impliquaient deux cartes (une 2D et une 3D) et de la mémoire dupliquée devinrent vite obsolètes.

Face à une Voodoo 2

Entre la première et la seconde génération de 3dfx, la société n'améliore qu'assez peu le "GPU" lui-même (les fonctions demeurent presque identiques) mais propose une architecture bien plus complète. Une Voodoo Graphics classique, nous l'avons vu, dispose d'un FBI et d'un TMU à 50 MHz, avec 2 Mo de mémoire par puce (50 MP/s). Une Voodoo 2 classique, elle, dispose d'un FBI et de deux TMU à 90 MHz, chacun avec 4 Mo de mémoire (Voodoo 2 12 Mo) : de quoi pratiquement quadrupler les performances dans un cas idéal (180 MP/s), c'est-à-dire avec les rares titres qui utilisaient le multitexturing en 1998. En réalité, c'est différent : une Voodoo 2 offre ~1,8x les performances d'une Voodoo dans la majorité des jeux (90 MP/s), et une Banshee (une carte 2D/3D proche de la Voodoo 2 avec une seule unité de texturing) reste souvent plus rapide dans les jeux grâce à sa fréquence de 100 MHz (100 MP/s).