DirectX 11 supportera les cartes DX9

Publié le 24/10/2008 à 15:25 par
Imprimer

Cet été, Microsoft a dévoilé plus de détails sur sa prochaine API graphique : DirectX 11 ou plutôt Direct3D 11. Pour rappel, les principales nouveautés apportées par cet API sont le support de la tesselation, le support des Compute Shaders et une refonte de l'API pour pouvoir mieux multi-threader la partie rendu graphique d'un moteur.


La tesselation permet d'affiner la géométrie pour éviter l'aspect anguleux des objets ou des paysages en subdivisant la géométrie. Ce maillage plus complexe peut également être utilisé pour ajouter des détails via le Displacement Mapping. Le GPU de la Xbox 360 ainsi que toutes les Radeon HD intègrent une unité fixe de tesselation. Celle-ci ne sera cependant pas compatible avec DirectX 11 qui requiert plus de programmabilité.

Cette programmabilité ne prend cependant pas place au niveau de l'unité de tesselation en elle-même qui sera une unité fixé, mais via 2 nouveaux types de shaders, les Hull Shaders et les Domain Shaders, qui prennent place avant et après la tesselation. Dans ce sens, DirectX 11 représente donc un superset de la tesselation des Radeon HD. Autrement dit l'exploiter aujourd'hui avec les Radeon HD permettra aux développeurs de réutiliser et d'étendre leur travail avec DirectX 11, de quoi peut être enfin les pousser à s'y intéresser.

Les Compute Shaders représentent, eux, un type de shader dédiés au calcul plus ou moins généraliste. Ils peuvent s'exécuter en dehors du pipeline graphique mais peuvent s'interfacer très facilement avec celui-ci. Leur structure est très proche du code CUDA dont Microsoft s'est probablement inspiré. Ils devraient permettre de faciliter l'utilisation des GPUs pour la physique et le traitement d'image grâce puisqu'il s'agit d'un language standardisé ouvert à tous.

Au sujet de ces nouvelles fonctionnalités de DirectX 11, les esprits critiques noteront qu'elles ajoutent 3 nouveaux types de shaders spécifiques ainsi qu'une nouvelle unité fixé, ce qui va quelque peu à contre courant de l'évolution du rendu 3D…

Optimiser l'API pour une meilleure exploitation des CPUs multicores est probablement l'aspect le plus prometteur de ce DirectX 11. Un point qui a fait passer inaperçu un petit détail lié : DirectX 11 réintroduira le support de DirectX 9.


Avec DirectX 10, Microsoft avait fait table rase du passé, ce qui implique qu'un moteur DirectX 10 ne pouvait supporter que les cartes graphiques DirectX 10. Avec DirectX 11, les cartes graphiques DX10.1, DX10 et DX9 pourront être utilisées, en étant bien entendu limitées aux fonctions qu'elles supportent et via un tout nouveau driver.

DirectX 9 étant très différent de DirectX 10 au niveau de l'API, il reste à voir si ce support sera performant. Il est probable qu'il soit limité au niveau DX9, Shader 3.0 (sans aucune option) et que le tout soit moins performant que de passer par l'API DX9 native. Reste que cela simplifiera fortement le travail des développeurs et qu'il est possible que la meilleure utilisation des CPUs multicores compense l'efficacité moindre. Bien entendu il faudra que Nvidia, AMD et Intel acceptent de développer des pilotes DirectX 11 pour leurs cartes DirectX 9 pour que tout ceci se concrétise.

Vos réactions

Top articles