> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Découverte de la nouvelle PIX Checklist : les performances GPU en toute simplicité

> Découverte de la nouvelle PIX Checklist : les performances GPU en toute simplicité

Performance Investigator for XBOX (PIX) est un outil d'analyse des performances et de débogage destiné aux développeurs de jeux qui créent des titres DirectX 12. Cette rubrique présente la vue PIX Checklist (démos un et deux) et décrit cinq exemples de cas d'usage (démos trois à sept).

La nouvelle fonctionnalité PIX Checklist est votre guichet unique pour l'optimisation GPU. Il s'agit d'une liste organisée de bonnes pratiques, dont toutes les violations sont signalées directement dans la capture. Découvrez comment PIX a automatisé de nombreuses vérifications de performances qui conduisent le plus souvent à des optimisations et améliorations lors des revues de performances GPU courantes des jeux.

<Note>
  Ces informations étaient à jour en avril 2022. Plusieurs fonctionnalités ont été modifiées ou mises à jour depuis.
</Note>

<a id="introducing-the-pix-checklist" />

## Présentation de PIX Checklist

PIX Checklist fournit des conseils automatisés sur les performances et l'exactitude GPU. Les données de profilage capturées par PIX peuvent être utilisées pour analyser les problèmes de performances GPU, CPU, mémoire et E/S de fichiers. PIX Checklist a été livré dans le Microsoft Game Development Kit with XBOX Extensions (GDKX) d'avril 2021 et a été amélioré dans les versions suivantes. Si vous utilisez encore la version GDK d'avril 2021, effectuez la mise à jour immédiatement.

PIX Checklist est disponible uniquement sur XBOX Series X|S. XBOX One X n'a pas été inclus, car cela aurait pris du temps d'ingénierie au détriment de XBOX Series X|S. Toutefois, les conseils de performances sont souvent les mêmes pour les deux plateformes.

### Avantages de l'automatisation

L'automatisation peut détecter les éléments suivants :

* Les problèmes que vous ne vérifiez pas
* Les petits problèmes qui se produisent de nombreuses fois
* Les problèmes qui nécessitent une connaissance de l'ensemble de la capture

PIX peut détecter des éléments que vous ne vérifiez pas. Certains semblent si improbables que vous ne penseriez peut-être pas à les vérifier. Par exemple, sur XBOX Series X, il existe deux types de mémoire GPU : optimale et standard. On a tendance à supposer que tout ce qui figure dans une capture GPU se trouve en mémoire optimale, mais ce n'est pas toujours le cas. Vous ne le vérifiez peut-être pas, mais PIX peut le faire pour vous.

PIX peut vérifier de petits éléments qui se produisent de nombreuses fois. Pris individuellement, ils n'ont pas beaucoup d'effet. Cependant, savoir qu'ils se produisent si souvent peut être important. Récemment, l'ATG a remarqué deux cas où un titre réinitialisait la valeur de référence du stencil à chaque draw. Si vous le voyez dans un seul draw, ce n'est pas grave. Si vous le voyez dans chaque draw, cela devient un problème. PIX détecte ce type de répétition.

PIX peut détecter des éléments que vous ne découvririez qu'après avoir vu l'ensemble de la capture. Par exemple, vous avez peut-être créé une ressource en tant que render target sans jamais la lier en tant que render target. Vous devriez examiner chaque draw de la capture pour le vérifier, mais PIX peut le faire pour vous.

<a id="demo-17-locating-and-navigating-the-pix-checklist" />

## Démo un : Localiser PIX Checklist et y naviguer

Cette section décrit la vue Checklist.

**Figure 1. Fenêtre de vue d'ensemble de PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n01.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=fab877bccedfacb8be164f9fe9f6152d" alt="Écran de vue d'ensemble de PIX" width="1280" height="702" data-path="images/gdk/features/graphics/gr01-n01.png" />

