Un dossier NVIDIA caché, nommé DXCachepeut occuper 40 gigaoctets sur le disque principal d’un ordinateur sans en laisser de trace visible. La découverte a été révélée lors d'un audit de routine de l'espace sur un disque SSD et met l'accent sur un problème de gestion du cache que, comme nous le verrons, ni Disk Cleanup ni Storage Sense ne peuvent résoudre à eux seuls.
Le dossier en question réside dans AppDataLocalNVIDIAdans le profil utilisateur, et dans le cas analysé, il a accumulé 946 fichiers jusqu'à ce que ces 40 Go soient ajoutés. Pour vous donner une idée de la disproportion, l'installation complète du pilote graphique NVIDIA occupe à peine un gigaoctet. Ni l'installation d'un nouveau pilote ni la désinstallation du précédent ne touchent ce répertoire, donc les shaders compilés pour les versions qui ne sont plus installées y restent, ajoutant du poids sans que personne ne les réclame.
Ce que DXCache stocke réellement et à quoi il sert
DXCache stocke le Shaders DirectX déjà compilées, les instructions que le GPU doit traiter avant de restituer un jeu. Enregistrer cette version terminée permet à la carte d'ignorer ce travail précédent la prochaine fois que nous ouvrirons le même titre, c'est pourquoi le premier démarrage d'un jeu a tendance à être saccadé tandis que le second semble beaucoup plus fluide. Le problème ne réside pas dans la fonction elle-même, qui remplit son objectif, mais dans où et comment NVIDIA décide de la stocker.
En résidant dans le profil utilisateur et non dans le dossier du programme, DXCache est hors de portée de tout processus de mise à jour ou de désinstallation de pilote. Ceux d'entre nous qui changent fréquemment de version de pilote, par exemple pour effectuer des tests de performances, génèrent à chaque fois une nouvelle couche de shaders, et les précédentes ne se suppriment pas. Il ne disparaît pas non plus si nous supprimons les jeux qui l'ont généré, car le cache appartient au contrôleur, pas au titre : nous pouvons supprimer tout le jeu et les fichiers seront toujours là, occupant de l'espace sans aucun but.
Les outils de nettoyage de Windows ne le voient pas
Tournons-nous vers le stockage, au capteur de stockage ou le nettoyage de disque classique est courant lorsque l'on cherche à libérer de l'espace, mais aucun de ces utilitaires ne détecte les fichiers résiduels laissés par NVIDIA. Liberator inclut en fait une option appelée DirectX shader cache qui semble directement liée, mais elle efface uniquement le Dossier D3DSCache de Windows et laisse celui de NVIDIA intact.
Cette déconnexion entre les outils système et le cache du fabricant explique pourquoi le problème peut passer totalement inaperçu pendant des années. Si nous conservons les paramètres par défaut du contrôleur, nous ne remarquerons probablement rien d'inhabituel, car la limite d'usine ralentit la croissance. Le problème apparaît lorsque cette limite a été désactivée, quelque chose qui peut arriver sans s'en rendre compte si à un moment donné nous suivons des conseils génériques pour réduire les saccades dans les jeux, sans savoir que « pas de limite » signifie littéralement cela : sans aucun plafond.
Vérifiez la taille du cache depuis l'application NVIDIA
Nvidia propose un contrôle pour ce comportement, même s'il le garde assez caché. Dans l'application NVIDIA, dans Graphiques et après Paramètres globaux, nous trouvons l'option Taille du cache du shaderavec plusieurs alternatives : Désactivé, diverses limites fixes, Contrôleur par défaut ou Illimité. L'interface décrit chaque option sans joindre de chiffre spécifique, il est donc impossible de savoir, simplement en regardant le menu, combien d'espace nous autorisons à utiliser.
La valeur par défaut appliquée par NVIDIA est 16 GBune information qui n'apparaît ni dans l'application ni dans le Panneau de configuration : elle est seulement mentionnée dans un article de support sur la façon de supprimer les fichiers de cache de shader corrompus, et ce même texte ajoute que « des tailles plus grandes peuvent offrir des performances optimales avec des bibliothèques de jeux plus grandes », sans avertir à tout moment qu'il est conseillé de garder un œil sur le poids du dossier sur le disque.
Pour récupérer de l'espace, on peut localiser %Données d'application locales%NVIDIA à partir de l'Explorateur de fichiers et vérifiez l'occupation du dossier DXCache. Si le nombre est disproportionné, définir le paramètre sur une valeur spécifique ou sur Controller Default, plutôt que sur Unlimited, l'empêche de devenir incontrôlable à nouveau. La suppression du contenu existant doit être considérée comme notre responsabilité, car NVIDIA ne documente pas de procédure officielle pour ce faire ; La conséquence la plus probable est que le premier démarrage de chaque jeu prendra un peu plus de temps, le temps dont le GPU a besoin pour recompiler les shaders.
FAQ sur le dossier Nvidia DXCache C'est le dossier dans lequel Nvidia enregistre les shaders DirectX déjà compilés, afin que les jeux se chargent plus rapidement lors des exécutions ultérieures.
Parce qu'il accumule les shaders des anciennes versions du pilote et des jeux déjà désinstallés, et ni Storage Sense ni Windows Disk Cleanup ne le détectent ou ne le nettoient.
Le premier démarrage de chaque jeu prendra un peu plus de temps le temps que le GPU recompile les shaders nécessaires. Nvidia ne documente pas de procédure officielle pour ce faire, il est donc préférable de l'assumer comme une mesure sous notre responsabilité.
16 Go, une valeur qui n'est citée que dans un article du support Nvidia et qui n'est pas affichée dans l'application ou le Panneau de configuration.
Qu’est-ce que le dossier Nvidia DXCache ?
Pourquoi le dossier DXCache peut-il occuper 40 Go ?
Que se passe-t-il si nous vidons manuellement le dossier DXCache ?
Quelle est la taille par défaut du cache du shader Nvidia ?