
Ce nouveau compilateur se base d’ailleurs sur une architecture entièrement libre : LLVM (plus connu grâce à Clang, le compilateur C et C++ qui s’axe autour de LLVM). L’objectif est d’arriver à un compilateur fonctionnel plus rapidement, mais aussi de profiter de l’écosystème complet (outils, documentation, expertise, notamment) pour faciliter l’innovation dans le futur. Notamment, LLVM fournit un certain nombre de passes d’optimisation du code, ce qui pourrait améliorer fortement la performance des shaders dans le futur.
Le langage de programmation est HLSL, spécifique à DirectX (OpenGL utilise GLSL). La version SM6 offre quelques avantages syntaxiques par rapport à l’itération précédente, notamment pour profiter de l’architecture de type SIMD des processeurs graphiques actuels : ils sont très performants pour appliquer une même opération sur plusieurs données simultanément. Ceci devrait faciliter l’écriture de shaders pour la suppression d’éléments invisibles, l’éclairage ou encore les opérations d’entrée-sortie.
La sortie de ce nouveau compilateur est une nouvelle représentation intermédiaire, nommée DXIL (c’est le même principe que pour Vulkan et SPIR-V). Elle n’est comprise que par les dernières préversions de Windows 10 (Windows 10 Insider Build 15007).
Cette libération de code source pourrait avoir une série d’effets secondaires. Par exemple, Wine (l’implémentation d’API Windows pour Linux, qui permet donc d’y lancer des applications Windows sans les toucher) aura une brique de moins à implémenter pour DirectX 12. Grâce à d’autres développements autour de LLVM, il devrait être possible de compiler un shader HLSL en SPIR-V et l’utiliser avec Vulkan. Toutes les répercussions ne sont pas encore visibles. Le développement de nouveaux outils par-dessus cette couche libre serait fortement facilité par l’intégration du code de Microsoft dans LLVM, mais cela n’a pas l’air d’être au programme (les passes d’optimisation et la génération du code DXIL y auraient leur place).
Voir le code source sur GitHub.
Source : New DirectX Shader Compiler based on Clang/LLVM now available as Open Source.
Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.