La figure 1 montre l'emplacement de la checklist dans la disposition par défaut lorsque PIX est ouvert dans le GDK de mars 2022.

**Figure 2. Vue PIX Checklist.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n03.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=81efe693d33612712b4d0f474ab72a15" alt="Vue PIX Checklist" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n03.png" />

La figure 2 montre la vue PIX Checklist. Une coche verte indique que l'élément a réussi la vérification. Les icônes rouges, orange ou jaunes signifient que la vérification a échoué.

Comme il s'agit d'une checklist, elle contient des éléments ou des vérifications que l'ATG vous recommande d'examiner. Par exemple, l'élément *Use Async Compute Queue*. La figure 2 montre que cela a été fait et affiche une coche verte : la vérification a donc réussi.

**Figure 3. Exemple d'info-bulle PIX Collected when running analysis.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n04.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=743a95e1809ce03c9878bcae038286ea" alt="Exemple d'info-bulle PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n04.png" />

Tout ce qui n'est pas une coche verte signifie que le problème nécessite votre attention. Une icône rouge, orange ou jaune vous avertit que l'élément de la checklist a échoué. Un sablier signifie que la vérification nécessite une action que vous n'avez pas encore effectuée. Les info-bulles vous indiquent quoi faire. Dans la figure 3, l'info-bulle est **Collected when running analysis**. Cela indique que vous devez exécuter une analyse.

**Figure 4. Exemple d'info-bulle PIX Collected when opening the Resources tab.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n05.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=ca72cbfa22cc01459d14d42862d90d38" alt="Autre exemple d'info-bulle PIX" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n05.png" />

La figure 4 montre l'info-bulle **Collected when opening the Resources tab**.

**Figure 5. Vue Events de PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-f04.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=fb6d0a058feb3cb2e5673379b2f9f487" alt="Vue Events de PIX" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f04.png" />

Les éléments en échec peuvent être ouverts. Selon l'élément, PIX fournit des informations et des liens utiles. La figure 5 montre un élément de la Checklist avec un lien qui fait référence au Global ID 4477.  La sélection du lien vous mène à un événement dans la visionneuse Events pour le Global ID 4477. Un composant de la Checklist est intégré à la vue Events. Ici, la colonne **Queue ID** la plus à gauche comporte la même icône rouge que celle qui apparaît dans la vue Checklist. Les éléments de la vue Events contiennent également des liens. Lorsque vous sélectionnez une icône rouge dans la vue Events, l'élément apparaît dans la vue Checklist.

<a id="history-of-attempts" />

### Pourquoi les tentatives d'automatisation échouent

Pour bien faire les choses, nous avons besoin que vous compreniez ce qui n'a pas fonctionné lors des tentatives précédentes. La raison la plus évidente est celle des faux positifs. Si la checklist vous indique que vous faites quelque chose de mal alors que ce n'est pas le cas, il s'agit d'un bogue qui doit être corrigé.

Cependant, certains problèmes subtils ne sont pas des faux positifs, mais leur sont liés. Il s'agit de vrais positifs : la checklist a raison, il y a bien un échec, mais pour une raison ou une autre, vous ne pouvez pas ou ne voulez pas le corriger. Nous appelons ces problèmes des \_Oui, mais\_.

Voici quelques exemples :

* La checklist indique *Prefer GPU Optimal Memory for Graphics Resources*. Oui, mais : vous n'avez plus de mémoire GPU optimale et PIX Checklist vous demande de corriger l'impossible.
* La checklist indique *Avoid consecutive calls to ResourceBarrier*. Oui, mais : il n'y avait que quelques occurrences. La correction n'en vaut pas la peine, car elle ne vous fera rien gagner de substantiel.
* La checklist indique *Use the 2nd hardware display plane*. Oui, mais : vous ne voulez pas dupliquer le code pour PC, XBOX One X et XBOX Series X|S.

Une façon de traiter ce type de problèmes consiste à utiliser un filtrage robuste. Vous ne les verrez pas s'ils ne sont pas nécessaires.

