DirectX 12 : les promesses, les premiers tests

0
00C8000007964395-photo-directx-12.jpg
Cette année, DirectX fête ses 20 ans d'existence et s'apprête à accueillir sa douzième version. Disponible en même temps que Windows 10, cette dernière devrait être l'un des fers de lance du nouveau système d'exploitation de Microsoft. A quelques semaines de ce qui sera peut-être une simple évolution ou, au contraire, une véritable révolution, l'heure est venue de nous intéresser au déjà fameux DirectX 12.

Il y a vingt ans, vous étiez jeunes, vous étiez beaux, vous sentiez bon le sable chaud. DirectX, lui, voyait à peine le jour. Sorti en septembre 1995, il avait pour but de pallier certaines faiblesses de Windows 95 qui, contrairement à MS-DOS, ne permettait pas un accès direct aux différents périphériques multimédia du PC, et à la carte graphique, notamment.

0258000007964509-photo-fable-legends.jpg
Fable Legends devrait être le premier jeu à utiliser DirectX 12.


Constitué de différentes bibliothèques dédiées à des besoins spécifiques (voir tableau ci-dessous), DirectX permet aux développeurs de programmer plus facilement et plus efficacement des jeux vidéo, incontestables fers de lance de la technologie. Le jeu vidéo étant un art éminemment visuel, c'est donc sur la partie graphique que se porte le plus l'attention des développeurs de DirectX, des programmeurs qui l'utilisent, et du public qui en profite.

ComposantsUsageRemarque
Direct2DGraphismes 2D 
Direct3DGraphismes 3DApparu avec DirectX 2
DirectComputeCalculs sur processeur graphique (GPGPU)Apparu avec DirectX 11
DirectDrawGraphismes 2DObsolète
(remplacé par Direct2D)
DirectInputPériphériques d'entréeObsolète
(remplacé par Xinput)
DirectPlayRéseauObsolète
(remplacé par GFWL et Xbox Live)
DirectMusicMusiquesObsolète
(remplacé par XAudio2 et XACT3)
DirectSetupModule d'installation 
DirectSoundSonsObsolète
(remplacé par XAudio2 et XACT3)
DirectSound3DSons 3D 
DirectWriteFontes de caractères 
DirectX DiagnosticsOutil de diagnostic 
DirectX MediaAnimations web et streaming 
DirectX Media ObjectsStreaming 
DXGIGestion des moniteurs et cartes graphiquesApparu avec DirectX 10
XAudioSons 
XACTSons 

DirectX ne s'occupe pas que de graphismes, même si ces derniers se taillent la part du lion.


0064000007964511-photo-logo-directx-1-directx-8.jpg
On peut d'ailleurs remarquer que la toute première version de DirectX, dépourvue du module Direct3D, n'avait absolument pas remporté l'adhésion des créateurs de jeux, puisqu'aucun titre « DirectX 1 » n'a jamais vu le jour. Heureusement, les deuxième et troisième versions sont rapidement venues en renfort. La version 4 a elle aussi connu des déboires. Développée en parallèle de la version 5, elle a finalement été abandonnée au profit de cette dernière. A l'inverse, la version 9 a été l'une des plus prolifiques.


0064000007964513-photo-logo-directx-9-directx-11.jpg
Alors que les versions précédentes sortaient à un rythme quasiment annuel, DirectX 9 est resté seul maître à bord pendant plus de quatre ans et, Windows Vista ne remportant pas le succès escompté par Microsoft, a continué à régner une fois DirectX 10 sorti. Un peu plus chanceux que son prédécesseur, DirectX 11 s'apprête à passer le flambeau à un DirectX 12 extrêmement prometteur. Nous allons voir dans les pages suivantes quels sont les atouts du cru 2015 de l'API .


