Skip to main content
Cet article est basé sur la présentation What’s new in PIX donnée lors des XBOX Dev Days 2024. Ces informations étaient à jour en mai 2024. Plusieurs fonctionnalités ont pu être modifiées ou mises à jour depuis.
PIX on XBOX et PIX on Windows ont tous deux introduit plusieurs nouvelles fonctionnalités et améliorations pour optimiser les performances des jeux et les capacités de débogage. Cet article résume les principales mises à jour et la manière dont elles peuvent simplifier votre processus de développement.

Performances de PIX

Les performances de PIX ont été considérablement améliorées, ce qui en fait un outil précieux pour le développement de jeux. Les dernières mises à jour se sont concentrées sur la réduction du temps d’itération des développeurs, en diminuant de plus de 50 % la durée des captures et des analyses. La plupart des données de capture restent désormais sur la console jusqu’à ce qu’elles soient nécessaires, ce qui accélère le processus d’itération. De plus, de nouveaux schémas de compression sont disponibles pour les fichiers de capture GPU, ainsi que des fonctionnalités d’analyse secondaire utilisant des données mises en cache. Ces améliorations vous permettent de déboguer et d’optimiser vos jeux rapidement et efficacement, pour un flux de travail de développement plus fluide et plus simple.

PIX on XBOX et PIX on Windows : performances de l’interface utilisateur

Les améliorations des performances de l’interface utilisateur de PIX visaient à renforcer l’efficacité de l’interface de PIX on XBOX et de PIX on Windows. Des signalements de comportements saccadés et lents dans l’interface utilisateur de PIX ont conduit à une enquête. Celle-ci a révélé une utilisation sous-optimale du framework d’interface utilisateur Windows Presentation Foundation (WPF). Cette utilisation sous-optimale de WPF entraînait une charge de travail importante sur le thread principal, à l’origine de la lenteur. Pour résoudre ce problème, les efforts se sont concentrés sur un moteur PIX plus asynchrone. Davantage d’opérations sont désormais effectuées en parallèle, comme l’ouverture de fichiers ou la collecte des compteurs.

Améliorations du temps d’itération des développeurs pour les captures GPU PIX on XBOX

Mode de stockage local

Le mode de stockage local est une fonctionnalité qui améliore les temps d’itération de 50 % ou plus. Ce mode conserve la plupart des données capturées sur le disque SSD de la console. Cela réduit la quantité de données transférées lorsque vous ouvrez un fichier. Vous pouvez ainsi effectuer une analyse immédiatement, sans le délai généralement associé au transfert de données. Figure 1. Capture GPU PIX on XBOX. Capture GPU PIX on XBOX La figure 1 montre le panneau GPU Capture avec l’option Use Local Storage sélectionnée. Un avantage notable du mode de stockage local est la possibilité d’effectuer plusieurs captures, puis de choisir celles à enregistrer. Ce processus est accéléré, car la réalisation et l’analyse des captures sont rapides. Le temps n’est consacré qu’à la copie des données des captures enregistrées. Vous pouvez également utiliser le bouton Download de la capture pour lancer un transfert en arrière-plan de la capture vers le PC. Figure 2. Bouton Download d’une capture GPU PIX on XBOX. Bouton de téléchargement d'une capture GPU PIX on XBOX La figure 2 montre le bouton de téléchargement de la capture GPU mis en évidence en rouge. Cette fonctionnalité est actuellement désactivée par défaut afin de permettre des tests supplémentaires. Toutefois, nous vous encourageons à l’essayer et à envoyer vos commentaires à PIX Customer Feedback.

Performances d’analyse

Un nouveau schéma de compression a été implémenté pour les fichiers de capture GPU et tous les transferts réseau PIX. Cela améliore l’efficacité du stockage et de la transmission des données. Davantage de données sont désormais collectées en parallèle, ce qui simplifie le processus d’analyse. Une nouvelle stratégie de collecte des compteurs a été livrée en mars 2024. Auparavant, pour obtenir les moyennes, tous les compteurs de tous les niveaux et de toutes les hiérarchies étaient collectés. La collecte des données donne désormais la priorité aux événements PIX de niveau supérieur, qui sont affichés en premier. Les nœuds feuilles sont collectés plus tard en arrière-plan. Cette approche garantit que les données critiques sont rapidement accessibles. Le nombre de passes de calcul des moyennes est passé de 48 en octobre 2023 à 19 en mars 2024.

Fonctionnalités d’analyse secondaire utilisant des données mises en cache

L’analyse secondaire correspond à la deuxième exécution d’une analyse sur la même capture. En mettant en cache les données de capture sur la console et en utilisant un cache de données côté PC pour la chronologie (Timeline), vous pouvez réduire considérablement le temps nécessaire à l’analyse. Cette approche permet une collecte parallèle des données de la chronologie. Les informations critiques sont rapidement disponibles, sans qu’il soit nécessaire de récupérer les données à plusieurs reprises. Utilisez les données mises en cache pour accéder rapidement aux métriques de performances et les analyser, identifier les goulots d’étranglement et prendre des décisions éclairées pour optimiser vos jeux. Ce processus simplifié améliore non seulement les temps d’itération, mais offre également un flux de travail d’analyse plus réactif et plus efficace.

Améliorations du temps d’itération des développeurs pour les captures GPU PIX on Windows

Les performances d’analyse de PIX on Windows ont été améliorées grâce à l’affichage des données de base avant le démarrage d’une analyse. Cela simplifie le processus. Vous pouvez désormais accéder immédiatement à des informations comme les ressources liées et les objets API, ainsi qu’à des vues comme la vue d’état, les tas de descripteurs, la table des nuanceurs et la vue de l’historique des ressources. Cela fait gagner du temps et offre une expérience plus intuitive. Le temps de démarrage est désormais dix fois plus rapide dans certains scénarios par rapport aux versions antérieures de PIX on Windows. D’autres fonctionnalités de performances d’analyse sont notamment les suivantes.
  • L’onglet du pipeline se remplit désormais plus rapidement.
  • Le suivi des accès des nuanceurs (Shader Access Tracking) est désormais une fonctionnalité facultative. Pour l’activer, sélectionnez le bouton Gather Accessed Resources.
  • Les plug-ins mis à jour des fabricants de GPU ont amélioré la vitesse de collecte des données.
