Après quelques reports, de nombreuses rumeurs et une attente qui n'en finissait plus, NVIDIA vient enfin de dévoiler son dernier poulain autrefois connu sous le nom de NV30. Un poulain qui, avant même son annonce officielle, est déjà sous le feu de la critique. Il doit en effet redorer le blason du chef de file de la 3D sur PC, quelque peu malmené ces derniers temps par un ATI Radeon 9700 Pro au leadership bien arrogant.
NVIDIA n'a pas pour habitude de recoller à un concurrent et c'est pourtant ce que tout le monde attend de la compagnie de Santa Clara depuis que l'adversaire canadien a mis sur le marché ce fameux Radeon 9700 Pro. Non content de ravir sa couronne au roi NVIDIA, ATI s'est même permis de la conserver durant plusieurs mois. La présentation officielle du NV30, maintenant appelé GeForce FX, qui s'est tenue aujourd'hui-même devait remettre les choses à leur place...
Passage à la gravure 0.13 micron
Commençons cette rapide présentation par l'innovation qui a certainement fait couler le plus d'encre et qui semble être en grande partie responsable du retard de NVIDIA : le 0.13 micron. Alors qu'Intel et AMD sont déjà passés à cette finesse de gravure pour leurs Processeurs respectifs, le GeForce FX est le premier composant graphique gravé aussi précisément. C'est le fondeur taiwanais TSMC qui se charge de la production des puces NVIDIA et c'est donc lui qui a connu quelques difficultés pour parvenir à ce niveau de précision de manière fiable.Il faut dire que le GeForce FX est le composant le plus complexe jamais mis au point. Avec ses quelques 125 millions de transistors, il en compte, par exemple, presque trois fois plus qu'un Pentium 4 (55 millions pour les Northwood). On peut d'ailleurs dire que nous assistons ici à une refonte complète de l'architecture précédente des GPU NVIDIA, alors que le passage du GeForce3 au GeForce4 n'avait pas été l'occasion d'un tel bouleversement (augmentation du nombre de transistors assez faible : 57 millions à 63 millions). La compagnie de Santa Clara ne s'est donc pas contentée de mettre à niveau une ancienne conception !
Le GeForce FX sous toutes les coutures !
Avec une telle débauche de transistors la puissance brute du GeForce FX est impressionnante. Doté de 8 pipelines et de 2 TMUs, celui-ci devrait en effet pouvoir effectuer le rendu de 16 textures par passe et traiter 200 millions de triangles par seconde.
Les avantages du cuivre et de la DDR-II
NVIDIA et TSMC ont profité du passage au 0.13 micron pour apporter d'autres modifications à la conception du GeForce FX. Ces modifications ont principalement eu pour objectif d'améliorer la dissipation de la chaleur et la consommation électrique dans le but évident d'atteindre de la manière la plus stable possible de très hautes fréquences. Les deux compagnies ont de ce fait opté pour un design dit "flip chip", pour un remplacement de l'aluminium par le cuivre, bien meilleur conducteur, et pour l'intégration de transistors présentés comme 25% plus petits. Toutefois on peut émettre des doutes quant à l'effet bénéfique de la gravure 0,13µ sur la consommation électrique puisque les cartes reference design du NV30 de NVIDIA comportent toutes un connecteur Molex, l'AGP n'étant vraisemblablement pas en mesure de fournir une alimentation électrique suffisante.Sans qu'aucune fréquence de fonctionnement n'ait pour le moment été annoncée de manière officielle, ces changements doivent permettre à NVIDIA d'atteindre la barrière mythique des 500 Mhz en fonctionnement. Cela restera évidemment à vérifier à l'arrivée des premières cartes mais laisse déjà une certaine marge de manoeuvre face aux 325 MHz du Radeon 9700 Pro d'ATI (qui pourrait toutefois évoluer prochainement).
En plus d'être le premier à présenter un GPU en 0.13 micron, NVIDIA est également le premier à exploiter la toute récente mémoire DDR-II sur une carte distribuée à grande échelle. Il apparaît en effet très clairement que la DDR telle qu'on la connaît aujourd'hui approche de ses limites au moins en ce qui concerne les Cartes Graphiques. Depuis quelques temps déjà les constructeurs planchaient sur un successeur, ce sera très bientôt chose faite avec des temps d'accès largement inférieurs et une fréquence de fonctionnement en nette augmentation.
Le premier modèle de carte basée sur le GeForce FX : notez sa longueur et le connecteur d'alimentation.
Même si ici aussi aucun chiffre n'a été communiqué, on parle de temps d'accès inférieurs à 2.5 ns d'abord puis très bientôt inférieurs à 2.0 ns alors que la fréquence atteindra vraisemblablement 1GHz ! Le seul petit bémol est que la DDR2 sera exploitée en 128-bits dans un premier temps avant que NVIDIA ne la fasse migrer en 256-bit dans une prochaine révision. L'architecture mémoire LightSpeed Memory Arhitecture employée par le GeForce FX passe en version 3.0 et devrait offrir une bande passante mémoire maximale de 48Go par seconde !
Si ces chiffres donnent le vertige, ils posent tout de même la question du prix de l'ensemble. Le passage en 0.13 micron est en effet plus ou moins sous le contrôle de NVIDIA qui peut, en quelque sorte, fixer comme il le veut le prix de son GPU, mais en revanche le coût d'une telle mémoire échappe complètement à la compagnie de Santa Clara...
AGP 8X et NVIDIA Cg
Sans entrer plus que nécessaire dans le détail, sachez que le dernier bébé de NVIDIA exploite évidemment la version 3.0 du standard AGP. Cette version 3.0 est celle qui autorise un taux de transfert supérieur à 2 Go/s. et est aussi appelée AGP 8X. L'intérêt de cette solution n'est pas des plus évident avec les cartes et les jeux actuels mais on peut raisonnablement penser qu'avec le temps les développeurs lui trouveront un certain intérêt. Il est en outre certain que plus les cartes graphiques seront puissantes plus elles auront besoin d'interagir rapidement avec le northbridge de la carte mère et auront donc besoin d'un port AGP rapide.Autre annonce qui ne surprendra personne, le GeForce FX est évidemment optimisé pour le langage de programmation mis au point par NVIDIA : le Cg. Nous n'allons pas revoir précisément ce que ce langage peut apporter aux développeurs mais disons simplement qu'il simplifiera grandement la programmation des Shaders. Sachant que ces techniques seront de plus en plus utilisées à l'avenir, il va sans dire que tout ce qui pourra simplifier le travail des programmeurs sera salué comme il se doit.
La présentation faite par les dirigeants de NVIDIA avait évidemment pour but de démontrer l'extraordinaire potentiel du GeForce FX. Alors que nous avons déjà vu les éléments plus physiques, il convient maintenant de s'attacher aux évolutions technologiques imaginées par les ingénieurs de NVIDIA. Afin de bénéficier d'une plus large diffusion auprès des développeurs, ces nouveautés prennent bien sûr appui sur le maintenant très proche DirectX 9 de Microsoft mais apportent tout de même quelques surprises.
Précision de rendu sur 128 bits
L'un des chevaux de bataille de NVIDIA est le dépassement d'une très ancienne limitation souvent critiquée par les développeurs : la palette de couleurs sur 32 bits. ATI a déjà taillé une brèche avec la présentation d'une technologie capable de 96 bits, mais la société de Santa Clara va encore plus loin avec la présentation de deux modes de fonctionnement, les FP16 et FP32, capables de travailler respectivement sur 64 bits et 128 bits. Le second offre ainsi un rendu équivalent au niveau de précision utilisé dans l'industrie du film alors que le premier permettra d'obtenir de meilleures performances lorsque les 128 bits seront superflus. L'intérêt du passage au 64 bits et plus encore au 128 bits devrait être perceptible dans de nombreux cas. Pour les besoins de la présentation les exemples sont évidemment accentués mais c'est ce que nous devrions pouvoir retrouver prochainement dans les plus grosses productions PC par exemple. Le rendu de scènes exploitant le bump mapping ou certains éléments naturels comme l'eau bénéficieront tout particulièrement de cette "réserve" de précision.FP16 et FP32 permettront également de contourner certains problèmes récurrents comme l'altération de l'image au passage sur l'écran d'un PC. Celle-ci nécessitait auparavant une accentuation de la luminosité pas toujours très heureuse pour se rapprocher du dessin "original". De la même manière, les zones dites sur-exposées ou sous-exposées à la lumière seront beaucoup mieux traitées comme peuvent en témoigner les trois images-exemples ci-dessus. Enfin, le rendu des ombres profitera lui aussi de cette précision supplémentaire. L'apparition de zones tramées ne devrait par exemple plus être qu'un mauvais souvenir et la position des ombres devrait être plus précise évitant ainsi certains problèmes de "raccords".
Le GeForce FX devrait permettre une gestion plus précise des ombres.
DVC et Intellisample
Deux technologies qui n'ont pas grand chose à voir mais qui contribuent de la même manière, dans leur domaine respectif, à l'amélioration de la qualité d'image sont le Digital Vibrance Control, ou DVC, et l'Intellisample. Le DVC, qui avait déjà fait son apparition dans les Drivers Detonator 40.xx, permet d'affiner la qualité d'image en particulier lors de travaux d'images 2D ou pour tout ce qui touche à la vidéo sur l'écran de votre PC. Les ingénieurs de NVIDIA sont partis du principe, relativement proche de la vérité, que les gens n'utilisent pas tous le même type d'écran avec leur ordinateur : certains utilisent un "bête" écran cathodique alors que d'autres préfèrent un LCD flambant neuf. Il est également possible d'employer des Rétroprojecteurs pour les présentations ou même un simple poste de télévision. Ajoutons à cette première diversité, celle des applications exploitées par les possesseurs de PC et nous obtenons un ensemble pour le moins hétérogène de configurations d'affichage.
De ce fait, l'idée d'une technologie destinée à contrôler les différents niveaux de couleurs, l'intensité lumineuse et l'acuité générale de l'image est loin d'être inintéressante. Le DVC est né dans cette optique de compensation des écarts d'affichage selon la configuration adoptée. Cela permettra d'éviter de fastidieuses "mises à niveau" à chaque changement de configuration et offrira en outre une image plus contrastée et des caractères plus nets. L'Intellisample repose sur la même logique d'amélioration de la qualité d'image en la transposant cette fois principalement au domaine du jeu vidéo. La première technique employée par l'Intellisample concerne les couleurs avec un système de compression non-destructive capable d'un ratio de 4 pour 1. Implémentée au niveau matériel, cette compression est évidemment transparente pour les applications et comme elle n'est pas destructrice, aucune perte de qualité n'est à signaler. Elle permet, en revanche, d'économiser de la mémoire et surtout du temps sur le transit des informations.
Une autre fonction de l'Intellisample consiste en la sélection automatique des modes de filtrage des textures. Auparavant, il fallait de soi-même sélectionner le mode choisi comme par exemple le filtrage trilinéaire ou le filtrage anisotropique. Grâce à l'Intellisample, le GeForce FX sera capable de faire ce choix de lui-même afin de rendre la scène le mieux possible. Il sera toutefois possible de passer outre cette "détection" automatique pour définir les paramètres "à la main". Enfin, l'Intellisample introduit deux nouveaux modes d'antialasing capable d'aller au-delà du classique 4X. Le 6XS se destine exclusivement aux applications Direct3D alors que le 8X pourra également être utilisé avec des programmes OpenGL. Il n'y a pas vraiment de révolution dans le fonctionnement de ces deux modes, mais du fait de la puissance de calcul du GeForce FX, ils permettront aux utilisateurs très exigeants d'obtenir un antialiasing encore plus fin et encore plus efficace.
Avant de conclure cette petite présentation du GeForce FX et de pouvoir entrer dans le détail lors de notre test complet, il nous faut encore parler de ce qui constitue peut-être l'innovation principale effectuée par NVIDIA dans la mesure où elle sera sans doute la plus immédiatement tangible : le support de DirectX 9. Bien que la nouvelle API (Application Programming Interface) de Microsoft ne soit pas immédiatement disponible, l'ajout de ce support, une première chez NVIDIA, permet à la firme au caméléon d'offrir les mêmes prestations que son concurrent canadien à la différence près que le NV30 utilise les spécifications finales de DirectX 9.
Afin de prendre en charge les shaders, NVIDIA a mis au point un nouveau moteur baptisé CineFX qui rassemble donc Vertex Shaders et Pixel Shaders. Ceux-ci passent en version 2.0 avec DirectX 9, mais NVIDIA ne s'est cependant pas arrêté à ce seul support et, en partenariat avec Microsoft, a mis au point une version encore plus évoluée portant le nom, peut-être un peu trop proche de 2.0+.
Vertex Shaders 2.0+
Les Shaders sont depuis peu présentés comme une véritable révolution dans la conception d'effets graphiques évolués. Les premiers résultats tangibles sont d'ailleurs parfaitement visibles dans les dernières grosses productions du monde PC et sans multiplier inutilement les exemples, nous pouvons tout de même en citer l'un des plus éloquents. La représentation de l'eau dans le troisième volet des Elder Scrolls de Bethesda Softworks est assez ahurissante et témoigne parfaitement de ce qu'il devient possible de réaliser.DirectX 8 ne proposait que les balbutiements de cette technologie avec simplement la version 1.1 des vertex Shaders et il n'était alors question que de 128 instructions par vertex. Avec DirectX 9, Microsoft est passé à un nombre plus conséquent d'instructions possibles en portant le maximum à 1024 comme c'est le cas avec le Radeon 9700 d'ATI. NVIDIA, comme nous le disions tout à l'heure, a cependant préféré aller encore plus loin et ne propose pas moins de 65536 instructions maximum. Afin que ce nombre d'instructions supplémentaires ne soit pas trop pénalisant (plus d'instructions est forcément synonyme de temps de traitement plus longs), NVIDIA a également porté à 16 (contre 12 chez ATI) le nombre de vector registers qui servent en quelque sorte de zones de stockage.
Conjointement à l'augmentation du nombre maximum d'instructions, toutes les autres limitations des Vertex Shaders 1.1 ont été revues à la hausse afin que les développeurs disposent de plus de flexibilité. Ici, NVIDIA et ATI font jeu égal en respectant à la lettre les spécificités de Microsoft et des Vertex Shaders 2.0. En revanche NVIDIA reprend une nouvelle fois l'avantage (attention nous ne parlons que d'avantages théoriques, je le rappelle) avec la gestion des loops & branches et le contrôle du "flux".
Tableau comparatif des Vertex Shaders v1.1, v2.0 et v2.0+
Pour faire simple disons qu'avec DirectX 8 il n'était pratiquement pas possible d'agir sur le fonctionnement des Vertex Shaders. Une fois qu'un processus était enclenché, il fallait attendre qu'il soit achevé avant de pouvoir passer à un autre. DirectX 9 permet pour la première fois d'avoir la main sur le processus même une fois que celui-ci lancé. Si le Radeon 9700 reste conforme à DirectX 9 avec son seul contrôle static du "flux", le GeForce FX et ses Vertex Shaders 2.0+ vont plus loin en proposant également un contrôle dynamique, une fonction dite de call & return ainsi que des masques conditionnels d'écriture (conditionnal write masks pour les anglophones). Les nouvelles techniques de branching (division par branches du calcul des vertex) et de loop (possibilité de retour sur des calculs déjà effectués) permettent également de réemployer du code précédemment utilisé afin de ne pas recommencer inutilement un processus de zéro.
Ces possibilités plus riches et plus avancées permettent de perdre moins de temps dans le traitement des programmes. Le rendu de personnages complexes en est grandement simplifié et surtout accéléré aussi bien par rapport aux cartes compatibles DirectX 8 que par rapport au Radeon 9700 d'ATI... Du moins, sur le papier !
Pixel Shaders 2.0+
Si DirectX 9 permet une amélioration très nette des Vertex Shaders, il offre le même type de progrès pour les Pixel Shaders. Eux aussi passent de la version 1.1 sous DirectX 8 à la version 2.0 pour le Radeon 9700 et même 2.0+ pour le GeForce FX. Chez NVIDIA on aime d'ailleurs utiliser une phrase choc pour résumer les progrès réalisés sur les Pixel Shaders. En français, cela donne à peu près ça : "tout ce que le GeForce4 permettait avec ses programmes pour vertex, au niveau des pixels !"Aussi "coup de poing" soit-elle, cette phrase reflète tout à fait la réalité des choses. Les développeurs pourront en effet compter sur 256 fois plus d'instructions pour gérer les textures (1024 avec le GeForce FX contre "seulement" 32 sur le Radeon 9700 et 4 avec DirectX 8). Ils auront également la possibilité d'utiliser au maximum 128 fois plus d'instructions pour la gestion des couleurs (1024 avec le GeForce FX contre 64 sur le Radeon 9700 et 8 avec DirectX 8). Ils pourront enfin et aussi bien avec le Radeon 9700 qu'avec le GeForce FX, utiliser jusqu'à 16 textures par pixel !
DirectX 9 permet de traiter davantage d'information en une seule fois que DirectX 8.
Afin de ne pas trop ralentir le travail de son GPU avec un trop grand nombre d'instructions, NVIDIA a intégré des zones de stockages comme il l'a fait avec les Vertex Shaders et alors qu'ATI n'en intègre que 12, le GeForce FX en contient pas moins de 64 ! Mais c'est surtout avec l'intégration de fonctions spéciales que NVIDIA se détache de la compagnie canadienne. Ces fonctions, propres au seul GeForce FX, ont bien sûr pour but d'accélérer le traitement des données et il faudra vraisemblablement attendre encore un peu pour voir leur impact sur le rendu graphique.
Tableau comparatif des Pixel Shaders v1.1, v2.0 et v2.0+
Conclusion
Notre rapide présentation du futur GeForce FX ne permet évidemment pas de se faire une quelconque opinion sur le prochain GPU de NVIDIA, même si celui-ci est annoncé comme 30% plus rapide que le Radeon 9700 Pro. Il faudra bien sûr attendre la venue des premières cartes pour cela. C'était surtout pour nous l'occasion de voir la réponse du berger à la bergère, de NVIDIA à ATI, puisque pour la première fois depuis bien longtemps, la compagnie de Santa Clara doit revenir dans la course et non plus simplement affirmer sa position dominante.
Le GeForce FX innove sur bien des points en s'appuyant évidemment beaucoup sur le futur DirectX 9 de Microsoft. Il reprend d'ailleurs de nombreuses innovations du Radeon 9700 Pro d'ATI (première puce compatible DirectX 9 disponible) pour les améliorer et les enrichir (gestion des couleurs, programmation des Pixel et Vertex Shaders). NVIDIA ne s'est toutefois pas contenté de cela et a introduit lui aussi quelques nouveautés (gravure 0.13u, conception cuivre, mémoire DDR2) ainsi que des évolutions des techniques actuelles allant au-delà des Pixels et Vertex Shaders 2.0 (call & return , dynamic FlOw control, conditionnal write masks...). Ces nouveautés et améliorations permettront sans aucun doute à NVIDIA de revenir sur le devant de la scène avec, au moment de sa sortie, le processeur graphique le plus puissant. Mais et comme c'est le cas depuis déjà un certain temps, le matériel sera encore une fois en avance sur les logiciels et, alors que peu de titres exploitent vraiment les Shaders, il faudra évidemment attendre que les développeurs s'intéressent aux innovations apportées.
En ce qui concerne le prix, les cartes GeForce FX, comme on pouvait s'y attendre, seront proposés à des prix élevés mais pas démesurés pour de telles cartes puisqu'on parle de cartes vendues dans les alentours de 500$ à partir du mois de février 2002.
Quelques exemples de ce que pourrait donner DirectX 9.
Enfin, quelques réserves peuvent déjà être émises à l'encontre du GeForce FX. S'il semble très innovant du point de vue de la conception, il semble également devoir consommer beaucoup et chauffer de manière importante. Le premier système de refroidissement présenté (le FX Flow) est à ce propos fort éloquent et sa taille oblige à condamner le port PCI situé sous l'AGP. Il ne faut pas non plus oublier que certaines des technologies embarquées sur le GeForce FX vont au-delà de DirectX 9, la question évidente sera donc de savoir si NVIDIA sera suivi par les développeurs via l'adoption du langage CG, ou si ceux-ci se contenteront de l'API Microsoft pour une plus grande compatibilité avec le parc informatique existant...