Aller au contenu

Compilation des shaders : pourquoi le jeu saccade

Par Thomas R.

10 min de lecture
Lien copié dans le presse-papiers
Thomas R.

Dans Star Wars Jedi: Survivor, un outil fait passer le compteur de blocages de compilation des shaders de 9 038 à 11. Le chiffre vient des mesures du développeur de SCSKiller, sur une RTX 5090, relayées par Pause Hardware (page mise à jour le 4 octobre 2026). Un jeu, un outil sur une carte : je date et j'attribue chaque chiffre de ce dossier, celui-ci compris.

Un jeu saccade au premier lancement parce que son moteur doit compiler un shader juste avant de l'utiliser pour dessiner, selon Epic, cité par GamingOnLinux. Sous DirectX 12, Microsoft décrit un cache sur disque, mais son contenu reste propre au matériel, au pilote et à la machine. Une mise à jour de pilote peut donc relancer la compilation.

Pourquoi le moteur compile-t-il pendant la partie ?#

Epic décrit le mécanisme en une phrase : le moteur découvre qu'il doit compiler un nouveau shader juste avant de l'utiliser pour dessiner. Dans Unreal Engine, le PSO Precaching (PSO pour Pipeline State Object) collecte automatiquement les PSO utilisables au rendu et les compile en asynchrone, selon la documentation d'Epic. La variable r.PSOPrecache.GlobalShaders, activée par défaut, précompile au démarrage certains PSO de shaders globaux.

Côté DirectX 12, Microsoft décrit un cache automatique sur disque qui stocke les shaders compilés pour accélérer les exécutions suivantes de l'application.

Quand je montais mes premiers PC, vers 2005, la compilation de shaders ne figurait pas dans mes soucis de compatibilité. Aujourd'hui, elle a sa ligne dans les notes de version de l'application NVIDIA (11.0.7). Rangée parmi les bêtas. Pour le vocabulaire voisin du rendu GPU, le lexique des mesh shaders et du VRS pose les bases.

Qu'est-ce qui oblige à tout recompiler ?#

Le pilote d'abord. Microsoft indique qu'un PSO mis en cache contient des données propres au matériel, au pilote et à la machine d'où il vient. Si le pilote D3D12 a été mis à jour après la mise en cache, le PSO peut renvoyer le code D3D12_ERROR_DRIVER_VERSION_MISMATCH. NVIDIA formule le même constat côté joueur : la compilation est à répéter après les correctifs de jeu ou les mises à jour de pilote GPU.

Le réglage graphique ensuite. Pour Borderlands 4, Gearbox demande, selon IGN (repris par Yahoo Tech le 16 septembre 2025), de garder en tête que tout changement de réglage graphique oblige à recompiler les shaders, et de jouer au moins 15 minutes avant de juger la performance.

Les chiffres de terrain varient d'un poste à l'autre. Sur Borderlands 4 encore, un auteur de PC Gamer a porté le cache de shaders à 100 Go dans le panneau de configuration NVIDIA, son dossier DXCache ayant gonflé jusqu'à 16,8 Go (article du 15 septembre 2025, un seul poste). Je trouve qu'un joueur ne devrait pas avoir à connaître ce réglage. Sur The Callisto Protocol, Digital Foundry, cité par Wccftech le 2 décembre 2022, relevait un blocage de 400 ms sur un Core i9 12900K, contre 750 ms sur un Ryzen 5 3600.

Quel réglage chez NVIDIA, AMD, Steam ou Microsoft ?#

Chaque acteur range son mécanisme à un endroit différent. Le tableau reprend ce que chaque source décrit, avec sa date.

MécanismeRéglage ou prérequisCe que la source décritDate et périmètre donnés par la source
Shader Pre-Caching, SteamLa note prévoit une entrée des Paramètres pour le désactiverLa note indique que Steam peut télécharger des shaders précompilés pour la carte graphique, selon le matériel et le pilote, dans les jeux OpenGL et VulkanNote de version du client du 13 décembre 2017 ; correctif du téléchargement de ces shaders le 15 mars 2023
Auto Shader Compilation, NVIDIAApplication NVIDIA, Graphics, Global Settings > Shader Cache ; pilote GeForce Game Ready 595.97Reconstruit les shaders DirectX 12 pendant l'inactivité du système, pour réduire la compilation en jeu après une mise à jour de piloteBêta, désactivée par défaut ; billet NVIDIA du 31 mars 2026
Reset Shader Cache, AMDAMD Software: Adrenalin Edition, section Advanced SettingsSupprime tous les fichiers de cache de shaders stockésArticle de support DH3-012, mis à jour le 3 mars 2025
Advanced Shader Delivery, MicrosoftWindows 11 24H2 ou plus ; Xbox Gaming Services 37.113.11003.0 ou plus ; pilote Adrenalin 26.6.1 ou plus sur GPU AMD RDNA 1, 2, 3, 3.5 et 4Précompile les shaders D3D12 côté éditeur et les livre au téléchargement ; le libellé « Precompiled shaders installed » apparaît au lancementBillet du 15 mai 2026, mis à jour le 11 juin 2026 : disponibilité générale dans l'application Xbox PC
PSO Precaching, Unreal EngineVariable r.PSOPrecache.GlobalShaders, activée par défautCollecte et compile en asynchrone les PSO utilisables au rendu ; précompile au démarrage certains PSO de shaders globauxDocumentation Unreal Engine 5.8 d'Epic