Les échecs de l'automatisation se produisent également en raison des retours et des itérations. La survie de la fonctionnalité de checklist n'est pas garantie. Les résultats obtenus jusqu'à présent sont bons, mais des problèmes sans importance sont encore trop souvent signalés.

<a id="demo-27-filtering-the-checklist-view" />

## Démo deux : Filtrer la vue Checklist

Cette section décrit comment filtrer dans la vue Checklist.

**Figure 6. Filtrage PIX par état de réussite/échec dans la vue Checklist.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n07.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=4c7609b26c526d2da59db64cc8f2db27" alt="Filtrage PIX par état de réussite/échec dans la vue Checklist" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n07.png" />

La figure 6 montre la checklist filtrée par état de réussite/échec après la sélection du bouton vert **Hide rules with no violations**. Les règles sont classées par gravité. L'ATG attribue à chaque règle un niveau de gravité de 1 à 4.

**Figure 7. Filtrage PIX par gravité dans la vue Checklist.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n06.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=9420a013e5127acee177d3232cbdd33e" alt="Filtrage PIX par gravité dans la vue Checklist" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n06.png" />

Si vous souhaitez voir uniquement les avertissements les plus graves, vous pouvez limiter la checklist à la gravité 1 ou à la gravité 2. La figure 7 montre la checklist filtrée sur les règles de gravité 1.

**Figure 8. Désactivation manuelle d'une règle PIX dans la vue Checklist.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n08.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=d9088fdd717139ddd1db0e826878f057" alt="Désactivation manuelle d'une règle PIX dans la vue Checklist" width="1280" height="694" data-path="images/gdk/features/graphics/gr01-n08.png" />

S'il existe une règle que vous ne voulez pas voir, cliquez dessus avec le bouton droit, puis sélectionnez **Disable this rule**. La figure 8 montre le filtrage de la checklist par la désactivation d'une règle.

**Figure 9. Vue PIX Checklist non filtrée.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n09.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=b1775fe7e7a674f4251300b9667b7ae7" alt="Vue PIX Checklist non filtrée" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n09.png" />

Vous pouvez également sélectionner **Show disabled rules** à gauche de l'icône verte **Hide rules with no violations**. Tout ce que vous avez désactivé précédemment est activé et visible. La figure 9 montre la checklist non filtrée.

**Figure 10. Filtrage PIX sur du texte dans la vue Checklist.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n10.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=c493cc8b93b527c209ece41299cad99e" alt="Filtrage PIX sur du texte dans la vue Checklist" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n10.png" />

Si vous souhaitez trouver un avertissement et que vous connaissez une partie de son texte, tapez ce texte dans la zone de recherche de la checklist. La checklist affiche les règles dont le titre de l'avertissement ou la description longue correspond au texte.

La figure 10 montre la checklist filtrée par texte.

Les exemples des sections suivantes présentent des avertissements que vous pourriez voir dans la checklist. Ils sont basés sur un échantillon de huit titres. Ces titres sont déjà commercialisés et optimisés. Il est beaucoup plus difficile d'y trouver des défauts. La checklist fonctionne mieux au début de la production, lorsqu'il reste encore des problèmes à trouver.

<a id="demo-37-unnecessary-depth-decompress" />

## Démo trois : Décompression de profondeur inutile

Cette section décrit l'avertissement **Use Texture Compatibility on Compressed Resources** et utilise une décompression de profondeur inutile comme exemple.

**Figure 11. Vue PIX Checklist avec l'avertissement Use Texture Compatibility on Compressed Resources.**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-f06.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=4bd14bc421d87ec069f5a637e3a9b452" alt="Vue PIX Checklist avec l'avertissement Use Texture Compatibility on Compressed Resources" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f06.png" />

