DirectX 12 : les promesses, les premiers tests

13 avril 2015 à 16h43
0
Si les développeurs de DirectX et les marketeux de Microsoft se risquent à annoncer des gains de performance substantiels, ce n'est pas sans raison. La version 12 de leur API est une version majeure, qui tranche avec les précédentes du fait de l'accès bas niveau laissé aux programmeurs et de différentes fonctionnalités inédites ou améliorées.

WDDM 2.0

Le Windows Display Driver Model est la nouvelle architecture de pilotes graphiques apparue avec Windows Vista, et rendue nécessaire par l'adoption d'un bureau « 3D » (c'est-à-dire géré par le GPU). Elle autorise notamment les différentes applications à partager les mêmes surfaces texturées, typiquement celles des différentes fenêtres ouvertes.

07964959-photo-windows-flip-3d.jpg


Direct3D 12, qui va de pair avec WDDM 2.0, permet aux développeurs de contrôler totalement le rendu des surfaces et l'état de la mémoire, grâce à un accès bas niveau. Ainsi, ils peuvent répartir avec précision les différentes tâches en parallèle, et donc réduire la charge CPU.

Rasterizer Ordered Views

01F4000007964975-photo-rovs-directx-12.jpg


La technique des ROVs (Rasterizer Ordered Views) permet aux développeurs de contrôler exactement l'ordre dans lequel les opérations des pixel shaders sont appliquées. Elle est utile pour obtenir des effets de transparence, d'antialiasing ou de mélange de pixels précis. Grâce à DirectX 12, les ROVs s'exécutent plus rapidement et consomment moins d'énergie car elles ne font plus du tout intervenir le CPU.

Typed UAV Load

01F4000007965003-photo-typed-uav-load.jpg


Les UAV's (Unordered Access Views) permettent à plusieurs threads GPU d'utiliser un même buffer sans entraîner de conflits dans la mémoire. La fonctionnalité Typed UAV Load de DirectX 12 lève les différentes restrictions qui s'appliquaient jusqu'alors avec les précédentes versions de l'API.

Volume Tiled Resources

01F4000007965011-photo-tiled-resources.jpg


Apparues avec DirectX 11.2, les Tiled Resources correspondent à un procédé de textures virtuelles, économes en mémoire grâce à la possibilité d'utiliser la même texture à différents endroits et le fait de ne pas avoir à texturer toutes les surfaces.

01F4000007965021-photo-volume-tiled-resources.jpg


Les VTR (Volume Tiled Resources) de DirectX 12 étendent ce principe à la troisième dimension, et donc aux voxels (pixels volumétriques). On économise ainsi de l'espace mémoire et de la bande passante.

Conservative Rasterization

012C000007965029-photo-conservative-rasterization.jpg
012C000007965091-photo-rasterization-vs-conservative-rasterization.jpg
La Conservative Rasterization (b) détecte des collisions que la méthode standard (a) manque.


La Conservative Rasterization permet de tester très précisément si un polygone recouvre partiellement un pixel donné, en testant les quatre coins du pixel. Elle permet ainsi de régler certaines défaillances de la méthode standard qui, dans certains cas précis, ne détecte pas correctement les chevauchements puisqu'elle vérifie uniquement le centre du pixel. La Conservative Rasterization permet donc de régler certains problèmes de détection de collision ou d'affichage de textures.

DirectX 11.3 VS DirectX 12

Parmi les quatre techniques précédentes, certaines (voire toutes) pourraient également être présentes dans le futur DirectX 11.3, Microsoft ayant décidé de ne pas totalement abandonner la version 11 de son API. Mais Direct3D 12 utilise par ailleurs des méthodes qui lui sont exclusives, et toutes destinées à accélérer les différents calculs.

01F4000007965231-photo-direct3d-12.jpg


Les Pipeline State Objects (PSO), les listes de commandes, les bundles, les descriptor heaps et autres descriptor tables sont autant de nouvelles façons de traiter les données, de manière à réduire la charge du GPU et les temps d'exécution de différentes commandes. Extrêmement pointus, ces sujets feront la joie des programmeurs les plus acharnés, mais nous nous contenterons pour notre part d'en apprécier les bénéfices, dont certains semblent déjà se dessiner depuis quelques mois...
Modifié le 01/06/2018 à 15h36
0 réponses
0 utilisateurs
Suivre la discussion

Les actualités récentes les plus commentées

Voiture neuves : l’entourloupe de la fausse baisse des émissions de CO2
Windows 7 : il existe un hack pour obtenir les mise à jour de sécurité malgré la fin du support
Au cas où vous auriez 11 000€ en trop, le Mac Pro et son écran XDR seront disponibles le 10 décembre
Sony : la PS5 sera remplacée plus rapidement que la PS4, une version Pro prévue pour 2023
Depuis la démocratisation des smartphones les gens ont plus d'accident dus à leur téléphone #SansDec
En Chine, les premiers hybrides singes-cochons, conçus pour des transplantations, sont nés
Les prix français du Mac Pro sont annoncés, et ils grimpent jusque 62 500€
Contrôle technique : le CNPA alerte sur d'importants retards en 2019
L'Union européenne débloque 3 milliards pour la recherche sur les batteries électriques
ProCreate 5 est enfin disponible sur iPad ! On fait le tour des nouveautés principales

Notre charte communautaire

1. Participez aux discussions

Nous encourageons chacun à exprimer ses idées sur les sujets qui l'intéressent, et à faire profiter l'ensemble de la communauté de son expertise sur un sujet particulier.

2. Partagez vos connaissances

Que vous soyez expert ou amateur passionné, partagez vos connaissances aux autres membres de la communauté pour enrichir le niveau d'expertise des articles.

3. Échangez vos idées

Donnez votre opinion en étayant votre propos et soyez ouverts aux idées des autres membres de la communauté, même si elles sont radicalement différentes des vôtres.

4. Faites preuve de tolérance

Qu'il s'agisse de rédacteurs professionnels ou amateurs, de lecteurs experts ou passionnés, vous devez faire preuve de tolérance et vous placer dans une démarche d'entraide.

5. Restez courtois

Particulièrement lorsque vous exprimez votre désaccord, critiquez les idées, pas les personnes. Évitez à tout prix les insultes, les attaques et autres jugements sur la forme des messages.

6. Publiez des messages utiles

Chaque participation a vocation à enrichir la discussion, aussi les partages d'humeurs personnelles ne doivent pas venir gêner le fil des échanges.

7. Soignez votre écriture

Utilisez la ponctuation, prohibez le langage SMS et les majuscules, relisez-vous afin de corriger un peu les fautes de frappe et de français : trop de fautes n’engagent ni à lire le message, ni à répondre à une question.

8. Respectez le cadre légal

Ne publiez pas de contenus irrespectueux, racistes, homophobes, obscènes ou faisant l'apologie de courants radicaux, qu'ils soient politiques ou religieux. N'utilisez pas plusieurs comptes utilisateurs.

9. Ne faites pas de promotion

Ne profitez pas d'une discussion pour faire la publicité d'un produit, d'un service ou même de votre site web personnel.

10. Ne plagiez pas

Exprimez uniquement vos opinions ou partagez des idées en citant vos sources.

scroll top