20 cartes graphiques, 10 jeux, 1500 résultats...

L'arrivée de Windows Vista et les fêtes de fin d'année font que vous allez être nombreux dans les semaines à venir à vouloir acheter une nouvelle configuration. Après notre guide sur la mémoire, nous vous proposons un comparatif de 20 cartes graphiques testées dans 10 jeux sous 3 résolutions avec et sans les détails graphiques, le tout totalisant près 1500 résultats...

DirectX 10 : adieu la compatibilité...


Microsoft dispose avec DirectX d’un moyen idéal pour façonner à son idée le futur des cartes 3D. L’occasion est donc rêvée d’utiliser DirectX 10 pour imposer les changements nécessaires à un fonctionnement de la 3D sous Vista. Pour la première fois, ils décident de casser tous les concepts existants et à ce titre, DirectX 10 n’est pas compatible avec le matériel DirectX 9. C’est une première car toutes les versions de l’API tentaient de maintenir jusqu’ici la compatibilité. Pour pouvoir jouer aux jeux les plus anciens, que ce soit avec un matériel DirectX 9 ou 10, Vista intègre un second DirectX, le 9.0L (L pour « legacy », héritage en anglais). De son côté, DirectX 10 repose en grande partie sur son interaction avec le WDDM que nous décrivions sur la page précédente. C’est entre autres pour cette raison qu’il ne sera disponible que sous Windows Vista.

http://i.pcworld.fr/169911-directx10.jpg


Dans les grandes lignes, DirectX 10 impose au matériel un certain nombre de contraintes, la première étant d’éviter la course aux fonctionnalités additionnelles. Jusqu’ici, DirectX intégrait un concept un peu complexe permettant à chaque carte graphique de décrire précisément ses possibilités. On parle des « capability bits » ou « caps » en abrégé. Une carte 3D décrira par exemple la version des Pixel Shaders qu’elle supporte ou le nombre maximal d’instructions qu’elle est capable d’exécuter. Pour la théorie car le nombre de cartes qui « mentent » sur leurs caps est totalement effarant.

Un des objectifs de DirectX 10 : simplifier le développement des jeux


Les développeurs de jeu pouvaient (et devaient) ainsi vérifier ces caps pour adapter leur moteur graphique en fonction de la carte 3D présente dans la machinen et ajouter parfois certaines fonctionnalités « exclusives » pour les cartes d’un constructeur. Un procédé long, complexe et pas forcément démocratique que Microsoft aura voulu éliminer. Désormais, avec DirectX 10 tous les GPU sont identiques pour le programmeur, il n’aura pas à se soucier de ses capacités. Le but avoué est de rendre le développement de jeux sur PC aussi simple que sur une console. Et afin de limiter un peu plus les optimisations, la capacité d’exécuter des shaders programmés en assembleur disparait ! Avec DX10, il faut impérativement passer par le compilateur HLSL.

DirectX10 DirectX10
Flight Simulator X sera l'un des premiers jeux à disposer d'une révision de son moteur compatible avec DirectX 10 (à gauche screenshot DirectX9 et à droite DirectX 10, source : Microsoft)


Pour tenter de simplifier encore plus le travail des développeurs, Microsoft unifie les langages de programmation utilisés pour les Vertex et les Pixels Shaders. Les différences sont gommées et l’on voit même apparaitre un nouveau type de programme baptisé Geometry Shaders. Ces derniers s’intercalent entre la partie Vertex et la partie Pixels : ils permettent de manipuler les triangles et de créer de nouvelles vertices (chose impossible avec les Vertex Shaders). On parlera ainsi de Shader Model 4.0. L’unification est faite à un niveau logiciel et Microsoft n’impose pas grand-chose à ce niveau du côté matériel. Même s’ils suggèrent fortement d’aller au bout du concept en unifiant aussi les unités de calcul. En clair, avoir un grand nombre d’unités polyvalentes capables d’exécuter aussi bien les shaders de Pixels, de Vertex ou de Geometry.

Réduction de la charge processeur


ImageLa diminution de la charge appliquée au processeur est également au cœur du couple DX10/WDDM. De nos jours dans un jeu, le processeur central est extrêmement mobilisé par le driver de la carte graphique pour réaliser un certain nombre de tâches. C’est le cas par exemple de l’envoi des paquets de vertices vers la carte 3D (on parle de batchs). La chose est tellement coûteuse qu’il est conseillé aux programmeurs de regrouper au maximum leurs vertices dans de gros paquets pour ne pas être limités trop vite par les performances du processeur. Sous DirectX 9, ATI et Nvidia proposaient leurs propres optimisations afin de diminuer l’impact des batchs mais tout ceci part à la trappe : WDDM impose de nouvelles règles et il leur faut reprendre en profondeur cette partie de leurs pilotes. A terme, les développeurs pourront utiliser s’ils le souhaitent de petits batchs (c’est plus flexible) comme ils le font sur une console. A ce jour, les pilotes réclament encore un peu de travail sur ce point.
D’autres concepts se retrouvent dans DirectX 10 afin de coller au mieux avec les nouvelles orientations. Si l’on unifie les shaders, autant se débarrasser une bonne fois pour toutes des fonctions dites fixes (héritées de DirectX 7). Elles étaient émulées par les pilotes dans les dernières générations de matériel et elles disparaissent définitivement.
Dans le but d’exécuter plus facilement de multiples applications, la version 1.0 de WDDM décrit des concepts comme un gestionnaire de mémoire ou un ordonnanceur pour partager les ressources du GPU. DirectX impose de ce côté un certain nombre de choses comme une généralisation du concept de threads pour pouvoir passer facilement d’un programme à l’autre (cela vous évoque-t-il une architecture ?), la possibilité d’écrire en mémoire à tout endroit du pipeline graphique (quelque chose d’inauguré sur les X1800 mais non utilisé jusqu’ici) et des choses plus complexes comme une gestion « paginée » de la mémoire. C’est un peu comme le « swap » sous Windows : lorsque vous n’avez plus de mémoire centrale disponible, ce dernier va utiliser votre disque dur comme de la mémoire, avec des temps d’accès beaucoup plus lents. Pour la carte graphique, la pagination permet de déplacer des données de la mémoire intégré à la carte vers celle du PC en passant par le bus PCI Express, et ce de manière totalement transparente (donc invisible) pour le programmeur. Un tas de concepts qui orientent fortement les deux constructeurs de matériel actuels dans leurs choix.


COMMENTAIRES

Aucun commentaire sur cet article.

Les commentaires sur ce document sont clos.

Publié le Modifié Par
Catégorie : Hardware, Carte graphique
Aucun commentaire
POUR NOUS SUIVRE...
newsletter

ACTUALITÉS
Macworld
PCWorld