VersionDate de sortieOS principalJeux concernés
DirectX 11995Windows 95N/A
DirectX 21996Windows 95FIFA 97, Pandemonium, StarCraft...
DirectX 31996Windows 95Heart of Darkness, MDK, Virtua Cop...
DirectX 4
Jamais sorti(Windows 95)N/A
DirectX 5
1997Windows 95Age of Empires, Baldur's Gate, Carmageddon, Final Fantasy VII, Grand Theft Auto, Motocross Madness, POD...
DirectX 61998Windows 98Command & Conquer: Tiberian Sun, Grim Fandango, Half-Life, Rayman 2, Resident Evil 2, System Shock 2, Thief: The Dark Project, Unreal...
DirectX 71999Windows 98American McGee's Alice, Baldur's Gate II, Diablo II, Giants: Citizen Kabuto, Gothic, Half-Life 2, MDK 2, Metal Gear Solid, Quake III, Les Sims, Thief II, Unreal Tournament...
DirectX 82000Windows XPArx Fatalis, Divine Divinity, Dungeon Siege, Empire Earth, Guild Wars, Max Payne, Red Faction, Runaway, Serious Sam...
DirectX 92002Windows XPAge of Empires III, Beyond Divinity, Beyond Good & Evil, Dark Messiah, Halo 2, Tomb Raider: The Angel of Darkness, League of Legends, Max Payne 2, Les Sims 2, SWAT 4, World of Goo...
DirectX 102006Windows VistaAlan Wake, Battelfield 3, BioShock Infinite, Company of Heroes 2, LEGO The Hobbit, Saints Row IV, Sleeping Dogs, Splinter Cell : Blacklist; Stormrise, Thief...
DirectX 112009Windows 7Call of Duty: Advanced Warfare, Crysis 3, Evolve, Far Cry 4, Ryse: Son of Rome, Watch_Dogs...
DirectX 122015Windows 10Ashes of the Singularity, Fable Legends...
Annoncé officiellement lors de la Game Developers Conference 2014 et prévu dans un premier temps pour fin 2015, DirectX 12 pourrait bien débarquer un peu plus tôt que prévu puisque Microsoft a récemment annoncé que Windows 10 sortirait dès cet été (sans plus de précisions). Serez-vous prêts ?

Quel OS ?

De ce point de vue les choses sont simples : DirectX 12 est une exclusivité Windows 10 et aucun portage vers Windows 7 ou 8 n'est prévu par Microsoft. Est-ce à dire que la firme de Redmond va commettre la même erreur qu'avec le couple Windows Vista / DirectX 10 ? Pas vraiment, car le passage à Windows 10 sera facilité par la surprenante offre annoncée en janvier dernier, à savoir que Windows 10 sera gratuit pour les utilisateurs de Windows 7 et 8.1.

01F4000007900223-photo-windows-10-logo-large.jpg


Si vous faites partie de ces chanceux, vous êtes assurés de pouvoir bénéficier de DirectX 12 sans débourser un centime. Pour cela, il vous suffira d'effectuer la transition durant la première année de disponibilité de Windows 10. L'adoption de DirectX 12 devrait donc être bien supérieure à celle de DirectX 10 lors de la sortie de Vista.

Quels types de machines ?

Cette question pourrait paraître incongrue tant l'image de DirectX est associée depuis toujours au PC, mais avec cette douzième version, Microsoft a décidé de jouer la carte du multi-plateformes.


07964719-photo-xbox-one.jpg
Grâce à une mise à jour, la Xbox One accueillera bientôt DirectX 12.


Ainsi, tout comme son hôte Windows 10, le nouveau DirectX sera disponible à la fois sur PC, Xbox One, tablettes et Windows Phone. Même les joueurs réfractaires aux ordinateurs personnels risquent, à un moment ou un autre, d'avoir affaire à DirectX 12. Les précédentes versions ne pouvaient pas en dire autant.

Quelles cartes graphiques ?

Revenons à nos PC, et plus particulièrement aux cartes graphiques qui permettront de faire tourner les jeux DirectX 12. En attendant la disponibilité de modèles spécifiquement conçus pour cette version, et qui offriront des performances encore meilleures, il est heureusement possible de profiter des avantages de DX12 sur la plupart des cartes DirectX 11.

0064000007169998-photo-nvidia-geforce-gtx-titan-black-1.jpg
En ce qui concerne NVIDIA, tous les GPU basés sur les architectures Fermi, Kepler et Maxwell sont compatibles DirectX 12. Autrement dit, si vous possédez une GeForce de série 400, 500, 600, 700, 800M, 900 ou Titan, vous êtes déjà parés pour le prochain DirectX.


0064000006744270-photo-amd-r9-290x-1.jpg

Du côté de chez AMD, c'est l'architecture GCN (Graphics Core Next) qui s'avère compatible. C'est-à-dire les Radeon appartenant aux séries HD 7000, HD 8000 et Rx 200.


