DirectX 11.2: du neuf pour les GPU actuels

Publié le 01/07/2013 à 17:30 par
Imprimer

Avec la version Preview de Windows 8.1, Microsoft a levé le voile sur une évolution mineure de son API graphique. DirectX 11.2 et sa composante graphique Direct3D 11.2, font ainsi partie de cette "Preview" avec un support final qui sera probablement limité à Windows 8.1, Windows RT 8.1 et Windows Server 2012. Nous pouvons également supposer que Direct3D 11.2 servira de base pour la future Xbox One, même si dans le cas de cette dernière l'API pourra être allégée et optimisée pour un usage spécifique.

Direct3D 11.2 n'apporte pas de nouveau niveau de fonctionnalité, ce qui signifie que le support des évolutions introduites sera soit optionnel pour les GPU actuels soit lié uniquement à l'aspect logiciel et donc aux pilotes graphiques qui devront passer en WDDM 1.3. Cette version des pilotes définit notamment plus strictement la manière dont les systèmes multi-GPU, principalement hybrides, sont exposés au système.

La nouveauté principale introduite par Direct3D 11.2 au niveau des possibilités graphiques se nomme "Tiled resources" et a pour but d'aider les développeurs à optimiser l'utilisation de la mémoire vidéo physique, de la même manière que l'a fait ID Software dans Rage avec les MegaTextures. Si cette dernière implémentation était logicielle et limitée à un cas bien spécifique, les Tiled resources visent différentes utilisations et profitent des optimisations matérielles implémentées dans les GPU récents.


La Xbox One étant équipée d'un GPU AMD, Microsoft s'est de toute évidence basé sur l'implémentation de ces derniers, déjà disponible sous OpenGL à travers l'extension propriétaire AMD_sparse_texture, spécifique aux Radeon HD 7000 et supérieures. Deux niveaux de support des Tiled resources sont prévus et si Microsoft ne les détaille pas, nous pouvons supposer que le niveau principal, tier 1, est dérivé de cette extension. Un autre niveau est cependant prévu optionnellement, tier 2 et apporte quelques possibilités de plus. Les Radeon HD 7000 supportent au moins le mode tier 1, accessible depuis le niveau matériel 11_0, alors que les Radeon HD 7790, R7 260X et R9 290 supporteront le mode tier 2. Nvidia nous a confirmé que tous ses GPU Fermi et Kepler étaient compatibles mais sans préciser le tier supporté.


Par ailleurs, Microsoft, qui aime brouiller les pistes, a effectué toutes ses démonstrations sur une GeForce GTX 770. Celles-ci représentaient différents cas d'usage qui ont été décrits sur le blog de Nvidia  par Henry Moreton (l'un des architectes principaux des GPU GeForce, spécialiste du traitement géométrique).

Parmi les autres évolutions, notons le support du calcul en double précision par le moteur de rendu logiciel WARP, la possibilité de précompiler des morceaux de shaders et différentes petites améliorations pour le profilage / débogage.

Pour résumer le tout, une fois équipées de pilotes WDDM 1.3 :

- les GeForce 400/500/600 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_0 et supporteront les Tiled ressources tier 1 (et tier 2?)
- les Radeon HD 5000/6000 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_0 mais ne supporteront pas les Tiled ressources
- les Radeon HD 7000 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_1 et supporteront les Tiled ressources tier 1
- les Radeon HD 7790, R7 260X et R9 290 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_1 et supporteront les Tiled ressources tier 2

Notez que la composante DXGI, qui grossièrement gère les ressources et interface Direct3D avec les pilotes, évolue elle aussi en version 1.3, notamment pour autoriser un rendu avec une plus faible latence, c'est-à-dire par défaut avec une file d'attente d'une seule image. L'intérêt principal de cette possibilité est de réduire la consommation sur les périphériques mobiles. Dans le cas de jeux PC qui ont besoin de paralléliser les traitements CPU et GPU, cette file d'attente devra être au moins de 2 images.

La nouvelle version de DXGI permettra également de redimensionner dynamiquement le frame buffer, par exemple pour maintenir un niveau de performance minimum en faisant varier la résolution du rendu 3D alors que l'interface reste en pleine résolution. Une fonctionnalité similaire à ce que comptait faire LucidLogix avec DynamiX, qui semble depuis avoir été abandonné. Optionnellement, pour l'ensemble des GPU depuis la génération DirectX 9 s'ils exposent ce support, il sera possible de redimensionner le frame buffer dans la bonne résolution sans impact sur les performances en utilisant le moteur d'overlay matériel.

Enfin, DXGI supportera à l'avenir une fonction "Trim" pour marquer la mémoire vidéo physique utilisée par des buffers temporaires non-essentiels quand l'application est en pause. Si les développeurs jouent le jeu, cette mémoire pourra alors être libérée en vue d'une utilisation par d'autres applications.

Vos réactions

Top articles