Dans le premier exemple, la figure 11 affiche un avertissement **Use Texture Compatibility on Compressed Resources**. Notez que vous pouvez lire la description en bas de la fenêtre pour obtenir des détails supplémentaires sur l'avertissement. Sélectionnez le lien Global ID #337 pour poursuivre l'examen du problème.

**Figure 12. Vue Events de PIX avec décompression de profondeur.**

<img src="https://mintcdn.com/microsoft-4404708b/S5p29w5ER99oweya/images/gdk/features/graphics/gr01-f07.webp?fit=max&auto=format&n=S5p29w5ER99oweya&q=85&s=7f18b3446fc63b43720f09ff021b0073" alt="Vue Events de PIX avec décompression de profondeur" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f07.webp" />

La sélection du lien vous mène à la vue Events et à un appel ResourceBarrier, comme illustré dans la figure 12. Depth Decompress se trouve sous l'appel ResourceBarrier. Toutefois, sur XBOX Series X|S, une fonctionnalité de compatibilité de texture vous permet d'ignorer une Depth Decompress et de lire nativement le format compressé. Les décompressions de profondeur n'apparaissent généralement pas à ce stade. Vous ne vous attendez pas à voir une Depth Decompress. Et elle prend 0,116 milliseconde. La checklist vous indique où une violation s'est produite.

**Figure 13. Vue API Objects de PIX et l'indicateur de compatibilité de texture.**

<img src="https://mintcdn.com/microsoft-4404708b/S5p29w5ER99oweya/images/gdk/features/graphics/gr01-f08.webp?fit=max&auto=format&n=S5p29w5ER99oweya&q=85&s=5d094616a59c5f2f52d8b2dcca4a5585" alt="Vue API Objects de PIX et l'indicateur de compatibilité de texture" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f08.webp" />

En approfondissant l'examen, vous accédez à la vue API Objects et à l'objet affiché. La figure 13 confirme que l'objet #35073 a été créé en tant que depth stencil buffer, mais qu'il ne spécifiait pas la compatibilité de texture.

Cet avertissement est apparu dans les deux titres de l'échantillon. Pour l'un d'eux, c'était une bonne trouvaille. L'autre a répondu *oui, mais* : cela avait été essayé et n'était pas important. Il était donc raisonnable d'ignorer la Depth Decompress, malgré une perte de performances ailleurs.

<a id="demo-47-delta-color-compression" />

## Démo quatre : Delta color compression (DCC)

Cette section décrit l'avertissement **Use Delta Color Compression for Pre-cleared Color Textures**.

**Figure 14. Delta Color Compression dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n14.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=f2326dc99f8b926b2e22bf51fed517e0" alt="Delta Color Compression dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n14.png" />

La figure 14 montre l'avertissement **Use Delta Color Compression for Pre-cleared Color Textures**. La plupart des render targets sur XBOX Series X|S utilisent la DCC. Elle prend en charge la compatibilité de texture ; cet avertissement est donc lié à l'exemple de la démo trois. La sélection du lien Global ID #1311 vous mène à un événement sélectionné.

**Figure 15. Avertissement Fast Clear Eliminate dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n15.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=8780d3ff6ae7912a9964668245c5d8f1" alt="Avertissement Fast Clear Eliminate dans PIX" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n15.png" />

La figure 15 montre un avertissement **Fast Clear Eliminate** après la sélection du lien dans la vue Checklist. C'est inhabituel, car la DCC n'a pas de **Fast Clear Eliminate**. En général, vous ne vous attendez pas à ce type d'avertissement dans une capture XBOX Series X|S. **Fast Clear Eliminate** est le type de compression utilisé sur XBOX One. Un avertissement déclenché sur **Fast Clear Eliminate** indique que la *compression cmask* a été utilisée à la place de la DCC. Lorsque vous utilisez la DCC, vous verrez **DCC Eliminate**. Lorsque vous utilisez la DCC et la compatibilité de texture, vous ne verrez rien ici et vous économiserez le coût du DCC Eliminate.