Nous travaillons activement pour que PIX on Windows offre les mêmes capacités que PIX on XBOX.

Débogage GPU avec PIX on XBOX

Auparavant, le débogage GPU était un scénario secondaire pour PIX. Grâce aux progrès de la technologie GPU, il s’agit désormais de l’un des scénarios les plus importants. Les dernières mises à jour du débogage GPU de PIX on XBOX introduisent plusieurs fonctionnalités puissantes conçues pour améliorer le processus de débogage et le rendre plus efficace. Les nouvelles fonctionnalités sont les suivantes :
  • Exceptions de nuanceur dans le débogage en direct
  • Exceptions de nuanceur dans les captures GPU
  • Fenêtre Invocations pour le débogage en direct
  • Surveillance des threads dans la vue Watch
  • Vues des symboles de nuanceur
  • Prise en charge du débogage des nuanceurs DirectX Raytracing (DXR)

Exceptions de nuanceur dans le débogage en direct

Vous pouvez désormais gérer les exceptions de nuanceur lors du débogage en direct. Vous pouvez :
  • Détecter les erreurs dans les programmes de nuanceur exécutés sur le GPU.
  • Identifier les problèmes dans les calculs numériques.
  • Intercepter les violations d’accès mémoire.
Lorsque l’une de ces exceptions se produit, le débogueur suspend l’exécution de votre jeu à l’endroit de l’erreur. Vous pouvez inspecter l’état du jeu, y compris les variables, la mémoire et la pile des appels. Ils vous indiquent ce qui s’est mal passé et pourquoi. Figure 3. Débogage de nuanceur en direct PIX on XBOX. Débogage de nuanceur en direct PIX on XBOX La figure 3 montre la boîte de dialogue Live Shader Debug de PIX on XBOX.

Exceptions de nuanceur dans les captures GPU

Les exceptions de nuanceur peuvent désormais être consultées dans les captures GPU. La vue des exceptions de nuanceur fournit des informations détaillées sur les exceptions survenues tout au long de l’image. Cette vue se trouve dans Tools, à côté de Dr. PIX, Shader Trace et Memory Timeline. Cette vue affiche une liste d’identificateurs graphiques (GID) où des exceptions sont levées. Pour chaque GID, la vue affiche une liste des nuanceurs dans lesquels des exceptions se produisent, identifiés par leur hachage. Développez ces entrées pour afficher toutes les exceptions levées dans ce nuanceur. Pour chaque exception, vous obtenez le nom de la fonction, la ligne de code source, la valeur du compteur de programme, le nombre d’occurrences de l’exception et le type d’exception. Vous pouvez également accéder immédiatement au débogueur pour tester chaque nuanceur. Les résultats peuvent être filtrés davantage. Par exemple, vous pouvez sélectionner une plage de GID ou un sous-ensemble de types d’exceptions, et voir quels nuanceurs sont concernés. Les exceptions de mémoire dans PIX on XBOX sont toujours en cours de développement, mais les exceptions numériques sont entièrement fonctionnelles. Figure 4. Vue Shader Exceptions. Vue Shader Exceptions La figure 4 montre la vue Shader Exceptions.

Fenêtre Invocations pour le débogage en direct

Les exceptions de nuanceur lors du débogage en direct sont désormais visibles dans les fenêtres Invocations et Watch. Vous pouvez voir l’emplacement du code source où l’exception a été levée, si le thread était actif, le type de wave (64 ou 32) et la ligne du compteur de programme. Figure 5. Fenêtre Invocations pour le débogage en direct. Fenêtre Invocations pour le débogage en direct La figure 5 montre la fenêtre Invocations pour le débogage en direct.

Threads dans la vue Watch

Une nouvelle fonctionnalité de la vue Watch affiche toutes les voies de la wave dans la vue Watch. Vous disposez ainsi d’une vue unique de l’ensemble de la wave. Auparavant, vous deviez changer l’invocation examinée pour voir les voies. Plusieurs options de configuration permettent de filtrer les résultats. Vous pouvez surveiller toutes les voies, une plage spécifique, uniquement les voies actives/inactives ou les voies appartenant à un quad. Figure 6. Vue Watch de PIX. Vue Watch de PIX La figure 6 montre la vue Watch de PIX. Figure 7. Options de configuration des voies. Options de configuration des voies La figure 7 montre les options de configuration des voies.

Vue Shader Symbols

La vue Shader Symbols remplace la boîte de dialogue contextuelle qui apparaissait auparavant à l’ouverture d’une capture. Désormais, un avertissement s’affiche, suivi d’une vue dédiée. Elle indique quels symboles sont chargés et lesquels ne le sont pas. Auparavant, seuls les éléments qui ne fonctionnaient pas étaient affichés. Il existe désormais une vue complète de ce qui est présent. Vous pouvez également ajouter et supprimer des chemins de symboles et réanalyser les chemins des bases de données du programme (PDB) si nécessaire. Figure 8. Vue Shader Symbols. Vues Shader Symbols La figure 8 montre une vue Shader Symbols avec 39 PDB de nuanceurs non résolus.

Prise en charge du débogage des nuanceurs DXR

