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.
Commentaires (120)
#1
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…
#2
#3
Et la maj du glide,on en est ou sinon?
" />
#4
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.
#5
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… " />
#6
#7
Ca serait bien qu’ils commercialisent le portage PC de Forza 5 qu’ils ont fait.
#8
#9
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.
#10
#11
#12
#13
#14
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.
#15
#16
#17
#18
#19
#20
#21
#22
#23
#24
#25
#26
#27
#28
#29
#30
quel aberration de faire mourir windows 7 en le privant de technologies qu’il est capable de gérer.
" />
#31
#32
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.
#33
DX12 ne date pas de la semaine dernière, il serait en développement depuis 4 ans.
#34
#35
#36
#37
#38
#39
#40
#41
#42
#43
#44
#45
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.
#46
#47
#48
#49
#50
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.
#51
#52
#53
#54
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. " />
#55
#56
#57
Les beaux y kotent sûrement " />
#58
#59
#60
#61
#62
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.
#63
#64
#65
#66
#67
#68
#69
#70
#71
#72
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…)
#73
#74
Au fait, ya bien un navigateur internet sur la XBox One ? Si oui, est-il capable d’afficher du WebGL ?
#75
#76
#77
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 ? " /> )
#78
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 " />
#79
#80
Juste voilà ce qui est écrit sur mon lien plus haut:
Mac OSX 10.6.7 Desktop freezes, requires a reboot to restore functionality
#81
#82
#83
#84
#85
#86
#87
#88
#89
#90
#91
#92
#93
Une article intéressante sur les API de la PS4
#94
#95
#96
#97
#98
#99
#100
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.
#101
#102
#103
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)
#104
#105
#106
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.
#107
#108
#109
#110
#111
#112
#113
#114
#115
#116