**Figure 16. Velocity Buffer dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n16.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=17583758c3f559e8d723791a8000150f" alt="Velocity Buffer dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n16.png" />

La texture pourrait être un bon candidat pour la DCC. La figure 16 montre la render target en tant que Velocity Buffer, qui est souvent compressible. Dans ce cas, la render target est presque entièrement noire et les parties restantes sont presque toutes de la même nuance de gris. Pour un titre, deux des développeurs ont indiqué que cet avertissement pouvait être une erreur. Au début du développement, ils avaient rencontré des bogues avec la DCC. Pour un autre titre, l'équipe avait également désactivé la DCC dans certains cas en raison de bogues non résolus. D'autres titres ont également signalé l'avertissement Fast Clear Eliminate. Certains de ces cas ont été des gains, d'autres non. L'ATG devra peut-être approfondir ce point, ou bien le problème a peut-être été corrigé depuis que les décisions ont été prises.

<a id="demo-57-unbound-render-target" />

## Démo cinq : Render target non liée

Cette section décrit l'avertissement **Remove Unbound RTVs from Shader/PSO** et une render target non liée.

**Figure 17. Render target non liée dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n17.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=7b71d638378c3f55c343e7eb1aae742d" alt="Render target non liée dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n17.png" />

La figure 17 montre l'avertissement **Remove Unbound RTVs from Shader/PSO**. La sélection du lien Global ID #4474 mène à l'événement lié qui a déclenché l'avertissement.

**Figure 18. Événement lié PIX dans la vue Pipeline.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n18.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=9d33993fa0ea0b36c29b7b4b0df6276a" alt="Événement lié PIX dans la vue Pipeline" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n18.png" />

La figure 18 montre la vue Pipeline pour l'événement lié. Il existe deux render targets : RTV 0 et RTV 1. RTV 0 est en noir, ce qui indique que la vérification a réussi. En revanche, RTV 1 est en rouge, ce qui indique un problème.

**Figure 19. Ligne d'exportation PIX vers mrt1.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n19.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=5e88fd9efc4c17a67838f1612a820f5f" alt="Ligne d'exportation PIX vers mrt1" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n19.png" />

La figure 19 montre, en bas de la fenêtre, la ligne de code qui exporte vers mrt1.

La capture ne contenait pas de symboles ; seules les instructions GPU sont donc disponibles pour le pixel shader (PS). En remontant le registre, vous pouvez voir comment l'exportation vers RTV 1 a été calculée. On s'attendait à ce que RTV 1 soit liée, mais ce n'était pas le cas.

**Figure 20. Coloration syntaxique dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n20.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=9d6430ce00f2df396952fc04670e89e0" alt="Coloration syntaxique dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n20.png" />

Grâce à la coloration syntaxique de PIX, vous pouvez voir dans la figure 20 à quel point le calcul de cette exportation est coûteux.

Ce scénario présente deux problèmes.

* L'exportation d'un élément inutile et le coût de performances associé.
* Le calcul de la valeur exportée constitue un coût gaspillé.

Les deux titres de l'échantillon présentaient un avertissement Remove Unbound RTVs from Shader/PSO. Un titre a estimé que la correction en valait la peine. L'autre non. Le problème n'a pas été corrigé en raison d'une combinaison de deux facteurs.

* Il ne se produisait que brièvement.
* Sa correction nécessite un nouveau PS, ce qui ajoute de la mémoire et de la complexité.

Les deux réactions étaient raisonnables.

<a id="demo-67-unused-vs-exports" />

## Démo six : Exportations VS inutilisées

Cette section décrit l'avertissement **The VS Exports Only Parameters which are Needed by the PS**.

**Figure 21. Avertissement PIX d'exportations VS inutilisées.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n21.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=5134364785723cdfdce9c365ec7c634d" alt="Avertissement PIX d'exportations VS inutilisées" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n21.png" />

La figure 21 montre l'avertissement **The VS Exports Only Parameters which are Needed by the PS**.

