{"id":84783,"date":"2015-05-20T08:00:01","date_gmt":"2015-05-20T06:00:01","guid":{"rendered":"https:\/\/cms.galaxiemedia.fr\/tomshardware\/2015\/05\/20\/directx-12-le-point\/"},"modified":"2023-06-29T10:49:48","modified_gmt":"2023-06-29T08:49:48","slug":"directx-12-le-point","status":"publish","type":"post","link":"https:\/\/www.tomshardware.fr\/directx-12-le-point\/","title":{"rendered":"DirectX 12 : le point"},"content":{"rendered":"\n
DirectX 12 inaugure la nouvelle g\u00e9n\u00e9ration des APIs graphiques \u00ab\u00a0Direct3D\u00a0\u00bb qui animent les jeux sous Windows<\/a>. En offrant un acc\u00e8s optimis\u00e9 aux GPU, DirectX 12 promet des sc\u00e8nes 3D plus d\u00e9taill\u00e9es, des animations plus fluides et une consommation \u00e9nerg\u00e9tique moindre.<\/em><\/strong><\/p>\n\n\n\n DirectX est un ensemble d\u2019API multim\u00e9dias qui tire profit des performances des GPU et des processeurs sonores. DirectX, via son API Direct3D, est au c\u0153ur des moteurs de rendu des jeux sous Windows mais pas uniquement. Il est aussi largement utilis\u00e9 par le Bureau, le navigateur Web et d\u2019une mani\u00e8re g\u00e9n\u00e9rale par la plupart des applications modernes qu\u2019elles affichent des \u00e9l\u00e9ments en 2D ou en 3D.<\/p>\n\n\n\n DirectX est apparu avec Windows 95 et n\u2019a cess\u00e9 d\u2019\u00e9voluer. L\u2019arriv\u00e9e de Windows Vista et de DirectX 10 a inaugur\u00e9 une volont\u00e9, via les drivers WDDM, d\u2019offrir aux d\u00e9veloppeurs un acc\u00e8s plus optimis\u00e9 aux GPU. DirectX 11, introduit avec Windows 7<\/a>, se focalisait sur le support de la \u00ab\u00a0tessellation\u00a0\u00bb et l\u2019am\u00e9lioration du multi-threading afin de tirer profit de la multiplication des processeurs<\/a> multi-c\u0153urs. DirectX 12 marque une nouvelle \u00e9tape dans le d\u00e9veloppement de l\u2019API multim\u00e9dia et ludique de Microsoft. Cette \u00e9volution est le fruit de quatre ans de recherche et d\u00e9veloppement. Elle est le r\u00e9sultat d\u2019un effort conjoint entre Microsoft<\/a>, les fabricants de GPU et les cr\u00e9ateurs de jeux<\/a>. Toute sa conception se focalise sur une id\u00e9e phare: r\u00e9duire la surcharge impos\u00e9e par les drivers et offrir un contr\u00f4le plus direct du GPU aux d\u00e9veloppeurs.<\/p>\n\n\n\n Depuis ses premiers pas, DirectX a toujours cherch\u00e9 \u00e0 simplifier le travail des d\u00e9veloppeurs en g\u00e9rant lui-m\u00eame la m\u00e9moire, la distribution des t\u00e2ches entre les c\u0153urs et les probl\u00e9matiques de synchronisation. Cette approche universelle n\u2019est pas optimale puisqu\u2019elle fonctionne de fa\u00e7on similaire quels que soit les besoins sp\u00e9cifiques des jeux. Il en r\u00e9sulte une surcharge sur les CPU\/GPU qui, non seulement, est consommatrice d\u2019\u00e9nergie mais ne permet pas de profiter pleinement de la puissance des GPU souvent mis en attente d\u2019instructions et donn\u00e9es en provenance des drivers.<\/p>\n\n\n\n DirectX 12 permet de parall\u00e9liser et de r\u00e9partir plus efficacement les commandes de constructions des sc\u00e8nes entre les diff\u00e9rents c\u0153urs CPU. Il permet surtout aux d\u00e9veloppeurs de reprendre directement le contr\u00f4le des ressources et des GPU et ainsi d\u2019optimiser leur utilisation pour les besoins sp\u00e9cifiques de leurs jeux.<\/p>\n\n\n\n En fournissant un niveau d\u2019abstraction mat\u00e9rielle de bien plus bas niveau, il permet notamment de tirer pleinement profit du multithreading aussi bien sur les diff\u00e9rents c\u0153urs du CPU, sur les diff\u00e9rents c\u0153urs du GPU que sur les \u00e9ventuels multiples GPU et cartes graphiques install\u00e9s. <\/p>\n\n\n\n Il permet ainsi aux d\u00e9veloppeurs de jeux d\u2019ex\u00e9cuter d\u2019avantage de t\u00e2ches en parall\u00e8le sur des GPUs s\u00e9par\u00e9s.<\/strong> Typiquement, tous les jeux 3D int\u00e8grent une phase de \u00ab\u00a0postprocessing\u00a0\u00bb pour un rendu visuel r\u00e9ussi. Avec DirectX 12, il est possible de confier la t\u00e2che de Postprocessing \u00e0 un second GPU ce qui lib\u00e8re plus t\u00f4t le premier GPU et lui permet de commencer \u00e0 calculer le rendu de l\u2019image suivante plus rapidement. <\/p>\n\n\n\n L\u2019une des grandes originalit\u00e9s de DirectX 12 est que cette parall\u00e9lisation des traitements peut-\u00eatre r\u00e9alis\u00e9e sur des GPUs diff\u00e9rents.<\/strong><\/p>\n\n\n\n Typiquement, bien des ordinateurs portables disposent de deux GPUs\u00a0: un GPU int\u00e9gr\u00e9 au processeur (Intel HD Graphics) et destin\u00e9 \u00e0 une utilisation en mode batterie, un autre sp\u00e9cialis\u00e9 (NVidia\/AMD) pour une utilisation ludique plus intensive lorsque l\u2019ordinateur est reli\u00e9 au secteur. Jusqu\u2019ici un seul des deux GPU pouvaient \u00eatre utilis\u00e9s \u00e0 un instant \u00ab\u00a0t\u00a0\u00bb. Avec DirectX 12, les d\u00e9veloppeurs peuvent exploiter le GPU sp\u00e9cialis\u00e9 pour le rendu des sc\u00e8nes et le GPU int\u00e9gr\u00e9 pour le PostProcessing de la sc\u00e8ne. Il en r\u00e9sulte un important gain dans le Framerate comme en t\u00e9moigne la d\u00e9monstration ci-dessous\u00a0:<\/p>\n\n\n\n DirectX12 am\u00e9liore \u00e9galement la gestion de la m\u00e9moire et r\u00e9duit les effets de fragmentation. <\/strong>Surtout, il tend \u00e0 offrir un frame-rate plus constant gr\u00e2ce \u00e0 un nouveau m\u00e9canisme de mise en cache des objets. Officiellement, Microsoft consid\u00e8re que, dans les meilleures conditions, DirectX 12 peut doubler le frame-rate des jeux par rapport \u00e0 DirectX 11. D\u2019une mani\u00e8re g\u00e9n\u00e9rale, l\u2019\u00e9diteur anticipe cependant un gain de performance de 20% en moyenne<\/strong> sur la plupart des jeux et applications 3D.<\/p>\n\n\n\n Les gains r\u00e9els d\u00e9pendent en r\u00e9alit\u00e9 essentiellement des jeux eux-m\u00eames ainsi que de la capacit\u00e9 des d\u00e9veloppeurs \u00e0 tirer profit des am\u00e9liorations apport\u00e9es \u00e0 DirectX 12 et de la souplesse suppl\u00e9mentaire procur\u00e9e par les nouvelles APIs.<\/p>\n\n\n\n La derni\u00e8re version du logiciel 3DMARK<\/strong>, \u00e9dit\u00e9 par Futuremark, contient un test \u00ab\u00a0API Overhead Feature Test<\/strong>\u00a0\u00bb qui permet de mettre en \u00e9vidence la capacit\u00e9 de DirectX 12 \u00e0 saturer les GPU pour en tirer tout leur potentiel. Sur un tel test, AMD a ainsi mesur\u00e9<\/a> des gains de 1547% sur une Radeon R9\u00a0290X<\/strong> et de 953% sur une Radeon R7\u00a0260X<\/strong>, des valeurs tr\u00e8s sup\u00e9rieures \u00e0 celles officiellement anticip\u00e9es par Microsoft.<\/p>\n\n\n\nLa plateforme ludique de Microsoft<\/h3>\n\n\n\n
Ce que DirectX 12 fait mieux que DirectX 11<\/h3>\n\n\n\n
<\/strong>
Enfin, DirectX 12 introduit de nouvelles fonctionnalit\u00e9s de rendu et de nouvelles optimisations <\/strong>dans le pipeline de g\u00e9n\u00e9ration des sc\u00e8nes 3D qui permettent des gains tr\u00e8s importants dans les algorithmes de d\u00e9tection des collisions, de gestion des transparences et d\u2019optimisation g\u00e9om\u00e9trique (backface culling, occlusion culling, frustum culling, contribution culling).<\/p>\n\n\n\nGains potentiels : premiers benchmarks<\/h3>\n\n\n\n