PDA

Voir la version complète : DirectX 12 : de vastes gains en perspective... si l'on s'en donne la peine



darvador2002
21/03/2014, 17h02
DirectX 12 : de vastes gains en perspective... si l'on s'en donne la peineOn n'a rien sans rien ma bonne dame
Microsoft a présenté hier lors de la GDC les premiers éléments de DirectX 12. Il s’agit d’une étape importante car la dernière révision majeure a été présentée avec Windows 7, les évolutions 11.1 et 11.2 étant par la suite arrivé avec Windows 8 et 8.1. L’objectif principal de cette API, qui ne sera disponible que plus tard, est simple : débloquer les vraies performances des GPU. Pour ceux qui s’en donneront la peine toutefois.

http://static.pcinpact.com/images/bd/news/medium-144904.png (http://static.pcinpact.com/images/bd/news/144904.png)
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 et leur laisser les mains libresMicrosoft 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.


http://static.pcinpact.com/images/bd/news/medium-145469.png (http://static.pcinpact.com/images/bd/news/145469.png)Des gains sur l'exploitation des GPU et CPUPour 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.


http://static.pcinpact.com/images/bd/news/medium-145468.png (http://static.pcinpact.com/images/bd/news/145468.png)
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ée 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 existantQuestion 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 Khodury 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 (http://www.pcinpact.com/recherche?_search=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 (http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx) de Microsoft sur le sujet.