0064000006748106-photo-iris-pro.jpg
Quant aux petits joueurs qui se contentent d'une solution intégrée Intel, ils peuvent d'ores et déjà compter sur tous les processeurs Core de quatrième génération (Core i5-4000) et supérieurs.




Selon Microsoft, 50% des joueurs sont d'ores et déjà équipés de matériel compatible DirectX 12.


Quels jeux ?

A l'heure actuelle, aucun jeu DirectX 12 n'est disponible, évidemment. Et le cycle de développement de la plupart des titres se comptant en années, il ne faut pas s'attendre à disposer d'une pléthore de productions DX12 d'ici la fin 2015. En revanche, il y a fort à parier que la hotte de Noël 2016 sera très fournie en jeux DX12. En attendant, on sait déjà que certains moteurs 3D se tiennent prêts à accueillir la nouvelle API de Microsoft. C'est notamment le cas de Unity ou encore de l'Unreal Engine 4 qui, si l'on se réfère au succès de l'Unreal Engine 3, devrait être utilisé dans un nombre très important de jeux à l'avenir.

0258000007964725-photo-fable-legends.jpg
Fable Legends est le premier jeu à avoir annoncé le support de DX12.


Le premier jeu DirectX 12 annoncé utilise d'ailleurs le moteur d'Epic Games. Il s'agit de Fable Legends, développé par Lionhead Studios et édité par... Microsoft Studios. On n'est jamais mieux servi que par soi-même !

0258000007964727-photo-ashes-of-the-singularity.jpg
Ashes of the Singularity et ses unités par milliers.


Le studio Oxide Games compte profiter de la puissance de DirectX 12 pour rendre son jeu de stratégie en temps réel Ashes of the Singularity encore plus impressionnant, via l'affichage d'unités de combat par milliers.

0258000007210819-photo-forza-motorsport-5-1999-toyota-3-toyota-motorsports-gt-one-ts020.jpg


Enfin, on retiendra que lors de la Game Developers Conference 2014, Microsoft a fait la démonstration d'une version DirectX 12 de Forza Motorsport 5, une équipe de quatre personnes ayant été dédiée à cette tâche durant quatre mois. Il est alors fort probable que le futur Forza Motorsport 6 prévu pour la fin d'année sur Xbox One soit directement compatible DirectX 12, voire qu'une version PC finisse par voir le jour.Si les premières versions de DirectX sortaient à un rythme soutenu, les dernières sont nettement plus espacées dans le temps et proposent des nouveautés plus importantes. Six ans après DirectX 11, quelles sont les promesses de Microsoft en ce qui concerne DirectX 12 ?

Accès bas niveau

Plus direct que jamais, DirectX 12 offre aux développeurs un accès bas niveau au matériel, à la manière de ce proposait Mantle jusqu'ici, et donc une meilleure utilisation des processeurs modernes (CPU comme GPU).

01E5000008000914-photo-directx-12-dxdiag.jpg


Ainsi, les programmeurs peuvent mieux répartir les tâches sur les différents cœurs, optimiser l'utilisation du CPU, et réduire la surcharge GPU. De plus, DirectX 12 bénéficie de nouvelles fonctionnalités et d'algorithmes optimisés, comme nous le verrons page suivante.

La conséquence de tout cela devrait être la disponibilité de jeux plus riches visuellement et moins gourmands, en ressources de calcul comme en énergie.

Performances

Lors des différentes conférences consacrées à DirectX 12, notamment celles des éditions 2014 et 2015 de la GDC, Microsoft a annoncé des gains de performances pouvant aller jusqu'à 50 % dans certains cas précis, et une hausse moyenne de 20 % entre un titre DirectX 11 classique et son éventuelle version optimisée DirectX 12. Des chiffres qui concernent également la Xbox One, qui a justement bien besoin d'un surplus de puissance. Cependant, sur PC comme sur console, il y a peu de chances que des patchs DX12 voient le jour en nombre pour les jeux déjà existants. Il va falloir attendre la disponibilité des premiers jeux développés directement pour DirectX 12 pour pouvoir apprécier la réelle puissance de la nouvelle API.

Consommation

Autre affirmation de Microsoft : la consommation électrique des jeux DirectX 12 serait réduite de moitié. Une nouvelle fois, il ne faut pas prendre cette déclaration au pied de la lettre, mais plutôt en retenir l'esprit.