Les nuanceurs DXR dans PIX on XBOX sont désormais au même niveau que les autres types de débogage pour la génération des PDB, la découverte de ces PDB dans PIX, leur chargement et le débogage de n’importe quelle partie du nuanceur. Les symboles des nuanceurs DXR diffèrent légèrement de ce qui est habituellement recommandé. Pour les autres étapes de nuanceur, il est recommandé d’utiliser des PDB allégés (slim). Compilez avec un ensemble d’indicateurs différent pour obtenir un PDB allégé, à partir duquel PIX peut ensuite régénérer les informations de débogage. C’est pratique, car les PDB complets sont volumineux et coûteux à utiliser. Pour DXR, nous recommandons d’utiliser des PDB incorporés. Ils fonctionnent mieux avec les outils actuels. Les nuanceurs DXR sont moins nombreux que les autres en termes de permutations. Lors d’un pas à pas détaillé dans TraceRays(), le débogueur démarre dans l’implémentation TraceRay du pilote. Poursuivez le pas à pas à partir de là, ou placez des points d’arrêt dans vos nuanceurs HLSL (High-Level Shader Language) pour accéder immédiatement à l’endroit que vous souhaitez examiner. Pour PIX on Windows, les types de nuanceurs suivants sont désormais pris en charge pour le débogage.
  • Nuanceurs RayGen
  • Nuanceurs ClosestHit
  • Nuanceurs AnyHit
  • Nuanceurs Miss

Analyse des blocages du GPU

L’analyse des blocages du GPU est essentielle pour maintenir les performances et la fiabilité des graphismes des jeux. Elle consiste à détecter et à résoudre les problèmes qui empêchent le GPU de répondre. Ces problèmes peuvent nuire considérablement à l’expérience de jeu. En analysant les blocages du GPU, vous pouvez identifier les goulots d’étranglement, optimiser les performances et vous assurer que le jeu s’exécute de manière fluide sur diverses configurations matérielles.

Analyse des blocages du GPU avec PIX on XBOX pendant le développement

L’analyse des blocages du GPU peut être l’aspect le plus difficile du développement graphique d’un jeu. Une nouvelle fonctionnalité de capture d’écran lors d’un blocage du GPU a été introduite dans le GDK de mars 2024. Elle effectue une capture d’écran du jeu si un blocage du GPU se produit sur un kit local. Cette fonctionnalité n’est actuellement pas prise en charge en environnement retail pour des raisons de confidentialité. Pour les captures en mode développeur local, ajoutez un blob au fichier .hix à l’aide de l’API Add_Blob_to_GPU_Hang_DumpX. Dans votre gestionnaire, appelez cette API pour ajouter des métadonnées personnalisées au rapport. L’avantage du fichier blob est que les studios ou les éditeurs disposent souvent de leur propre suivi et de leur télémétrie interne. Ceux-ci donnent une meilleure idée de l’endroit où se trouvaient les joueurs dans le jeu lorsque le blocage du GPU s’est produit. Cela leur permet d’ajouter du contexte à leurs investigations sur les blocages. Les événements et marqueurs PIX de développement sont les suivants.
  • PIXBeginEvent
  • PIXEndEvent
  • PixSetMarker

Analyse des blocages du GPU en environnement retail

En environnement retail, les vidages de blocage (fichiers .hix) sont disponibles dans Partner Center. Ces fichiers capturent des informations sur le matériel et le jeu, analysent automatiquement le vidage de blocage, puis indiquent la cause racine du blocage. Cette approche unifiée du débogage hors connexion et en direct dans PIX améliore l’efficacité du débogage GPU.
Contactez votre Developer Partner Manager (DPM) pour obtenir l’accès aux fichiers .hix.
Les événements et marqueurs PIX Retail sont les suivants.
  • PixBeginRetailEvent
  • PixEndRetailEvent
  • PIXSetRetailMarker
Sur les appareils de débogage et instrumentés, les API Retail fonctionnent de la même manière que leurs équivalents non retail. L’utilisation des marqueurs PIX Retail entraîne une baisse des performances, similaire à celle des marqueurs PIX standard.

Analyse des performances du GPU

L’analyse des performances du GPU à l’aide de PIX fait appel à plusieurs éléments clés qui vous aident à optimiser et à déboguer vos jeux pour de meilleures performances et une plus grande stabilité. Les principaux composants sont les suivants.
  • GPU Captures : enregistre tous les appels de l’API Direct3D 12 effectués par le jeu, y compris leurs données de paramètres. Cela vous donne accès à un ensemble de fonctionnalités de débogage et d’analyse.
  • Timing Captures : combine les données de profilage du CPU et du GPU dans une seule capture pour une analyse approfondie du jeu. Ces données sont collectées pendant l’exécution du jeu avec une surcharge minimale.
  • Shader Explorer : aide à améliorer les performances des nuanceurs et l’utilisation des registres, et à itérer dessus. Vous pouvez l’utiliser à partir d’une capture GPU, d’une source de nuanceur HLSL ou d’un fichier .pdb de nuanceur.
  • Identification des goulots d’étranglement : fournit des outils comme GPU Trace pour la mesure de l’occupation et l’identification des goulots d’étranglement.
  • Gestion de la mémoire et des ressources : fournit une vue API Objects Summary plus rapide, de nouvelles fonctionnalités comme la vue Texture MIP Statistics, et plus encore.
  • Raytracing : inclut de nouvelles fonctionnalités comme la coloration selon le coût de l’heuristique de surface et des cartes thermiques par instance pour une analyse détaillée dans l’Acceleration Structure Viewer.

Analyse des performances avec PIX on XBOX : GPU Trace