L'écran Shader Cache de NVIDIA propose aussi une option Compile Now. J'hésite encore à conseiller la bêta NVIDIA à une machine qui change souvent de pilote : elle vise justement ce cas, mais elle reste une bêta désactivée par défaut.

Le billet NVIDIA du 31 mars 2026 annonce aussi l'ajout du DLSS 4.5 Dynamic Multi Frame Generation à l'application NVIDIA. Le DLSS 4.5 Dynamic MFG est détaillé dans un autre article du pilier, et le fonctionnement de la frame generation en explique le principe. Pour les réglages Windows autour du jeu, voir l'optimisation de Windows 11 pour le jeu. Pour le jeu sous Linux, voir Linux gaming en 2026.

Ce que ces mécanismes ne règlent pas#

Selon Epic, cité par GamingOnLinux, le précaching de PSO, apparu à titre expérimental dans Unreal Engine 5.2, évite la plupart des types de saccades de compilation. Epic reconnaît pourtant des lacunes de couverture et d'autres limites, dans ses mots : « some coverage gaps and other limitations ». Il ne faut donc pas y voir la fin de toutes les saccades.

Chez NVIDIA, Tom's Hardware note que la bêta ne supprime pas complètement les temps d'attente, et NVIDIA précise qu'après le premier téléchargement d'un jeu, les shaders doivent encore être générés en jeu.

Chez Microsoft, PC Gamer note qu'Advanced Shader Delivery précompile avant le premier lancement seulement si le jeu est téléchargé via l'application Xbox. Microsoft a annoncé le 1er octobre 2026 une extension à d'autres matériels pour le mois d'octobre ; côté NVIDIA, elle couvrira toutes les GPU RTX et RTX Spark, sans numéro de pilote. C'est une annonce, pas une fonction constatée en service. Digital Foundry, le 2 octobre 2026, cite Call of Duty: Modern Warfare 4 comme prochain jeu appelé à recevoir le système, avec une sortie prévue le 23 octobre.

Les mesures de SCSKiller restent celles d'un outil sur une carte. Pour FINAL FANTASY VII Rebirth et Hogwarts Legacy, la page de Pause Hardware compte les blocages d'au moins 20 ms. Les GPU Intel restent incompatibles avec l'outil à ce stade.

Je ne parierais pas sur un seul réglage : chaque mécanisme couvre une partie du problème, aucun ne l'efface.

Questions fréquentes#

Faut-il recompiler les shaders après une mise à jour de pilote ?#

Oui, d'après NVIDIA : la compilation est à répéter après une mise à jour de pilote GPU, comme après un correctif de jeu. Microsoft précise qu'un PSO mis en cache peut renvoyer le code D3D12_ERROR_DRIVER_VERSION_MISMATCH après une mise à jour du pilote D3D12. La bêta Auto Shader Compilation de NVIDIA reconstruit les shaders DirectX 12 pendant l'inactivité du système pour réduire cette compilation en jeu.

Que dit Valve du Shader Pre-Caching de Steam ?#

Valve a annoncé le Shader Pre-Caching dans la note de version du client du 13 décembre 2017. D'après cette note, Steam peut télécharger des shaders précompilés pour la carte graphique, quand le matériel et le pilote le permettent, afin de réduire les temps de chargement et les saccades lors des premiers lancements de jeux OpenGL et Vulkan. La même note prévoit une entrée des Paramètres pour le désactiver. Un correctif du téléchargement de ces shaders date du 15 mars 2023.

Advanced Shader Delivery arrive-t-il sur les cartes NVIDIA ?#

Microsoft a annoncé le 1er octobre 2026 une extension d'Advanced Shader Delivery à toutes les GPU RTX et RTX Spark, sans numéro de pilote. Digital Foundry et HWCooling.net relaient l'annonce pour le mois d'octobre. Le statut reste celui d'une annonce, sans mise en service constatée.

La bêta NVIDIA supprime-t-elle les temps d'attente ?#

Non : Tom's Hardware note qu'Auto Shader Compilation ne supprime pas complètement les temps d'attente. NVIDIA précise aussi qu'après le premier téléchargement d'un jeu, les shaders doivent encore être générés en jeu. Selon le billet du 31 mars 2026, la bêta est désactivée par défaut et s'active dans l'application NVIDIA, Graphics, Global Settings > Shader Cache.

Changer un réglage graphique relance-t-il la compilation ?#

Pour Borderlands 4, oui : selon IGN, repris par Yahoo Tech, Gearbox indique que tout changement de réglage graphique oblige à recompiler les shaders. Le studio demande aussi de jouer au moins 15 minutes avant de juger la performance. Cette consigne vise ce jeu.

Sources#

Lien copié dans le presse-papiers

À lire aussi