Microsoft fait évoluer son DX12 et son DXR ! |
————— 31 Octobre 2019 à 08h06 —— 13987 vues
Microsoft fait évoluer son DX12 et son DXR ! |
————— 31 Octobre 2019 à 08h06 —— 13987 vues
Microsoft a enfin fait évoluer de manière importante son DX12 et de nombreuses parties s'y rattachant. Pour rappel, cette API née de la philosophie Mantle, a du mal à convaincre autant que DX11 a su le faire avec DX9 et DX10 (10.1). Une des raisons pourrait être le temps d'adaptation des développeurs à écrire leurs codes au plus près des architectures GPU, tout en optimisant les latences internes des CPU afin que les commandes se fassent plus vite. Oui mais voilà, les architectures GPU ne restent pas figées bien longtemps, du coup on imagine aisément le temps que pourrait prendre le développement d'un jeu pour des GPU différents. Et entre l'écriture du code et la sortie du jeu, de nouvelles puces graphiques arrivent, obligeant à écrire encore et encore, mais jusqu'à quand on considère que tel ou tel GPU ne sera pas optimisé ?
Alors Microsoft a donc continué à développer sa trousse à outils DX12, afin d'augmenter son adoption. Étant donné qu'il est incorporé dans une politique commerciale Windows 10 exclusivement, la Raymonde ne peut donc pas décemment pioncer avec DX12. Il lui faut d'autres outils pour que son API soit mieux acceptée et utilisée. Premier chapitre de cette évolution, l'implémentation de DXR, API permettant aux GPU de faire tourner du RayTracing Hybride reléguant la rastérisation au rang des approximations visuelles pour tout ce qui concerne les éclairages, les ombres et les réflexions. Pour autant, si DXR est ouvert, le seul à s'y être engouffré avec une vraie politique de suivi sur l'avenir, c'est Nvidia. Il a pensé ses Turing et particulièrement ses Geforce RTX pour accélérer la chose. Certes c'est un début mais c'est très loin d'être inexploitable, bien au contraire. AMD suivra à demi-mots avec les consoles, surtout la Scarlett et avec probable intégration avec RDNA2 dans sa prochaine génération de cartes graphiques. Pour autant DXR vient de passer en version Tier 1.1. C'est la première grosse rustine depuis octobre 2018 et son arrivée. Il y a un ajout de shaders supplémentaires à la bibliothèque RT actuelle, les développeurs peuvent débuter avec Tier 1.0 et migrer vers 1.1 s'ils jugent que cela apportera du plus à leur jeu. Ensuite la main est donnée à une meilleure gestion des rayons à deux niveaux : ExecuteInDirect permet au GPU, via des algorithmes adaptatifs, de décider le nombre de rayons à exécuter, Inline RT permet de son côté via des algos et des programmateurs du planning d'adapter et de donner plus de flexibilité aux shaders RT par exemple quand le système est saturé.
Ensuite MS a introduit les DirectX Mesh Shader, qui sont une amélioration des calculs liés à la géométrie, qui remplace l'ancienne version. Cela concerne les vertex shader, les hull shader, la tesselation, domain shader et géométrie shader, et donc toute la chaîne de rendu qui s'en retrouve simplifiée (voir schéma ci-dessous) sous la forme d'un Amplification Shader, qui gère les éléments comme la tesselation, et d'un Mesh Shader, qui va accélérer le traitement de la géométrie en éliminant les aller-retour vers la mémoire. En gros plus de flexibilité pour ces programmes, et amélioration de l'efficacité des pipelines dédiés à la géométrie. Le but étant au final d'avoir des scènes plus complexes avec augmentation des détails géométriques, le tout sans sacrifier le framerate.
Dans le lot, on trouve aussi le DirectX Sampler Feedback. C'est une amélioration qui se sert du hardware pour déterminer et enregistrer quelles sont les zones à texturer qui sont utilisées dans la scène 3D, et comment le faire pour quelle qualité. Sampler Feedback permet de générer un feedback qui enregistre quels niveaux de MIP ont été utilisés et lesquels ont besoin d'être permanents pour être réutilisés. Et donc deux scénarios sont décrits pour expliquer l'intérêt du Feedback Sampler. Le premier est un usage intéressant pour le Texture Streaming. En effet, les jeux de plus en plus complexes et ouverts nécessitent des quantités astronomiques de textures. Et plus on monte en définition plus c'est lourd, donc lent. C'est au final bien trop lourd, ce qui implique que les développeurs sont souvent obligés de diminuer la qualité de leurs assets. Par exemple un MIP 0 prend trop de place. Le Feedback Sampler permettrait donc de définir quels niveaux de MIP sont nécessaires selon les zones à produire. Et ainsi il permet de charger les justes données au bon moment. Autre scénario où ça servirait, le Texture-Space Shading. Un shader pour ceux qui l'auraient perdu de vue, est un programme qui sert à réaliser une partie du rendu d'une scène 3D, soit par le moteur 3D, soit par le GPU. Les jeux stockent beaucoup de textures, de calculs et de stockage de shaders pour l'affichage d'une texture. Ce flux incessant est augmenté avec les jeux de plus en plus complexes. Le Feedback Sampler permettrait d'améliorer l'efficacité du Texture-Space Shading en décidant quelle texture est indispensable dans la scène, ce qui élimine toute redondance de stockage par exemple.
Pour terminer, il y a d'autres choses qui seront ajoutées par la suite, comme le support de Pix - outil de debugging des performances sous DirectX 12 - pour ces nouvelles fonctionnalités, mais ça sera précisé sur le blog officiel de la Raymonde dans les semaines à venir. Tout ceci quand même devrait concourir à rendre DX12 plus friendly, et désormais son adoption passera par celle du RayTracing, ce n'est pas la demande qui crée l'offre, mais bien l'offre qui crée la demande. En deux mots pour qu'une feature soit exploitée, il faut bien qu'elle soit lancée un jour en premier, et non pas la conséquence d'une demande généralisée. Ces améliorations sont intégrées à la version Windows Insider 19013 dont vous parlait Guillaume hier soir.
Un poil avant ?Figurez-vous qu'EVGA proposera aussi des GTX 1650/1660 SUPER ! | Un peu plus tard ...Y'a bon le p'tit NAS de maison abordable chez Terra Master ? |