L’outil GPU Trace offre un moyen rapide et complet d’obtenir une vue d’ensemble de haut niveau de la mesure de l’occupation et de la collecte des compteurs de goulots d’étranglement. Cela se fait sans effectuer ni relire une capture GPU. L’une des principales caractéristiques de cet outil est que les mesures de performances et les chronologies proviennent de l’exécution réelle du jeu. GPU Trace enregistre les performances telles qu’elles se sont produites dans le jeu en cours d’exécution, fournissant des données plus précises pour les charges de travail complexes qui se chevauchent. À l’inverse, les captures GPU relisent le travail du GPU et peuvent passer à côté de petits détails de performances liés à l’interaction et à la synchronisation entre le CPU et le GPU. Pour plus d’informations sur GPU Trace, consultez Investigation rapide des performances avec GPU Trace. Figure 9. Outil GPU Trace. Outil GPU Trace La figure 9 montre un exemple de l’outil GPU Trace de PIX on XBOX. Lors de la capture de données GPU, commencez par examiner les voies d’exécution des files d’attente de commandes du GPU. Elles montrent les différents événements exécutés pendant la capture sur chaque file d’attente active. Figure 10. Voies d’exécution de GPU Trace. Voies d'exécution de GPU Trace La figure 10 montre la file d’attente Graphics, trois files d’attente Compute et le visualiseur de contexte GPU. Figure 11. Voies d’occupation de GPU Trace. Voies d'occupation de GPU Trace La figure 11 montre la vue d’occupation. Elle révèle l’occupation non seulement pour le moteur de nuanceurs 0, comme dans une capture GPU classique, mais aussi avec un niveau de détail plus fin, par tableau de nuanceurs, par processeur de groupe de travail et même par unité SIMD (Single Instruction Multiple Data). Les données d’occupation peuvent être codées par couleur en fonction de l’étape de l’API. Par exemple, le jaune représente les waves de calcul. Le vert représente les waves de vertex. Il s’agit du jeu de couleurs par défaut, mais il peut être remplacé par un autre mode de visualisation. Par exemple, le mode Wave affiche Wave32 dans une couleur et Wave64 dans une autre. Le mode Active Threads colore les waves en fonction du pourcentage de threads actifs dans la wave. Vous pouvez également développer chaque SIMD pour afficher la répartition des waves tout au long de l’événement. Cela vous aide à identifier des problèmes habituellement difficiles à détecter, comme les déséquilibres de waves entre les SIMD. Figure 12. Occupation des waves dans GPU Trace. Occupation des waves dans GPU Trace La figure 12 montre la vue d’occupation des waves de GPU Trace. Les compteurs matériels et logiciels peuvent être représentés graphiquement dans la chronologie. Pour capturer ces compteurs, sélectionnez-les avant de démarrer la trace GPU. Vous pouvez ainsi identifier rapidement et précisément les goulots d’étranglement, comme les blocages élevés du cache de paramètres ou les baisses d’efficacité des accès au cache. Figure 13. Compteurs matériels de GPU Trace. Compteurs matériels de GPU Trace La figure 13 montre les compteurs matériels de GPU Trace.

Shader Explorer

La fonctionnalité Shader Explorer est devenue publique avec le GDK d’octobre 2023. Utilisez-la pour examiner les facteurs qui influent sur les performances des nuanceurs, comme la pression et la durée de vie des registres, le mappage des variables aux registres, le coût d’exécution des instructions, les taux d’émission, et plus encore. Shader Explorer est conçu pour l’itération rapide sur les nuanceurs : vous pouvez ainsi expérimenter différentes approches et déterminer celle qui fonctionne le mieux. Commencez à utiliser Shader Explorer à partir d’une capture GPU, d’une source de nuanceur HLSL ou d’un fichier .pdb de nuanceur. Utilisez une capture GPU pour apporter diverses modifications dans l’outil, puis réinjectez-les dans la capture pour voir immédiatement leurs effets dans l’image. Pour plus d’informations sur Shader Explorer, consultez Optimisation des performances des nuanceurs avec le Shader Explorer de PIX.

Identification des goulots d’étranglement

Le GDK de mars 2024 a introduit une fonctionnalité de goulot d’étranglement du cache de paramètres qui permet de visualiser les zones où le cache de paramètres peut être sous pression. À mesure que le cache se remplit, le système peut ralentir, ce qui peut affecter la vitesse et l’efficacité des exportations de waves. Cela peut entraîner des temps d’exportation plus longs, voire des échecs si le système ne parvient pas à allouer les ressources nécessaires. L’identification des goulots d’étranglement est essentielle pour récupérer des performances dans le jeu. Pour plus d’informations et des exemples de goulots d’étranglement, consultez Conseils et astuces sur les performances du GPU.

Raytracing

PIX on XBOX DXR : Acceleration Structure Viewer

L’Acceleration Structure Viewer de PIX on XBOX a été amélioré. Les nouvelles fonctionnalités sont notamment les suivantes :
  • Une coloration reflétant les coûts de l’heuristique de surface (SAH) ou les branches.
  • Une vue de carte thermique par instance pour trouver facilement les possibilités d’optimisation.
  • Une section modifiable de la structure d’accélération de niveau supérieur (TLAS) permettant de modifier les entrées de la TLAS et de voir la hiérarchie de volumes englobants (BVH) qui en résulte ainsi que son effet sur les temps d’exécution.
Figure 14. Acceleration Structure Viewer de PIX on XBOX. Acceleration Structure Viewer de PIX on XBOX La figure 14 montre l’Acceleration Structure Viewer de PIX on XBOX. Pour des informations détaillées sur cette vue et sur DXR sur XBOX, consultez Raytracing XBOX : performances et optimisation.

PIX on Windows DXR : Acceleration Structure Viewer

L’Acceleration Structure Viewer de PIX on Windows dispose désormais d’une vue de visualisation des rayons, qui permet de voir comment les rayons sont projetés sur la géométrie, puis de les suivre. Chaque rayon tracé est appelé par un appel spécifique à DispatchRays() dans la liste des événements. Cela représente à la fois les rayons primaires et secondaires. Toutefois, contrairement à PIX on XBOX, les fonctionnalités de couleur des rayons et de carte thermique ne peuvent pas être implémentées ici en raison d’informations limitées sur les BVH. De plus, il n’y a pas d’horodatage dans HLSL sur PC. Une nouvelle vue arborescente de la hiérarchie est également disponible. Elle affiche les instances et les géométries qui composent votre TLAS et vos structures d’accélération de niveau inférieur (BLAS). Cette vue contient des informations sur chaque instance ou géométrie, notamment sa taille, ses indicateurs, sa transformation et d’autres propriétés. Vous pouvez également afficher ou masquer chaque instance ou géométrie individuelle dans la visionneuse et trier vos BLAS par taille dans la TLAS. Figure 15. Acceleration Structure Viewer de PIX on Windows. Acceleration Structure Viewer de PIX on Windows La figure 15 montre l’Acceleration Structure Viewer de PIX on Windows. PIX on Windows dispose également d’une fonctionnalité de vue Invocations. Utilisez cette vue pour afficher toutes les invocations de nuanceurs ClosestHit, AnyHit, Miss ou Callable pour un événement DispatchRays() spécifique. Cette vue fournit également des informations pertinentes sur l’origine du rayon, les indices de dispatch, le type de nuanceur et la direction. Figure 16. Vue Invocations de PIX on Windows. Vue Invocations de PIX on Windows La figure 16 montre la vue Invocations de PIX on Windows.

