Dossier de PDB libres et archives ZIP de PDB
PIX prend en charge la localisation des fichiers PDB organisés dans un dossier sous forme d’ensemble de fichiers *.pdb libres. PIX prend aussi en charge la localisation des PDB stockés dans une archive *.zip. L’utilisation d’archives .zip pour organiser de grandes quantités de PDB peut être avantageuse selon votre système de build. Pour plus de renseignements, consultez la section Pratiques exemplaires relatives aux PDB.Pratiques exemplaires relatives aux PDB
Les systèmes de build de nuanceurs peuvent produire plus de 10 000, voire plus de 100 000 permutations, et donc un nombre énorme de PDB de nuanceurs. Quelques pratiques exemplaires peuvent améliorer considérablement les performances de PIX lors de la localisation des PDB nécessaires à une GPU Capture.- Nommez vos PDB d’après le hachage de leur nuanceur. Lors de la compilation de vos nuanceurs, vous pouvez enregistrer le PDB dans un fichier .pdb en utilisant soit un nom de fichier personnalisé, soit le hachage du nuanceur. Il est recommandé de toujours utiliser le hachage du nuanceur, car cela facilite grandement la localisation ultérieure des PDB par PIX. C’est très simple à faire :
- Envisagez d’utiliser des archives .zip pour organiser de grandes quantités de fichiers PDB, en particulier au-delà de 10 000. Au-delà de 10 000 PDB, l’organisation et l’énumération des nombreux fichiers PDB peuvent s’avérer coûteuses. PIX prend en charge l’utilisation d’archives .zip pour stocker de grandes collections de PDB et accélérer la recherche. Pour obtenir les meilleurs résultats, il est recommandé que vos archives .zip de PDB ne contiennent que des fichiers PDB (ne compressez pas toute la sortie de votre build, y compris d’autres fichiers non .pdb) et de toujours suivre la recommandation n° 1 concernant le nommage des fichiers d’après le hachage du nuanceur.
- Pour des quantités extrêmement importantes de fichiers PDB, dépassant 100 000, envisagez de répartir vos fichiers PDB dans plusieurs archives .zip en fonction de la fréquence de génération. PIX peut gagner du temps et éviter efficacement d’énumérer les archives .zip déjà analysées si elles n’ont pas changé. C’est pourquoi, avec des systèmes de build de très grande taille, il est recommandé de répartir vos fichiers PDB de nuanceurs dans plusieurs archives .zip, chacune contenant des PDB ayant une fréquence de génération similaire. Ainsi, si vous régénérez un sous-ensemble de vos nuanceurs, de nombreux nuanceurs inchangés n’auront pas besoin de mettre à jour leurs archives .zip de PDB. Comme point de départ, visez des archives .zip contenant chacune environ 5 000 à 50 000 PDB (il ne s’agit pas d’une règle stricte, mais d’un bon point de départ). Ainsi, un jeu comptant 250 000 permutations de nuanceurs peut répartir ses PDB dans quelques dizaines d’archives .zip en fonction de ses niveaux, de ses matériaux ou de son sous-système graphique. Il suffit ensuite d’indiquer à PIX le répertoire qui contient toutes les archives .zip obtenues. Pour une telle quantité de PDB, il est extrêmement important de suivre la recommandation n° 1 concernant le nommage des fichiers d’après le hachage du nuanceur pour obtenir les meilleures performances.
PDB allégés (Slim PDB)
Un PDB allégé est généré à l’aide de /Zs lors de la compilation d’un nuanceur. Le PDB obtenu ne contient que les fichiers sources et les arguments de compilation, sans les informations de débogage complètes, mais il est nettement plus petit qu’un PDB complet. Avec un PDB allégé, PIX peut afficher la source du nuanceur et les arguments de compilation, mais le débogage des nuanceurs et le HLSL en ligne sont désactivés. Pour utiliser ces fonctionnalités, vous pouvez générer un PDB complet en ouvrant le panneau Commands à partir de la barre d’outils en haut de la vue. Le nuanceur mis à jour apparaît sous forme de modification des options du compilateur par Edit-and-Continue et est intégré à la relecture. Comme pour toute autre modification, PIX met à jour le désassemblage, le minutage des événements, la sortie du rendu et tout autre élément modifié par le nouveau nuanceur. Remarque : si une version différente du compilateur est utilisée pour générer le PDB complet (PIX est fourni avec le compilateur le plus récent), des instructions IL et GPU différentes peuvent en résulter, et PIX vous signale cette différence. Pour utiliser un compilateur spécifique, vous pouvez remplacer les DLL du compilateur dans C:\Program Files (x86)\Microsoft GDK\bin\Scarlett\pixsc pour XBOX Series X|S ou dans C:\Program Files (x86)\Microsoft GDK\bin\XboxOne\pixsc pour XBOX One, puis rouvrir la capture.Enregistrer des captures GPU de PIX avec les PDB
Lorsqu’une capture GPU est ouverte dans PIX, PIX tente de charger les PDB de nuanceurs manquants à partir du chemin de recherche des PDB, comme décrit ci-dessus. Une fois que PIX a fini de localiser les PDB de nuanceurs disponibles, le fichier de capture .xpix incorpore ces fichiers PDB lors du prochain enregistrement. Si les PDB sont incorporés dans le fichier .xpix, il n’est plus nécessaire de localiser les fichiers PDB d’origine dans le chemin de recherche des PDB lors des ouvertures ultérieures de cette capture GPU. Cela peut grandement simplifier l’utilisation des captures GPU de PIX lorsqu’un collègue ou une autre personne doit les ouvrir et les analyser. La meilleure pratique consiste à enregistrer vos captures PIX lorsque le message « Shader PDB files have been resolved » s’affiche, afin que la capture GPU de PIX contienne tout ce dont elle a besoin.
