La fin d’une ère : pourquoi la compilation des shaders vit ses derniers instants dans nos jeux PC

 
Microsoft s’associe aux géants du hardware pour éliminer la compilation des shaders et les saccades grâce à la technologie Advanced Shader Delivery. Auparavant réservée à la seule ROG Xbox Ally, elle arrive cette année pour tous les joueurs PC.
Star Wars Jedi : Survivor

En amont du lancement de sa première console portable l’été dernier, la ROG Xbox Ally, Microsoft a dévoilé une technologie visant à éliminer l’étape quasiment inévitable de compilation des shaders dans les jeux PC modernes. L’Advanced Shader Delivery devait ainsi importer l’une des meilleures fonctionnalités de nos consoles de salon pour le PC afin de mettre fin à deux limitations majeures.

La première concerne le premier lancement d’un jeu (ou le lancement avec une mise à jour de pilote graphique) qui nécessite une période de compilation des shaders. La deuxième, ce sont les éventuelles compilations de ces shaders en plein jeu (en runtime) qui pouvaient occasionner des saccades lors de l’exploration des niveaux. Si on a pu voir de sérieux soucis de compilation de shaders en jeu sur Jedi Survivor ou Oblivion Remastered, un jeu plus linéaire comme Dead Space : Remake en souffrait aussi très largement.

Le fonctionnement de l’Advanced Shader Delivery sur la ROG Xbox Ally // Source : Microsoft

L’Advanced Shader Delivery change radicalement ce modèle. Au lieu de compiler les shaders sur votre PC, Microsoft utilise son propre cloud ou les serveurs des différentes plateformes (Xbox Store, Steam, Epic…) pour distribuer des shaders déjà pré-compilés pour votre configuration matérielle spécifique.

À l’occasion de la GDC, Microsoft annonce l’ouverture de la technologie à tous les développeurs ainsi que des outils pour en faciliter le déploiement auprès des joueurs.

Pour en finir avec la compilation de shaders sur PC

Microsoft en profite pour en améliorer plusieurs facettes avant un déploiement plus massif sur PC et consoles portables. On peut notamment citer l’implémentation des Partial Graphics Programs (PGP) qui vise à résoudre la trop grande complexité des combinaisons de shaders pour la pré-compilation.

Pour certains jeux massifs, plusieurs millions de combinaisons sont ainsi possibles et une compilation exhaustive à l’avance peut s’avérer extrêmement coûteuse en temps, en ressources système ainsi qu’en espace disque. Les Partial Graphics Programs proposent de ne plus les traiter comme un bloc monolithique indivisible, mais de les découper en deux étapes distinctes : la première se base sur les parties lourdes et communes qui ne changent pas souvent.

Microsoft cite ici les shaders de pré-rasterisation, qui manipulent la géométrie de la scène 3D avant qu’elle ne soit composée de pixels, ainsi que les pixel shaders, qui définissent l’apparence finale grâce à une grille de pixels 2D (textures, éclairage, ombres, transparence, reflets, etc.)

Source : Nvidia

Les PGP lient ensuite ces programmes entre eux avec des réglages spécifiques lors du runtime, lorsque le jeu en a besoin. Cela offre ainsi aux développeurs une logistique simplifiée pour la complexité de leur code, avec un gain de temps massif dans l’énumération des shaders grâce à l’Advanced Shader Delivery.

Les joueurs pourront s’attendre à des téléchargements réduits de ces shaders pré-compilés avec une réduction drastique des saccades dans les jeux les plus ambitieux techniquement (en monde ouvert notamment).

Enfin, Microsoft fournit aux développeurs deux outils pour évaluer l’efficacité de la technologie sur leur jeu. La Stats API permet de voir en temps réel le taux de succès du cache de shaders. Il s’agit d’évaluer si l’Advanced Shader Delivery fonctionne ou si certains shaders manquent à l’appel. L’outil de diagnostic « Shader Explorer » permet quant à lui d’offrir une vue de base niveau aux développeurs sur la façon dont un GPU traite les shaders. Ils pourront ainsi traquer les goulots d’étranglement et chasser les saccades récalcitrantes.

L’Advanced Shader Delivery s’ouvre à tous les appareils

Auparavant limité aux seules ROG Xbox Ally, l’Advanced Shader Delivery s’étend désormais à tous les développeurs. Ainsi, la technologie est désormais dans les mains de Nvidia, AMD, Intel et Qualcomm pour une compatibilité totale avec le matériel moderne des joueurs.

De plus, l’ASD sera aussi partie intégrante de l’Unreal Engine 5 pour tous les jeux voulant l’exploiter. Tous ces grands noms sont en train de travailler avec Microsoft pour déployer l’ASD auprès de tous les possesseurs de processeurs et cartes graphiques modernes.


Retrouvez un résumé du meilleur de l’actu tech tous les matins sur WhatsApp, c’est notre nouveau canal de discussion Frandroid que vous pouvez rejoindre dès maintenant !

Recherche IA boostée par
Perplexity