Mémoire et ressources

PIX offre plusieurs fonctionnalités puissantes pour vous aider à comprendre et à optimiser l’utilisation de la mémoire. C’est particulièrement important pour les plateformes dont la mémoire est limitée, comme la XBOX Series S. Une mise à jour du GDK de mars 2024 a fourni 500 Mo de mémoire supplémentaires pour ces consoles, offrant davantage de flexibilité dans la gestion des ressources.

Vue API Objects Summary de PIX on XBOX

La vue API Objects Summary de PIX on XBOX affiche tous les objets de l’API Direct3D d’une capture. Auparavant, cette vue présentait des problèmes de performances et était difficile à parcourir en raison du grand nombre d’objets. La vue API commence désormais par une vue récapitulative qui se remplit plus rapidement que la vue détaillée. Vous pouvez toujours basculer entre les deux vues dans l’interface utilisateur. Figure 17. Vue API Objects Summary de PIX on XBOX. Vue API Objects Summary de PIX on XBOX La figure 17 montre la vue API Objects Summary de PIX on XBOX. Des pivots ont également été ajoutés à la vue récapitulative. Utilisez-les pour trouver rapidement les informations dont vous avez besoin. Ils permettent d’identifier plus facilement les éléments qui consomment le plus de mémoire, comme les objets de type ressource. Par exemple, procédez comme suit pour déterminer quelles ressources occupent le plus de mémoire.
  1. Accédez à la vue API Object Summary.
  2. Appliquez un filtre pour n’afficher que les ressources.
  3. Recherchez la colonne Size.
  4. Sélectionnez l’en-tête de la colonne de taille pour trier les éléments par taille.
Figure 18. Vue API Objects Summary de PIX on XBOX filtrée par taille. Vue API Objects Summary de PIX on XBOX filtrée par taille La figure 18 montre la vue API Objects Summary avec la colonne Size mise en évidence.

Vue Pipeline State Object

La vue Pipeline State Object est disponible depuis le GDK de juin 2023. Les performances et la précision de cette vue ont été continuellement améliorées. L’une des principales fonctionnalités est le bouton de filtre. Il exclut tous les objets d’état de pipeline (PSO) inutilisés de la capture, pour n’afficher que ceux qui sont utilisés. Cela rend la vue beaucoup plus utile lors d’une capture GPU. Un onglet d’historique indique désormais quels GID utilisent le PSO sélectionné. Vous pouvez également sélectionner l’étape de nuanceur dans un menu déroulant, et la section du milieu affiche les nuanceurs liés à ce PSO. Cette vue inclut également les modifications apportées dans PIX aux sources des nuanceurs. Figure 19. Vue Pipeline State Object de PIX on XBOX. Vue Pipeline State Object de PIX on XBOX La figure 19 montre la vue Pipeline State Object avec le menu déroulant des étapes de nuanceur et le bouton Filter encadrés en rouge.

Vue Texture MIP Statistics de PIX on XBOX

La vue Texture MIP Statistics fournit des informations précieuses sur le nombre de requêtes d’extraction de texture reçues par chaque ressource. Pour une capture GPU, cette vue affiche toutes les requêtes de MIP adressées à cette ressource pendant la lecture et indique le niveau de MIP le plus élevé demandé. Cette vue est utile pour les investigations de performances. Elle peut aider à déterminer si une ressource crée inutilement des MIP qui ne sont jamais demandés, ou s’il existe une texture pour laquelle seul le MIP 0 est demandé. Ces informations peuvent constituer un point de départ pour optimiser l’utilisation des ressources. Figure 20. Vue Texture MIP Statistics. Vue Texture MIP Statistics de PIX on XBOX La figure 20 montre la vue Texture MIP Statistics.

Vue Edits de PIX on XBOX

La vue Edits est un outil complet de suivi des modifications. Utilisez-la pour accéder à toutes les modifications en cours, les annuler et afficher la liste de tous les GID concernés par ces modifications. Cette vue est particulièrement utile pour apporter des modifications sans avoir à les rechercher ensuite. Cliquez avec le bouton droit sur une modification pour la comparer à la source d’origine. Cela fournit une différence entre le nuanceur d’origine et la version modifiée. Vous pouvez utiliser votre outil de comparaison de fichiers préféré, comme WinDiff ou Beyond Compare. Configurez-le dans les paramètres généraux, et PIX utilisera votre outil par défaut pour comparer les modifications. Figure 21. Vue Edits. Vue Edits de PIX on XBOX La figure 21 montre la vue Edits avec l’option Compare with original source encadrée en rouge.

Vues en direct de la mémoire et des ressources

De nouvelles vues en direct ont été ajoutées pour la gestion de la mémoire et des ressources. Auparavant, le System Monitor de PIX affichait les compteurs, la vue Remote View et l’état de la connexion. Les vues des captures GPU sont intégrées au mode de vue en direct.

Vues GPU en direct de PIX on XBOX

Figure 22. Vues GPU en direct de PIX on XBOX. Vues GPU en direct de PIX on XBOX La figure 22 montre la vue GPU en direct de PIX on XBOX. Le bouton lecture/pause (encadré en rouge) se trouve à côté de l’indicateur d’état. Il indique que le kit de développement est connecté. Pour afficher le contenu des vues Live Tools, mettez le jeu en pause. Live Tools se trouve dans l’onglet à côté de System Monitor.

Graphiques d’allocation de mémoire en direct

Les graphiques d’allocation de mémoire affichent des informations détaillées sur l’utilisation de la mémoire par votre jeu. Cela inclut la répartition de la mémoire entre le jeu et le système, ainsi que son utilisation pour les textures, les cibles de rendu et les tampons. Cette fonctionnalité est conçue pour améliorer les économies de mémoire sur les consoles XBOX Series S. Figure 23. Graphiques d’allocation de mémoire en direct. Graphiques d'allocation de mémoire en direct de PIX on XBOX La figure 23 montre les graphiques d’allocation de mémoire en direct de PIX on XBOX.