Cet avertissement est complémentaire de l'avertissement **Remove Unbound RTVs from Shader/PSO**. Dans ce dernier, le PS exportait des éléments inutiles. Dans l'avertissement **The VS Exports Only Parameters which are Needed by the PS**, le vertex shader (VS) exportait également des éléments inutiles. L'instance sélectionnée dans la figure 22 indique que le VS possède deux paramètres, mais que le PS n'en a importé aucun.

Vous pouvez sélectionner le lien pour voir pourquoi le PS n'a importé que 0 paramètre.

**Figure 22. Draw calls PIX dans la vue Pipeline.**

<img src="https://mintcdn.com/microsoft-4404708b/u9Lr-GsnJ486bw0U/images/gdk/features/graphics/gr01-n22.webp?fit=max&auto=format&n=u9Lr-GsnJ486bw0U&q=85&s=a64514faf1a03cf00a3b57a639c9aa40" alt="Draw calls PIX dans la vue Pipeline" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n22.webp" />

La figure 22 montre les *draw calls* dans la vue Pipeline.

La sélection du lien vous mène aux draw calls dans la vue Pipeline.

**Figure 23. Pixel shader non lié dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n23.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=601dd94be77b1fb8ab5b7dc327f40145" alt="Pixel shader non lié dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n23.png" />

La figure 23 montre que le PS n'est pas lié et que cet événement concerne uniquement la profondeur.

Les derniers éléments du VS sont des exportations vers le paramètre 0 et le paramètre 1.

Tout ce qui est écrit par le VS, à l'exception de la position, est gaspillé, car aucun PS ne le récupère. Si vous remontez ces exportations, vous verrez qu'elles reposent sur des calculs substantiels. Elles n'exportent pas une constante. Ce scénario présente deux problèmes.

* L'exportation de paramètres qui n'ont pas besoin d'être exportés occupe de la place dans le cache de paramètres.
* Les paramètres exportés résultaient d'un calcul potentiellement long qui est également gaspillé.

Dans un cas, l'équipe souhaitait corriger ce problème, car il s'agissait d'un rendu de profondeur uniquement. L'équipe a indiqué avoir corrigé ce problème sur PC, avec de bons résultats. Elle souhaite essayer sur XBOX.

Une autre équipe avait une instance différente sans rendu. Elle a estimé que la correction de ce problème n'en valait pas la peine. C'est raisonnable, car cela implique de dupliquer le VS, d'avoir davantage d'instances du VS et d'assumer les coûts associés. D'autres titres reçoivent également cet avertissement, et les conséquences sur les performances varient.

<a id="demo-77-nearly-empty-wave64" />

## Démo sept : Wave64 presque vide

Cette section décrit l'avertissement **Use Wave32 for threadgroups of size 32 or less** et une wave64 presque vide.

<Note>
  Cet avertissement a depuis été étendu à davantage de cas, et son nom a été modifié en conséquence.
</Note>

**Figure 24. Wave64 presque vide dans PIX.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n24.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=87ae8128e17665209df507b261647b66" alt="Wave64 presque vide dans PIX" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n24.png" />

La figure 24 montre l'avertissement **Use Wave32 for threadgroups of size 32 or less**.

**Figure 25. Dispatch PIX à l'intérieur d'une passe.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n25.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=47e347fff271c5a29164983ceab9992d" alt="Dispatch PIX à l'intérieur d'une passe" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n25.png" />

La figure 25 montre que la sélection de l'une des instances dans la vue Checklist vous mène à un dispatch à l'intérieur d'une passe. Cependant, quelque chose d'étrange se produit. D'après les colonnes des compteurs, cette passe comporte 123 threadgroups, 123 waves et 123 threads. Et tout ce qu'elle contient est un dispatch(1,1,1). Cette passe ne contient que des dispatchs d'un seul threadgroup, contenant une seule wave, contenant un seul thread. Tous les autres threads sont gaspillés. L'avertissement vous indique qu'au lieu de gaspiller 63 threads sur 64 dans une Wave64, vous pourriez n'en gaspiller que 31 sur 32. Bien que vous puissiez le faire, la situation n'en restera pas moins catastrophique. L'avertissement reste précieux, car il vous signale que vous faites quelque chose d'étrange.