01F4000007970551-photo-les-b-n-fices-de-directx-12-sur-mobiles.jpg


L'occupation réduite du CPU permettra de réaliser des économies d'énergie : celles-ci seront utiles dans le cadre des jeux sur tablettes et téléphones qui pourront alors, au choix, consommer moins, être plus fluides, ou proposer de meilleurs graphismes.

Multi-GPU

C'est une information toute récente, et qui tient encore plutôt de la rumeur : DirectX 12 pourrait être capable de gérer les configurations multi-GPU multi-marques. Autrement dit, une carte graphique AMD pourrait cohabiter avec une carte NVIDIA sans aucun problème, comme semble le confirmer cet article de tomshardware.com et cette capture d'écran prise par un utilisateur du site linustechtips :

01F4000007964941-photo-microsoft-support.jpg


L'authenticité de la capture (ou la compétence de l'interlocuteur) restant à prouver, il vaut tout de même mieux attendre une déclaration officielle de Microsoft avant de se réjouir totalement. Dans tous les cas, il semble quasiment acquis que DirectX 12 gérera les configurations multi-GPU à la manière de Mantle, c'est-à-dire en additionnant les quantités de mémoire vidéo plutôt qu'en les dupliquant. En effet, deux cartes graphiques munies de 4 Go de mémoire ne donnaient auparavant accès qu'à un frame buffer de 4 Go. Mais si l'on en croit le récent tweet de Robert Hallock d'AMD, « l'API bas niveau qui marche dans les pas de Mantle » donnera accès à 8 Go dans la même configuration...

Cross-platform

Le couple Windows 10/DirectX 12 se penche également sur la question du jeu cross-platforms. Les développeurs pourront dorénavant utiliser le SDK de Microsoft pour autoriser les parties en ligne communes entre joueurs PC et joueurs Xbox One, à l'image de ce que proposera Fable Legends, qui sert décidément de vitrine technologique à la firme de Redmond.



De plus, l'application Xbox App disponible sur PC, Xbox One, tablettes et téléphones permettra de gérer simultanément les écosystèmes PC et Xbox (amis, jeux, succès, chat vidéo, vidéos capturées...), via une unique interface, et même de lancer des parties cross-platform lorsque les jeux le permettent.

01F4000007964943-photo-xbox-app.jpg
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...En attendant de pouvoir réaliser nos propres tests avec les versions définitives de Windows 10 et DirectX 12, il reste possible de se faire une idée des gains de performances grâce aux différents éléments concrets communiqués par Microsoft et les quelques développeurs travaillant déjà avec DirectX 12.

Fable Legends

Avant de nous attaquer aux chiffres, commençons par apprécier l'aspect qualitatif de DirectX 12. En septembre dernier, les équipes de Microsoft ont demandé aux développeurs de Lionhead Studios de réaliser une démo technique DirectX 12 de Fable Legends, propulsée par l'Unreal Engine 4. Si la compression vidéo empêche de réellement apprécier la précision des calculs, et donc la finesse réelle des graphismes, on retiendra tout de même que le jeu possède une direction artistique très plaisante. Et qu'il devrait constituer une bonne locomotive pour DX12, même si ses charmes se déploieront également en version DirectX 11.



Mais trêve de poésie, place aux chiffres ! A titre d'exemple, Microsoft et Lionhead Studios ont fait tourner leur bébé sur une configuration plutôt musclée, composée d'un CPU Intel i7 octocore et d'une GeForce GTX 980. Sur une machine de ce type, le jeu se trouve limité par le GPU en version DirectX 11 et tourne en moyenne à 45,4 images par seconde. Clairement plus véloce, la version DirectX 12 plafonne quant à elle à 52,16 fps !

012C000007965331-photo-fable-legends-directx-11.jpg
012C000007965333-photo-fable-legends-directx-12.jpg
Pas de différence de qualité entre les versions DX11 et DX12, mais un gain de performances très net.


L'arrêt sur image ci-dessus, qu'on imagine avoir été choisi avec soin, creuse encore plus l'écart avec 44,47 fps d'un côté contre 52,94 de l'autre. Soit un gain de performances qui frôle les 20%, sans même avoir besoin de changer de carte graphique. Il n'y a plus qu'à espérer que toutes les versions DirectX 12 des futurs jeux soient réalisées avec le même soin et le même degré de compétences.