Vue Live API Objects

La vue Live API Objects a été intégrée à la section Live Tools. En mettant le jeu en pause et en triant par taille, vous pouvez rapidement identifier les éléments volumineux et voir ce qui est chargé et ce qui ne l’est pas. Effectuez ces vérifications directement à partir de la vue en direct. Cela évite d’avoir à effectuer une capture GPU. Figure 24. Vue Live API Objects de PIX on XBOX. Vue Live API Objects de PIX on XBOX La figure 24 montre la vue Live API Objects de PIX on XBOX. Les fonctionnalités introduites dans le GDK d’octobre 2023 sont désormais complétées par le Texture Viewer dans les vues en direct. Il a été publié avec le GDK de mars 2024. Cette nouvelle fonctionnalité affiche les images dans le Texture Viewer lorsque vous sélectionnez des objets API. Vous pouvez évaluer le contenu des pixels, la taille, le format et la distribution des couleurs à l’aide de la section histogramme. L’objectif de cette vue est de vous aider à identifier rapidement les problèmes, comme de grandes textures monochromes qui auraient pu être laissées par erreur. Ce processus s’effectue en dehors d’une capture GPU. Vous bénéficiez ainsi d’investigations rapides et de meilleurs temps d’itération. Figure 25. Texture Viewer en direct de PIX on XBOX. Texture Viewer en direct de PIX on XBOX La figure 25 montre le Texture Viewer de PIX on XBOX.

Extensibilité de Mesh Viewer et Texture Viewer dans PIX on XBOX

L’extensibilité de Mesh Viewer et Texture Viewer est une nouvelle fonctionnalité introduite dans PIX on XBOX en août 2024. PIX offre plusieurs moyens de visualiser les textures dans un appel draw ou dispatch. Par exemple, l’extensibilité de Mesh Viewer et Texture Viewer permet d’afficher les cibles de rendu en mode filaire, de voir le surdessin (overdraw) de chaque pixel ou de déterminer quels pixels ont été dessinés ou non dans l’événement en cours. Cette nouvelle fonctionnalité fournit des visualisations personnalisées à l’aide de nuanceurs de calcul pour les tampons et les textures. Chaque fois que vous sélectionnez une ressource de texture ou de tampon dans la vue du pipeline de PIX, vous pouvez changer de visualisation en choisissant parmi une liste d’options personnalisées disponibles dans le menu déroulant de visualisation. Figure 26. Menu déroulant de visualisation. Menu déroulant de visualisation La figure 26 montre le menu déroulant de visualisation et ses options. Des exemples de visualisations personnalisées sont inclus dans le dossier Extensibility du répertoire des binaires du GDK. Ces exemples servent d’échantillons dont vous pouvez vous inspirer, que vous pouvez modifier selon vos besoins, puis dont vous pouvez voir les résultats dans PIX.

Activer la visualisation de Mesh Viewer et Texture Viewer

La fonctionnalité de visualisation de Mesh Viewer et Texture Viewer est désactivée par défaut. Vous pouvez la réactiver dans les paramètres de PIX. Pour localiser vos nuanceurs personnalisés, ajoutez leur emplacement aux chemins d’extensibilité. Vous devrez fournir les fichiers d’en-tête appropriés si vous souhaitez exposer les fichiers d’en-tête de votre projet aux nuanceurs de calcul, par exemple pour référencer un tampon constant que vous avez défini dans votre projet. Figure 27. Activer la visualisation de Mesh Viewer et Texture Viewer. Activer l'extensibilité de Mesh Viewer et Texture Viewer La figure 27 montre la case à cocher Enable Custom Mesh and Texture Viewer Visualization ainsi que les chemins d’extensibilité et de recherche.

Modèle de programmation de l’extensibilité

PIX compile les nuanceurs de façon à vous donner accès à toutes les ressources liées par l’appel. Des registres spéciaux donnent accès à toutes les ressources disponibles pour l’appel draw ou dispatch sélectionné. En voici quelques exemples :
  • PixExt_SelectedResourceRegister : donne accès à la ressource actuellement sélectionnée dans la vue du pipeline
  • PixExt_RenderTargetRegister0 : RTV0
  • PixExt_IndexBufferRegister : tampon d’index
  • PixExt_VertexBufferRegister0 : tampon de vertex 0
  • PixExt_IndirectArgs : tampon d’arguments indirects
Les données obtenues sont renvoyées au Texture Viewer et au Mesh Viewer à l’aide de fonctions spéciales. En voici quelques exemples :
  • void PixExt_StorePixel_Int(uint2 offset, int4 pixel)
  • void PixExt_StoreVertex(uint offset, float4 vertex)

Déclaration de fonction d’extensibilité

La visualisation est définie dans un nuanceur de calcul que vous fournissez. PIX réinterprète les données d’entrée et génère un maillage ou une image. La structure PixExt_ComputeInput est une struct d’assistance facultative qui peut être fournie au point d’entrée du nuanceur de calcul. Celui-ci doit être nommé main. Cette struct encapsule les valeurs système habituelles d’un nuanceur de calcul et est illustrée dans l’exemple suivant.

Exemples d’extensibilité du Texture Viewer

Voici un exemple de nuanceur de calcul inclus dans le GDK de mars 2024. Il recherche les valeurs NaN et colore en magenta tous les pixels trouvés.
L’appel d’API PixExt_SelectedResourceRegister référence la ressource sélectionnée dans la vue du pipeline. Il n’est donc plus nécessaire de pointer manuellement vers cette ressource depuis le nuanceur de calcul. Dans l’exemple suivant, la valeur de la texture d’entrée est chargée en utilisant l’ID du thread de dispatch comme coordonnées de texture.
Dans l’exemple suivant, l’appel d’API PixExt_StorePixel_Float écrit dans la ressource de sortie. Il s’agit d’une texture pour le visualiseur de textures. Pour le visualiseur de maillages, la sortie est une paire de tampons d’index et de vertex utilisée par PIX pour effectuer le rendu du maillage de sortie.