<a id="wrap-up" />

## Conclusion

### PIX Checklist est en cours de développement actif

L'équipe PIX développe activement PIX Checklist. Vos retours sont importants. L'équipe ATG utilise PIX Checklist lors de ses revues de performances, en surveillant les faux positifs et en identifiant les points problématiques. L'équipe PIX continue de mettre à jour la Checklist et de proposer de nouveaux avertissements. Nous vous encourageons à continuer à l'utiliser.

### Ce que nous vous demandons

Le développement de PIX Checklist est influencé par vos retours.

1. Exécutez PIX Checklist sur vos captures.
2. Envoyez-nous vos retours sur les fonctionnalités utiles comme inutiles via le bouton de commentaires de PIX, les forums ou vos contacts Microsoft. Les développeurs ont tendance à donner leur avis lorsque les choses tournent mal. Les équipes PIX ont également besoin de retours sur ce qui fonctionne bien pour savoir sur quoi continuer à travailler.
3. Demandez de nouveaux tests. Maintenant que vous avez vu quels types de tests sont possibles, envoyez vos idées de tests supplémentaires utiles.

### Projets futurs

Voici quelques fonctionnalités que l'équipe PIX a envisagées pour l'avenir.

* **Seuils d'avertissement configurables par l'utilisateur** : par exemple, un avertissement peut n'être utile que s'il compte 100 occurrences. Toutefois, un autre développeur pourrait avoir besoin d'un seuil d'avertissement de seulement cinq occurrences.
* **Étendre la vue Checklist à d'autres types de captures** : par exemple, un avertissement System Monitor qui détecte lorsque vous êtes en dessous de votre fréquence d'images cible pendant un certain nombre d'images. Cela créerait une GPU Capture.
* **Vue Checklist pour Timing Capture** : elle fournirait des avertissements signalant les échecs dans une PIX Timing Capture.

<a id="next-steps" />

## Étapes suivantes

Pour consulter les informations des supports de présentation associés à cette vue d'ensemble, téléchargez les fichiers suivants depuis [XBOX Developer Download Secure Data Storage (SDS)](https://www.microsoft.com/en-us/software-download/gdk).

* Diaporama : GR01\_A Tour of the New PIX Checklist - GPU Performance Made Easy.pptx dans Xfest 2022 Graphics Track PowerPoints (Xfest2022GfxPPTs.ZIP)
* Présentation vidéo : GR01.mp4 dans Xfest 2022 Graphics Track Videos (Xfest2022GfxVids.ZIP)

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

1. Accédez à [Téléchargements du Game Development Kit (GDK)](https://www.microsoft.com/en-us/software-download/gdk).
2. Sous <b>Select file type</b>, sélectionnez **Conference Materials**, puis **Confirm**.
3. Sous <b>Select build/version number</b>, choisissez l'une des présentations graphiques suivantes.
   * Xfest 2022 Graphics Track PowerPoints
   * Xfest 2022 Graphics Track Videos
4. Sélectionnez <b>Download Now</b>, 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é.

<a id="see-also" />

## Voir aussi

[PIX](/fr/tools/tools-console/pix/pix)


## Related topics

- [Capture GPU et analyse des performances avec PIX](/fr/tools/tools-console/pix/gpu/index.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [Xdd2024](/fr/build/core-features/graphics/overviews/presentations/xdd2024/index.md)
- [Xfest2022](/fr/build/core-features/graphics/overviews/presentations/xfest2022/index.md)
- [PIX sur XBOX et Windows pour les titres GDK](/fr/tools/tools-console/pix/index.md)