Asteroids (démo Intel)

La toute première démonstration publique de DirectX 12 a été réalisée au Siggraph en août dernier. Pour l'occasion, Intel a réalisé une scène spatiale affichant 50 000 astéroïdes uniques, pouvant fonctionner au choix en DirectX 11 ou Direct 12, et affichée sur une Surface Pro 3 équipée d'une puce intégrée Intel HD4400 graphics.

01F4000007965469-photo-asteroids-ips-bloqu-s.jpg
A framerate constant, la consommation électrique est deux fois moindre en DirectX 12 qu'en DirectX 11.


Le premier test visait à démontrer les gains en consommation électrique permis par DirectX 12. En bloquant le framerate de la démo, on s'aperçoit que la consommation électrique du CPU baisse de plus de 50 % en DirectX 12. Celle du GPU baisse également, mais de manière peu sensible.

012C000007965459-photo-asteroids-directx-11.jpg
012C000007965461-photo-asteroids-directx-12.jpg
Une fois débloqué, le framerate passe de 19 ips en DX11 à 33 en DX12.


Mais une consommation électrique modérée peut aussi être synonyme de performances plus élevées. Car le CPU restant relativement froid, il permet à la carte graphique de chauffer plus. Preuve en est qu'en débloquant le framerate, on s'aperçoit que le nombre d'images augmente de plus de 70 % (33 ips en DirectX 12 contre 19 en DirectX 11) alors que la consommation électrique globale reste la même, la consommation du CPU étant en baisse et celle du GPU en hausse.

3DMark

Depuis le 26 mars, l'incontournable 3DMark s'est doté d'un nouveau benchmark intitulé API Overhead feature test. Grâce à une scène urbaine riche en bâtiments, il permet de comparer les performances de DirectX 12, DirectX 11 et Mantle, en mesurant le nombre de draw calls qui peuvent être supportés par le PC avant que le framerate ne tombe en dessous des 30 images par seconde.

0258000007965371-photo-3d-mark-api-overhead-feature-test.jpg


Un principe et une scène qui rappellent sans équivoque la démo effectuée par Intel en mars dernier lors de la Game Developers Conference de San Francisco. Sur un portable équipé d'un processeur Broadwell et d'une solution graphique Intel HD intégrée, la démo bloquée à 30 images par seconde affichait 14 000 draw calls en DirectX 11 contre plus de 40 000 en DirectX 12, soit un gain de performances de 285 % !



Bien avant la disponibilité de ce benchmark, Microsoft utilisait déjà 3DMark pour vanter les mérites de DirectX 12. En mars 2014, le blog des développeurs de DirectX affirmait ainsi qu'une version DirectX 12 de 3DMark tournant sur un Intel Core i7-4770R accompagné d'un Iris Pro Graphics 5200 entraînait une baisse de 50 % de l'utilisation CPU par rapport à DirectX 11, et une meilleure distribution des calculs sur les différents threads.

01F4000007965699-photo-directx-12-charge-cpu.jpg
En haut : DirectX 11 ; en bas : DirectX 12.


012C000007965711-photo-3dmark-dx-11.jpg
012C000007965713-photo-3dmark-dx-12.jpg
6,662 ms pour afficher cette frame en DirectX 11 contre seulement 3,208 ms en DirectX 12.


Ashes of the Singularity

Développé par Oxide Games et Stardock, Ashes of the Singularity semble faire particulièrement bon usage de DirectX 12. Ainsi Brad Wardell, PDG de Stardock, se fendait le 16 février dernier du tweet suivant :




Les anglophiles auront d'emblée compris que lors d'un test sur des effets d'éclairage, avec un CPU octocore et un GPU pas encore disponible dans le commerce, le framerate est passé de 13 images par seconde en DirectX 11 à 120 en DirectX 12. Avouons qu'un gain de performances de 923 %, ce n'est pas banal ! Evidemment, il s'agit de chiffres qui concernent un effet précis et non un jeu dans son ensemble, et il est quasiment certain que la carte graphique évoquée soit un des modèles DirectX 12 à venir, et non un GPU DirectX 11. Mais même en gardant la tête froide, cela reste très prometteur.

01F4000007965605-photo-ashes-of-singularity.jpg