Prise en charge des fonctionnalités Direct3D

La prise en charge des fonctionnalités Direct3D a été ajoutée à PIX on XBOX et à PIX on Windows, comme indiqué dans le tableau suivant. Les barrières améliorées font partie de la prise en charge des fonctionnalités Direct3D dans PIX on XBOX depuis le GDK de mars 2023. La prise en charge des vues ordonnées par rastérisation (ROV) a été introduite dans le GDK de mars 2024. Cette fonctionnalité indique quand des ROV sont utilisées dans un nuanceur. Les ressources liées apparaissent comme des ROV au lieu de vues d’accès non ordonné (UAV) standard. Prise en charge de DirectML dans PIX on XBOX. Pour plus d’informations, contactez votre gestionnaire de compte Microsoft. PIX on Windows prend en charge les barrières améliorées, les ROV et DirectML. La prise en charge a également été ajoutée pour les graphes de travail, les tas de chargement GPU, l’échantillonnage non normalisé et l’utilisation de plusieurs appareils Direct3D dans un jeu.

Performances des Timing Captures PIX

Les performances des Timing Captures ont été améliorées grâce à l’accélération du chargement des symboles et à la refonte des événements PIX afin de réduire la surcharge du CPU.

Fonctionnalités des Timing Captures

Outre les améliorations des performances, de nouvelles fonctionnalités ont été ajoutées aux Timing Captures. En voici la liste.
  • Vue Summary
  • Checklist
  • Timing Captures circulaires
  • Vue Memory
  • Consolidated Events Editor de la vue Metrics
  • Graphe en flammes des fonctions échantillonnées

Vue Summary

La vue Summary a été enrichie pour fournir davantage d’informations qu’auparavant. Figure 28. Vue Summary. Vue Summary Dans la figure 28, les détails du fichier, notamment l’emplacement du fichier, les versions de récupération et du GDK, le type de pilote graphique et la taille des pools de mémoire du GPU et du CPU, sont affichés dans le coin supérieur gauche. Les valeurs d’utilisation et de disponibilité de la mémoire du CPU sont affichées dans le coin supérieur droit. Le coin inférieur gauche affiche les cinq événements PIX ayant le plus grand nombre d’occurrences. Les pourcentages d’utilisation du CPU sont représentés graphiquement par cœur dans le coin inférieur droit. Figure 29. Vue Summary d’une capture GPU. Vue Summary d'une capture GPU Dans les captures GPU, aucun marqueur n’est affiché. La figure 29 montre les événements PIX de niveau supérieur les plus longs, les images les plus longues et des liens vers les événements de la capture, situés respectivement dans les vues en haut à gauche, en haut à droite et en bas. Figure 30. Vue Summary des plus grands objets API alloués. Vue Summary des plus grands objets API alloués Dans la figure 30, la vue Summary affiche les plus grands objets API alloués pendant la capture et fournit une vue d’ensemble de l’utilisation des threads/cœurs du CPU. Elle montre l’utilisation des cœurs par les différents threads. Les noms des threads sont répertoriés dans la colonne la plus à gauche. La vue Summary propose également une vue plus détaillée de l’utilisation des threads ou des cœurs du CPU par rapport à l’utilisation générale des cœurs du CPU, comme illustré dans la figure 31. Figure 31. Vue Summary de l’utilisation des threads/cœurs du CPU. Vue Summary de l'utilisation des threads/cœurs du CPU

Checklist

La fonctionnalité Checklist de PIX est générée à l’aide des captures GPU. Depuis le GDK d’octobre 2023, elle a également été étendue aux Timing Captures CPU. Des règles de détection sont en cours d’ajout. Vous pourrez ajouter vos propres règles personnalisées. Figure 32. Vue Checklist. Vue Checklist La figure 32 montre un exemple de la Checklist et de ses règles.

Timing Captures circulaires

Le mode Circular Timing Capture a été introduit dans le GDK d’octobre 2023. Ce mode s’appelait auparavant Continuous Timing Captures. Utilisez ce mode pour démarrer une capture et la laisser s’exécuter. Seules les dernières secondes de la capture sont enregistrées une fois que vous l’arrêtez. Ce mode est particulièrement utile pour capturer des problèmes de longue durée difficiles à détecter, comme un comportement intermittent qui semble présenter des bogues survenant de manière aléatoire après de longues périodes de jeu. Des API permettant de prendre en charge ce mode par programmation ont été publiées dans la version de mars 2024. Vous pouvez ainsi intégrer ce mode à vos scénarios d’automatisation. Toutefois, les données d’horodatage du GPU ne sont pas prises en charge dans ce mode. Il n’est actuellement pas prévu de les intégrer. Si cette fonctionnalité vous serait utile, contactez l’équipe PIX. Figure 33. Timing Captures circulaires. Timing Captures circulaires La figure 33 montre la boîte de dialogue permettant d’activer les Timing Captures circulaires.

Vue Memory

Une nouvelle vue Memory est disponible dans les Timing Captures depuis le GDK de mars 2024. Elle constitue un outil puissant pour analyser l’utilisation de la mémoire dans vos projets de développement de jeux. Elle vous permet d’enregistrer des informations détaillées sur les allocations de mémoire et d’identifier les fuites de mémoire potentielles. Pour activer cette fonctionnalité, activez au moins l’un des types d’allocation ou des événements de défaut de page. Après avoir activé les paramètres nécessaires, exécutez la Timing Capture comme d’habitude. Une fois la capture terminée, la vue Sample Memory Access s’affiche. Elle présente les allocations effectuées par le jeu pendant la capture. Cette vue fournit des informations sur l’emplacement des allocations au fil du temps et sur le type d’allocation (CPU, GPU ou outils). Notez qu’il s’agit d’une approche par échantillonnage : elle peut donc ne pas capturer 100 % des allocations. Figure 34. Paramètres d’activation de la vue Memory. Activer la vue Memory La figure 34 montre les paramètres d’activation de la vue Memory. Figure 35. Vue Sample Memory Access. Vue Sample Memory Access La figure 35 montre le type d’allocation analysé et la plage de temps sélectionnée dans le coin supérieur droit. La série de rectangles violets représente les mappages de mémoire. Le bleu correspond aux allocations CPU, le violet au GPU et le gris aux outils. Chaque case de la carte représente une allocation de mémoire à une adresse spécifique. La taille de chaque case est proportionnelle à la taille de l’allocation. Une description textuelle du bloc s’affiche lorsque vous pointez sur la case. Vous pouvez filtrer les allocations affichées selon les propriétés suivantes.
  • Plage de temps
  • Taille de page mémoire (par exemple, n’afficher que les allocations de 64 Ko)
  • Désignation (CPU, GPU ou outils)

