En avant DirectX 10 !
Cela fait plusieurs mois maintenant que nous vous présentons de manière assez régulière DirectX 10, la nouvelle version de la bibliothèque de programmation 3D de Microsoft. Sans reprendre tout dans le détail, préférant pour cela vous renvoyer à notre test du GeForce 8800 GTX (que vous pourrez lire
ici), sachez que DirectX 10 est exclusivement disponible avec
Windows Vista, le dernier système d'exploitation en date de Microsoft. Techniquement, la nouvelle API a été entièrement réécrite afin de se débarrasser du support des anciennes versions de DirectX, et c'est précisément pour cette raison que cohabitent au sein de Windows Vista DirectX 9.0 et DirectX 10, le but poursuivi étant de réduire au maximum la consommation processeur de l'API tout en diminuant les temps de latence. Ces détails peuvent sembler insignifiants, pourtant ils permettent de gagner de nombreux et précieux cycles d'horloge que les développeurs pourront mettre à profit pour effectuer d'autres tâches.
DirectX 10 c'est aussi une précision de calcul qui reste fixée au format FP32 avec toutefois quelques changements au niveau du calcul des arrondis, la firme de Microsoft essayant de rapprocher les GPU de la norme IEEE 754. Avec DirectX 10, Microsoft nous propose un modèle de programmation totalement unifié. Concrètement, les développeurs peuvent maintenant programmer pixel et vertex shaders en utilisant le même langage et les mêmes instructions. Mais DirectX 10, c'est également le passage au Shader Model 4.0. Un passage synonyme, comme à chaque nouvelle mouture de l'API de Microsoft, de limites repoussées notamment au niveau du nombre maximum d'instructions, du nombre de constantes autorisées ou de la taille des textures gérées par DirectX (jusqu'à 8192x8192 contre 4096x4096 précédemment). D'autres nouveautés appréciables font leur apparition comme la possibilité de sauvegarder le résultat d'un calcul sans pour autant attendre que celui-ci ait traversé toutes les unités de la puce.
La nouvelle Ruby... en DirectX 10
Et comment ne pas mentionner, pour refermer ce rapide tour d'horizon de DirectX 10, l'arrivée des Geometry Shaders, qui se situent précisément entre les vertex et les pixels shaders dans le pipeline de l'API. Leur but ? Permettre aux développeurs de créer de la géométrie, une tâche autrefois dévolue au processeur du PC. Grâce aux shaders de géométrie, les développeurs pourront notamment améliorer la gestion du niveau de détail, la gestion de la fourrure pour les personnages, ou encore améliorer les ombres extrudées pour ne citer que quelques exemples.
Radeon HD 2900 XT : architecture unifiée, v2.0 !
Alors que Microsoft avait fait appel à NVIDIA pour le développement de la puce graphique de sa première console de
Jeux Vidéo, la Xbox, la firme de
Bill GATES s'est tournée vers ATI pour le développement de la puce graphique de sa console « next gen ». Ainsi est né Xenos, le processeur graphique de la
Xbox 360, processeur qui implémentait pour la toute première fois une architecture unifiée. Nous n'évoquons pas Xenos au hasard puisqu'avec le R600 ATI propose sa deuxième génération d'architecture graphique unifiée ou USA pour « Unified Shader Architecture ». Entre temps, ATI avait bien proposé les R520 et R580, qui amorçaient un début d'unification en découplant unités de textures et pipelines de traitement de pixels. Si l'idée d'une architecture unifiée semble aujourd'hui s'imposer d'elle-même, AMD s'est finalement fait griller la politesse par NVIDIA qui contre toute attente à adopté cette solution pour ses GeForce 8.
Architecture unifiée : le pourquoi du comment
Mais assez parlé de NVIDIA ! En proposant une architecture unifiée, AMD répond à la diversité des besoins des développeurs de jeux. Jusqu'à présent, dans le cadre d'une architecture traditionnelle, les ressources de la puce 3D étaient fixes avec un certain nombre d'unités dédiées aux pixels shaders et tant d'autres consacrées au traitement des vertex shaders. Avec l'unification, la notion de pixel pipeline disparaît purement et simplement, et la puce est constituée d'un ensemble de
Processeurs de flux capables de travailler sur tout type de données (ou presque) et pouvant être reconfigurés à la volée pour s'adapter à une charge massive de pixels shaders ou de vertex shaders. Conséquence de cette souplesse accrue, outre une plus grande puissance de calcul disponible pour les divers programmes 3D – quel que soit leur type : la capacité du R600 à travailler sur des données plus générales en transformant le GPU en unité de calcul générale (GPGPU).