Par ailleurs, une build de Ashes of the Singularity a été présentée à la GDC 2015. Si elle servait avant tout à démontrer la puissance de Mantle, Microsoft en a tout de même profité pour préciser que le framerate augmente de 20 % lorsque le jeu passe du mode DirectX 11 à DirectX 12. Et que certaines séquences extrêmement chargées seraient tout simplement injouables en DirectX 11.



Star Swarm

Egalement développé par Oxyde Games et Stardock, la démo Star Swarm sert initialement à faire la promo de leur moteur maison, nommé Nitrous Engine. Mais le site AnandTech a eu la bonne idée de l'utiliser avec la seconde Technical Preview de Windows 10 pour évaluer les performances de DirectX 12.

01F4000007965733-photo-star-swarm.jpg


Des différents tests proposés par le site, le plus impressionnant est sans conteste celui du GPU Scaling, réalisé en qualité extrême et sur quatre cœurs. Sur une Radeon R9 290X, les gains sont de l'ordre de 400 % puisqu'on passe de 8,3 images par seconde en DirectX 11 à 42,9 en DirectX 12. Moins élevé mais toujours impressionnant, le gain sur une GeForce GTX 980 est de 150 % (26,7 ips contre 66,8). Et d'une manière plus générale, on peut également remarquer que DirectX 12 fait quasiment jeu égal avec Mantle, alors qu'il s'agit d'une solution plus générique.

01F4000007897691-photo-directx-12-avec-star-swarm-par-anandtech.jpg
Clairement très prometteur, DirectX 12 semble bien parti pour remporter l'adhésion des développeurs de jeux, des concepteurs de cartes graphiques, et des joueurs. Mais en attendant de pouvoir mettre la main sur la version finale de l'API ainsi sur le matériel et les applications qui en tireront pleinement profit, essayons d'établir quelques garde-fous afin de conserver la tête froide.

Tout d'abord, il convient de se rappeler les promesses faites par Microsoft avant la sortie du couple Windows Vista / DirectX 10. La révolution annoncée n'a pas eu lieu, et il aura fallu attendre DirectX 11 pour que des améliorations réelles par rapport à DirectX 9 soient observables par les joueurs.

012C000007965773-photo-flight-simulator-x-directx-9.jpg
012C000007965775-photo-flight-simulator-x-directx-10.jpg
Le passage de DX9 à DX10 n'aura pas été aussi spectaculaire que les promesses de Microsoft...


En ce qui concerne directement DirectX 12, si l'on ose s'exprimer ainsi, des incertitudes subsistent quant aux différents niveaux de fonctionnalités. Quelles seront les fonctionnalités réservées à DirectX 12.1 et donc absentes de DirectX 12.0 ? Quelles cartes graphiques parmi celles déjà sorties supporteront bien la version 12.1 et pas seulement la 12.0 ? Pour le moment ni AMD, ni NVIDIA, ni Microsoft ne communiquent sur le sujet...

D'une manière plus générale, il convient de garder tout simplement les pieds sur terre. Ainsi, même Brad Wardell qui annonçait dans un de ses tweets un gain de performances équivalent à 913 % (voire page précédente) se fendra un mois plus tard d'un nouveau tweet bien plus modéré :



Les gens doivent arrêter de penser que DX 12 est une solution miracle. Il permet aux développeurs de répartir les tâches sur les différents cœurs. Ce qui est énorme. Mais pas automatique.


Et sa remarque ne manque pas de bon sens. Même si les possibilités de DirectX 12 sont très intéressantes, il faut des développeurs talentueux et suffisamment formés pour pouvoir gérer correctement une API bas niveau. Ce ne sera sûrement pas le cas de tous les studios.

00C8000007937019-photo-logo-vulkan.jpg
Enfin, n'oublions pas que DirectX 12 n'est pas seul sur le marché des API bas niveau. Certes, Mantle raccroche quelque peu les gants. Mais Vulkan s'apprête à décoller, OpenGL continue d'exister, la PS4 possède l'API GNM, et Apple se repose sur Metal.

Mais que l'avenir de DirectX 12 soit radieux ou parsemé d'embûches, une chose est sûre : nous avons hâte de mettre la main sur la version définitive, les futures cartes graphiques DirectX 12 et les jeux compatibles !

0258000007965811-photo-fable-legends-directx-12.jpg


Télécharger DirectX pour Windows.
Haut de page