DirectX 12 : de vastes gains en perspective… si l’on s’en donne la peine
On n'a rien sans rien ma bonne dame
Le 21 mars 2014 à 17h10
5 min
Logiciel
Logiciel
Lors de la GDC, Microsoft a présenté les premiers éléments de DirectX 12. Il s’agit d’une étape importante, la dernière révision majeure datant de Windows 7, les évolutions 11.1 et 11.2 étant arrivées avec Windows 8 et 8.1. L’objectif est simple : débloquer les vraies performances des GPU, ce qui nécessite du travail.
Comme prévu, Microsoft a présenté hier soir les premiers éléments consacrés à DirectX 12. Une annonce importante et qui réunissait pour l’occasion AMD, Intel, NVIDIA et Qualcomm.
L’annonce était d’autant plus importante qu’aucune nouvelle version majeure de cette API (Application Programming Interface) n’avait été lancée depuis des années. Il faudra d’ailleurs encore attendre car la première préversion ne doit arriver que dans quelques mois.
Rapprocher les développeurs du matériel
Microsoft est parti durant sa conférence sur un constat relativement simple : les CPU et les GPU n’ont pas du tout évolué de la même manière. La puissance des cartes graphiques a grimpé en flèche tandis que celle des processeurs s’est ralentie, les fondeurs tablant sur la multiplication des cœurs physiques et des jeux d’instructions.
Selon le responsable Anuj Gosalia, il est devenu difficile de fait d’améliorer de manière significative ce que peut calculer le GPU pour une seule image. Microsoft a donc choisi de répondre à une demande visiblement constante des développeurs : se rapprocher du matériel, notamment pour exploiter totalement les CPU modernes.
DirectX 12 sera donc la première version de l’API à autoriser un accès direct aux appels système du GPU. Sans qu’il soit besoin d’utiliser une API spécifique ou même le pilote, une application (et donc un jeu) pourra consulter directement la file d’attente des instructions envoyées au GPU.
Les développeurs pourront donc y intervenir et réaliser les optimisations qui leurs semblent nécessaires. Ils pourront contrôler notamment les ressources placées dans la pile, les déplacer, les rassembler et les positionner dans l’ordre qu’ils souhaitent.
Des gains sur l'exploitation des GPU et CPU
Pour prouver ses dires, Microsoft a ainsi fait la démonstration d’un portage de Forza 5 depuis la Xbox One (sous DirectX 11) vers un PC équipé de DirectX 12. La différence de performances était largement perceptible. Mais il n’y aura évidemment pas de miracles : certaines opérations seront faites automatiquement, mais les développeurs devront mettre les mains dans le cambouis s’ils souhaitent obtenir les plus gros gains.
Une autre démonstration, sous 3Dmark cette fois, a permis de montrer les avantages que ces optimisations pouvaient avoir sur l’exploitation des processeurs récents. À machine égale, le processeur Core i7 était exploité de façon minimale sous DirectX 11 : le premier cœur était surchargé tandis que les trois autres ne participaient que très peu aux calculs. Sous DirectX 12, la charge des quatre cœurs était plus équilibrée, divisant presque par cinq le nombre de cycles nécessaires pour les calculs.
Plusieurs nouveautés ont également été introduites afin d'augmenter ce parallélisme des traitements. Par exemple, une nouvelle implémentation de la pile permettra de minimiser le coût en ressources des créations et destructions d’objets. Un nouveau modèle de binding permettra également de récupérer plus rapidement la mémoire libérée par d’anciens objets. Les images JPEG et ASTC pourront en outre être décompressées directement par le matériel.
Des améliorations qui seront nécessairement reprises par Microsoft plus tard dans ses propres produits, notamment Windows.
Le support d'une bonne partie du matériel existant
Question disponibilité justement, les nouvelles sont plutôt bonnes, mais incomplètes. Windows 8 sera évidemment concerné, mais Microsoft n’a pas souhaité répondre pour l’instant sur Windows 7.
Les GPU compatibles seront cependant assez nombreux avec, chez AMD, toutes les Radeon exploitant une architecture GCN (HD 7000 et ultérieures) et, chez NVIDIA, toutes les cartes reposant sur les architectures Fermi, Kepler et Maxwell. Du côté de chez Intel, c'est Haswell et les prochaines générations qui seront concernés.
Les partenaires présents n’ont d’ailleurs pas tari d’éloges au sujet de DirectX 12. Raja Koduri de chez AMD indiquant par exemple que c’était « comme faire un bond de quatre générations de matériel avec cette API », sans que l'on sache si cela aura un impact sur le projet Mantle, désormais supporté aussi par Crytek.
Un avis globalement partagé par NVIDIA et Qualcomm, ce dernier insistant tout particulièrement sur les bénéfices en termes de réduction de charge pour les processeurs, ce qui aura un impact important sur l’autonomie. Cependant, la question de la date de disponibilité reste floue.
Microsoft a simplement indiqué que l’API serait prête à temps pour permettre aux développeurs de préparer une nouvelle génération de jeux pour les fêtes de fin d’année 2015. Ceux qui souhaitent en savoir davantage pourront consulter le billet très technique de Microsoft sur le sujet.
DirectX 12 : de vastes gains en perspective… si l’on s’en donne la peine
-
Rapprocher les développeurs du matériel
-
Des gains sur l'exploitation des GPU et CPU
-
Le support d'une bonne partie du matériel existant
Commentaires (116)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 21/03/2014 à 18h20
Le 21/03/2014 à 18h23
Le 21/03/2014 à 18h29
Le 21/03/2014 à 18h31
Le 21/03/2014 à 18h32
Le 21/03/2014 à 18h36
Le 21/03/2014 à 18h39
Le 21/03/2014 à 18h41
Le 21/03/2014 à 18h45
Le 21/03/2014 à 18h46
Le 21/03/2014 à 18h47
Le 21/03/2014 à 19h03
Le 21/03/2014 à 19h07
Le 21/03/2014 à 19h12
quel aberration de faire mourir windows 7 en le privant de technologies qu’il est capable de gérer.
" />
Le 21/03/2014 à 19h15
Le 21/03/2014 à 19h16
C’est l’effet Mantle, c’est pas mal (ça donne déjà une excuse à AMD de l’abandonner d’ici deux ans " /> ). Dommage que ça prenne autant de temps, même si ça se comprend.
Le 21/03/2014 à 21h20
Le 21/03/2014 à 21h31
Abandonner Direct X, je pense qu’aucun développeur de jeu ne le fera de si tôt. Windows est quand même présent sur la quasi-totalité des PC, aucun éditeur de jeu ne se risquerait à se priver de cela.
En revanche, je suis persuadé que l’on verra de plus en plus de jeux qui seront développés aussi en OpenGL, en plus de Direct X, pour toutes les raisons évoquées ci-avant.
Le 21/03/2014 à 21h40
Le 21/03/2014 à 21h45
Le 21/03/2014 à 21h48
Le 21/03/2014 à 21h48
Je pense qu’il n’y a pas que AMD qui écoute les doléances des dev, Nvidia et Microsoft doivent aussi le faire. Et cette histoire d’accès aux APi’s de plus bas niveau ne doit pas non plus daté d’hier.
Après je t’aovue que je n’en sais rien, mais ça m’étonnerai que ça date seulement de l’annonce de Mantle. " />
Le 21/03/2014 à 21h57
Le 21/03/2014 à 21h58
Le 21/03/2014 à 22h06
Les beaux y kotent sûrement " />
Le 21/03/2014 à 22h17
Le 21/03/2014 à 22h34
Le 21/03/2014 à 23h46
Le 22/03/2014 à 05h13
Le 22/03/2014 à 06h31
Et DirectX 13 permettra aux développeurs d’écrire en assembleur pour utiliser le CPU et GPU et faire tout ce qu’ils veulent ! Le progrès ! De mieux en mieux.
Le 22/03/2014 à 22h14
Une article intéressante sur les API de la PS4
Le 22/03/2014 à 23h16
Le 22/03/2014 à 23h17
Le 22/03/2014 à 23h53
Le 23/03/2014 à 07h27
Le 23/03/2014 à 10h30
Le 23/03/2014 à 12h18
Le 23/03/2014 à 13h56
J’admet avoir un peu exagéré, mais aussi parce que je trouve l’intérêt de Mantle/DX12 limité pour peu qu’on prenne la peine de restructurer un peu sa méthode de rendu, surtout dans un contexte ou les CPU sont à la hauteur du GPU.
Je réagissais surtout à la remarque sur l’OpenGL vieillissant, ils ont quand même jeté un tas de vieux trucs ces dernières années, et l’API est améliorée chaque année ou presque.
Le 23/03/2014 à 14h38
Le 24/03/2014 à 07h50
Le 24/03/2014 à 09h09
J’ai ue simple question. Actuellement, j’ai une Radeon HD 6970 (DirectX 11 donc) avec un Core i5 Sandy Bridge 2400. Je me pose la quesiton suivante : est-ce que, si je remplace juste ma CG par une Radeon 290(x), je percevrai les bénéfices de Mantle avec les actuels jeux en DirectX 9/10/11 ?
(et si j’ai bien compris, la techno Mantle sera de facto intégrée à la future version de DirectX)
Le 24/03/2014 à 09h38
Le 24/03/2014 à 09h39
Le 24/03/2014 à 13h15
La présentation était conjointe Nvidia, AMD et Intel (il y a un lien plus haut dans les commentaires). Toutes les techniques présentées ne fonctionnent pas sur toutes les cartes, mais c’est pas spécifique Nvidia.
Le 24/03/2014 à 13h51
Le 24/03/2014 à 14h00
Le 24/03/2014 à 14h07
Le 24/03/2014 à 14h13
Le 24/03/2014 à 14h36
Le 24/03/2014 à 14h54
Le 24/03/2014 à 14h55
Le 24/03/2014 à 15h04
Le 24/03/2014 à 15h56
Le 24/03/2014 à 18h58
Le 21/03/2014 à 17h18
De vastes gains en perspective… pour les fêtes de fin d’année 2015
À ce moment les principaux moteurs de jeux utiliseront OpenGL nativement et auront une couche de compatibilité pour les 15% de devices sous Windows…
Le 21/03/2014 à 17h21
Le 21/03/2014 à 17h37
Et la maj du glide,on en est ou sinon?
" />
Le 21/03/2014 à 17h40
Je serais curieux de savoir ce que l’on peut faire avec OpenGL 4. Depuis la version 3 il y avait un certain controle sur le pipeline, mais qu’en est il effectivement de ce genre d’optimisation ? J’ai peur que ce soit du coup encore une grosse avance confortée par M$, surtout que comme d’habitude les constructeurs vont optimiser en premier lieu leur carte pour l’API et non pas pour les usages.
Le 21/03/2014 à 17h42
Microsoft a ainsi fait la démonstration d’un portage de Forza 5 depuis la Xbox One (sous DirectX 11) vers un PC équipé de DirectX 12. La différence de performances était largement perceptible.
Ah ba oui tu m’étonnes, le PC était équipé d’une GeForce GTX Titan Black Edition… " />
Le 21/03/2014 à 17h44
Le 21/03/2014 à 17h49
Ca serait bien qu’ils commercialisent le portage PC de Forza 5 qu’ils ont fait.
Le 21/03/2014 à 17h59
Le 21/03/2014 à 18h00
Apparemment sur 3dmark c’est deux fois plus rapide. A voir dans les faits mais c’est prometteur :)
Par contre j’aimerai bien que sur Windows 9 ils recodent le shell avec WPF ou du xaml WinRT. Vu que DirectX fait partie intégrante de la pile graphique il y aurait encore de la perf.
Le 21/03/2014 à 18h05
Le 21/03/2014 à 18h11
Le 21/03/2014 à 18h13
Le 21/03/2014 à 18h14
Le 21/03/2014 à 18h14
Mmoui..
Je suppose qu’il fallait réagir face à Mantle.
Mais je constate que le jeux PC pour MS reste un truc que l’on abandonne pas juste pour faire la nique à Valve et consorts.
Mais globalement pour MS un joueur PC a déjà payé pour son OS, donc le jeu PC osef total - il n’a qu’à acheter une xbox.
Le 21/03/2014 à 18h16
Le 21/03/2014 à 18h19
Le 21/03/2014 à 19h23
DX12 ne date pas de la semaine dernière, il serait en développement depuis 4 ans.
Le 21/03/2014 à 19h24
Le 21/03/2014 à 19h28
Le 21/03/2014 à 19h35
Le 21/03/2014 à 19h40
Le 21/03/2014 à 20h19
Le 21/03/2014 à 20h23
Le 21/03/2014 à 20h28
Le 21/03/2014 à 20h41
Le 21/03/2014 à 20h45
Le 21/03/2014 à 20h48
Le 21/03/2014 à 21h00
Le 21/03/2014 à 21h02
Bref, ils ont pompé dx12 sur mantle quoi. Bon, tant que c’est tout bénèf pour nous, consommateurs, on va pas se plaindre. AMD se la joue comme Apple avec les smartphones. Un bon coup de pompe dans la fourmilière, et ça repart.
Le 21/03/2014 à 21h10
Le 21/03/2014 à 21h14
Le 21/03/2014 à 21h17
Le 22/03/2014 à 06h39
Le 22/03/2014 à 06h50
Le 22/03/2014 à 07h16
Le 22/03/2014 à 07h45
Le 22/03/2014 à 07h45
Le 22/03/2014 à 07h49
Le 22/03/2014 à 07h58
Le 22/03/2014 à 08h11
Le 22/03/2014 à 08h31
Le 22/03/2014 à 08h49
Sans qu’il soit besoin d’utiliser une API spécifique ou même le pilote, une application (et donc un jeu) pourra consulter directement la file d’attente des instructions envoyées au GPU. Les développeurs pourront donc y intervenir et réaliser les optimisations qui leurs semblent nécessaires. Ils pourront contrôler notamment les ressources placées dans la pile, les déplacer, les rassembler et les positionner dans l’ordre qu’ils souhaitent.
Concretement ça veut dire quoi ?
c’est quoi leurs instructions GPU ?
Sans pilote ? Ca veut dire qu’ils mettent l’espace d’addresse de la cg en userland ? n’importe qui pourrra faire joujou avec les registres de la cg ? (ils sont fou…)
Le 22/03/2014 à 08h56
Le 22/03/2014 à 09h17
Au fait, ya bien un navigateur internet sur la XBox One ? Si oui, est-il capable d’afficher du WebGL ?
Le 22/03/2014 à 09h25
Le 22/03/2014 à 09h30
Le 22/03/2014 à 09h33
Bonne idée globalement : laisser les clés aux dèvs pour qu’ils nettoient le carburateur en faisant ronronner le moulin. Ce qui ouvre également la possibilité de les voir emplafonner un platane s’ils se gourent de pédale " />
Du coup, bonne initiative, encore faut-il que les dèvs aient le temps et l’envie d’optimiser leur code… Pas toujours évident quand on a un éditeur qui pousse à la roue derrière en termes de délais…
Mais les indés devraient y trouver leur compte, du moins les plus consciencieux (qui a dit Chris Roberts ? " /> )
Le 22/03/2014 à 09h48
C’est à dire en fait qu’effectivement, ces 2 OS profitent d’un mécanisme interne (et donc un autre que celui de AMD que j’ai lu ailleurs dans le doc) de réinitialisation, mais que si l’on dépasse la simple volonté de constater des faits techniques et que l’on cherche vraiment à être nocif*, et bien on case 3 ou 4 attaques Context dans un intervalle de temps assez serré et… Windows fait un joli BSOD, y compris 7 et Vista
Je ne pense pas que ce cas passerait sur Windows 8 . Comme je l’ai dit au dessus wddm 1.2 intègre un scheduler GPU préemptif. Vu que c’est le GPU qui le gère il est capable de mieux réagir au timeout que si c’était l’os qui s’en chargeait. Je t’invite à lire le dossier Windows 8 sur PCI,cette partie est bien expliquée.
Hehehehe Alors…
1/ Je te rappelle comme dit au-dessus que la;page “gentille” resette le GPU, mais que tu n’as pas voulu lire plus loin que après quelques resets c’est BSOD (ce que certes XP fait tout de suite).
2/ Tu sais ce que c’est “locks the desktop” ? C’est un freeze total après lequel tu fais cmd + alt + esc > tu sélectionnes Finder > Tu cliques “relancer”…
Petit jeu… dans un cas critique, tu préfères :
A/ un crash
B/ un BSOD
C/ relancer une appli
Un freeze c’est pas ça hein. Si l’os ne répond plus ton finder aussi. C’est pire qu’un bsod ou un kernel panic vu que l’os n’a même pas détecté le crash.
il faudra que tu m’explique comment tu accèdes au finder si la pile graphique a crashé " />
Et ce n’était pas un troll, juste une petite vanne. Et j’avais raison tu le sais très bien " />
Le 22/03/2014 à 09h56
Le 22/03/2014 à 10h00
Juste voilà ce qui est écrit sur mon lien plus haut:
Mac OSX 10.6.7 Desktop freezes, requires a reboot to restore functionality
Le 22/03/2014 à 10h07
Le 22/03/2014 à 10h29
Le 22/03/2014 à 10h35
Le 22/03/2014 à 11h50
Le 22/03/2014 à 12h06
Le 22/03/2014 à 12h26
Le 22/03/2014 à 15h06
Le 22/03/2014 à 16h07
Le 22/03/2014 à 19h06
Le 22/03/2014 à 19h08
Le 22/03/2014 à 19h39
Le 22/03/2014 à 20h17