Consolidated Events Editor

La fonctionnalité Consolidated Events Editor de la vue Metrics regroupe automatiquement les événements de plusieurs images à l’aide de modèles de regroupement spécifiés. Modifiez l’expression régulière pour l’adapter à vos conventions de nommage. Par exemple, vous pouvez nommer vos événements selon un modèle de numérotation séquentielle (update1 dans frame1, update2 dans frame2 et update3 dans frame3). Vous pouvez facilement les regrouper à l’aide d’une expression régulière. Utilisez-les pour analyser l’ensemble des événements en tant que groupe. C’est utile pour identifier les valeurs aberrantes ou d’autres tendances qui pourraient ne pas être visibles en examinant un seul événement. Figure 36. Consolidated Events Editor de la vue Metrics. Consolidated Events Editor de la vue Metrics La figure 36 montre un exemple du Consolidated Events Editor.

Graphe en flammes des fonctions échantillonnées

Les graphes en flammes des fonctions échantillonnées sont une nouvelle fonctionnalité de PIX. Ces graphes affichent les fonctions appelées pendant un événement, à l’aide du graphe qui apparaît directement sous les noms des événements. Le graphe est généré à partir d’échantillons : un taux d’échantillonnage plus élevé offre donc une plus grande précision. Les graphes en flammes sont utiles pour visualiser l’arborescence complète des fonctions appelées et leur durée approximative dans la chronologie. Figure 37. Graphe en flammes des fonctions échantillonnées. Graphe en flammes des fonctions échantillonnées La figure 37 montre un exemple de graphe en flammes.

Dispositions de PIX

Les dispositions de PIX sont personnalisables. La figure 38 montre la disposition d’une vue dans PIX et met en évidence les éléments personnalisables. Une vue se compose d’un en-tête d’emplacement et d’un ou plusieurs emplacements. Vous pouvez déplacer des vues dans n’importe quel en-tête d’emplacement et les sélectionner pour les afficher dans l’emplacement associé. Si aucun autre emplacement n’est regroupé dans une zone spécifique de l’écran, un emplacement peut être affiché sans en-tête. Figure 38. Disposition de PIX. Dispositions de PIX

Emplacements réductibles

La figure 39 montre comment réduire des vues en sélectionnant le bouton Moins dans l’en-tête de l’emplacement. Sélectionnez à nouveau ce bouton pour restaurer l’emplacement. Figure 39. Emplacements réductibles Emplacements réductibles

Activer le mode de conception de la disposition

La figure 40 montre l’icône permettant de réorganiser vos vues. Sélectionnez l’icône Design Mode à côté du nom et de l’adresse IP du kit de développement connecté pour commencer. Figure 40. Activer le mode de conception de la disposition. Activer le mode de conception de la disposition

Mode de conception

La figure 41 montre la boîte de dialogue qui s’affiche lorsque le mode de conception est activé. Notez les boutons New Window et New Tab mis en évidence en vert. Pour plus d’informations sur le mode de conception de la disposition, consultez Configuration de l’interface utilisateur de PIX. Une option permettant d’enregistrer vos dispositions préférées a été ajoutée. Il arrive qu’une nouvelle version du GDK rétablisse la disposition par défaut de PIX afin de présenter les changements pertinents. Si vous installez un nouveau GDK et préférez votre vue personnalisée à la vue par défaut, vous pouvez facilement revenir à votre disposition enregistrée en la sélectionnant dans le menu. Figure 41. Mode de conception. Mode de conception

Boîte de dialogue des dispositions alternatives

La figure 42 montre la boîte de dialogue permettant de restaurer des dispositions alternatives. Figure 42. Boîte de dialogue des dispositions alternatives. Boîte de dialogue des dispositions alternatives

Étapes suivantes

Si vous souhaitez consulter les supports de présentation liés à cette vue d’ensemble, téléchargez les fichiers suivants depuis XBOX Developer Download Secure Data Storage (SDS).
  • Diaporama : G03.EN_Whats_New_In_PIX.XboxDevDays2024.pptx dans Dev Days 2024 US Graphics Track Presentations (en-US) (May 2024) (DevDays2024USGraphicsTrackPresentations-en-US-May2024.ZIP)
  • Présentation vidéo : G03US.EN_WhatsNewInPIX.XDD2024.mp4 dans DevDays2024-enGraphicsTrackVideos-DD.EN.2024.05.ZIP

Télécharger les présentations Microsoft PowerPoint et les vidéos

  1. Accédez à Téléchargements du Game Development Kit (GDK).
  2. Sous Select file type, sélectionnez Conference Materials, puis Confirm.
  3. Sous Select build/version number, choisissez les présentations graphiques suivantes.
    • Dev Days 2024 US Graphics Track Presentations (en-US) (May 2024)
    • Dev Days 2024 (en) Graphics Track Videos (DD.EN.2024.05)
  4. Sélectionnez Download Now, puis attendez la fin du téléchargement du fichier .zip.
  5. Accédez à votre dossier Téléchargements local, puis décompressez (extrayez) les fichiers du dossier compressé.

Voir aussi

PIX Découverte de la nouvelle Checklist de PIX Améliorations de PIX pour XBOX
Last modified on October 6, 2026