Partager via


Historique des pixels Graphics

L'Historique des pixels Graphics, qui est l'un des outils de diagnostic de graphiques dans Visual Studio, peut vous aider à comprendre comment un pixel donné a été affecté par les événements Direct3D pendant un frame spécial de votre jeu ou de votre application.

Il s'agit de la fenêtre Historique des pixels Graphics :

Pixel avec trois événements Direct3D dans son historique.

Fonctionnement de l'historique des pixels

Dans la fenêtre Historique des pixels Graphics, vous pouvez analyser la façon dont un pixel donné de la cible de rendu est affecté par les événements Direct3D au cours d'un frame particulier.Vous pouvez localiser un problème de rendu dans un événement Direct3D spécifique, même lorsque les événements suivants, ou les primitives suivantes dans le même événement, continuent à modifier la valeur de couleur finale du pixel.Par exemple, un pixel peut être affiché correctement et ensuite masqué par un autre pixel semi-transparent afin que leurs couleurs soient fusionnées ensemble dans la mémoire du frame.Ce genre de problème est difficile de diagnostiquer si vous disposez uniquement du contenu final de la cible de rendu pour vous guider.

La fenêtre Historique des pixels Graphics affiche l'historique complet d'un pixel au cours du frame sélectionné.Le Tampon de trame final en haut de la fenêtre affiche la couleur qui est écrite dans la mémoire de l'image à la fin du frame, ainsi que des informations supplémentaires sur le pixel tel que le frame dont il provient et ses coordonnées d'écran.Cette zone contient également la case à cocher Restituer Alpha.Lorsque cette case à cocher est activée, la couleur Tampon de trame final et les valeurs de couleurs intermédiaires sont affichées avec transparence sur un modèle de damier.Si la case à cocher est désactivée, le canal alpha des valeurs de couleur est ignoré.

La partie inférieure de la fenêtre affiche les événements qui ont eu la possibilité d'affecter la couleur du pixel, ainsi que les pseudo-événements Initial et Final qui représentent les valeurs de couleur initiales et finales du pixel de la mémoire de l'image.La valeur de couleur initiale est déterminée par le premier événement qui a modifié la couleur du pixel (en général un événement d' Clear ).Un pixel contient toujours ces deux pseudo-événements dans son historique, même quand aucun autre événement ne l'a affecté.Lorsque d'autres événements ont eu l'occasion d'affecter le pixel, ils sont affichés entre les événements Initial et Final.Les événements peuvent être développés pour afficher leurs détails.Pour les événements simples comme ceux qui effacent une cible de rendu, l'effet de l'événement correspond juste à une valeur de couleur.Les événements plus complexes tels que les appels de dessin génèrent une ou plusieurs primitives qui peuvent contribuer à la couleur du pixel.

Les primitives qui ont été dessinées par l'événement sont identifiées par leur type primitif et l'index, avec le nombre total de primitives de l'objet.Par exemple, un identificateur comme Triangle (1456) (6214) signifie que la primitive correspond au 1456ème triangle dans un objet qui se compose de 6214 triangles.À gauche de chaque identificateur de primitive se trouve une icône qui résume l'effet de la primitive sur le pixel.Les primitives qui affectent la couleur du pixel sont représentées par un rectangle arrondi rempli de la couleur du résultat.Les primitives exclus d'avoir un effet sur la couleur du pixel sont représentées par des icônes qui indiquent la raison pour laquelle le pixel a été exclu.Ces icônes sont décrites dans la section Exclusion primitive ultérieurement dans cet article.

Vous pouvez développer chacun primitive pour examiner comment la sortie du nuanceur de pixels a été fusionnée avec la couleur existante de pixel pour produire la couleur de résultat.À ce stade, vous pouvez également examiner ou déboguer le code du nuanceur de pixels associé à la primitive, et vous pouvez développer davantage le nœud de vertex shader pour tester l'entrée de vertex shader.

Hh873193.collapse_all(fr-fr,VS.110).gifExclusion primitive

Si une primitive ne peut pas affecter la couleur des pixels, l'exclusion peut se produire pour diverses raisons.Chaque raison est représentée par une icône qui est décrite dans cette table :

Icône

Raison de l'exclusion

Icône d'échec au test de profondeur.

Le pixel a été exclu parce qu'il n'a pas réussi le test Depth Test.

Icône d'échec au test Scissor.

Le pixel a été exclu parce qu'il n'a pas réussi le test Scissor Test.

Icône d'échec au test Stencil.

Le pixel a été exclu parce qu'il n'a pas réussi le test Stencil Test.

Hh873193.collapse_all(fr-fr,VS.110).gifExclusion d'appel de dessin

Si tous les primitives dans un appel de dessin sont exclus d'affecter la cible de rendu car ils ne réussissent pas un test, l'appel de dessin ne peut pas être développé et une icône qui correspond à la raison de l'exclusion s'affiche en regard de cette dernière.Les raisons de l'exclusion d'aspiration- appel ressemblent aux raisons de l'exclusion de primitive, et leurs icônes sont identiques.

Hh873193.collapse_all(fr-fr,VS.110).gifAffichage et débogage du code de nuanceur

Vous pouvez afficher le code d'un Vertex Shader, Nuanceur Hull Shader, Nuanceur de domaine, Geometry Shader, ou Nuanceur de pixels, ou le déboguer à l'aide des contrôles sous la primitive associée au nuanceur.

Pour afficher le code source d'un nuanceur

  • Sous la primitive associée au shader que vous souhaitez afficher, cliquez sur le titre du shader, par exemple choisissez Vertex Shader pour afficher le code source du nuanceur de sommets.

Pour déboguer un nuanceur

  • Sous la primitive associé au shader que vous souhaitez déboguer, à droite de titre du nuanceur, choisissez Démarrer le débogage.

Hh873193.collapse_all(fr-fr,VS.110).gifLiens vers les objets graphiques

Pour comprendre les événements Graphics dans l'historique des pixels, vous pouvez avoir besoin d'informations sur l'état du périphérique au moment de l'événement ou sur les objets Direct3D référencés par l'événement.Pour chaque événement de l'historique des pixels, l'Historique des pixels Graphics fournit des liens vers l'état du périphérique actuel et les objets connexes.

Voir aussi

Tâches

Procédure pas à pas : objets manquants en raison de l'état du périphérique

Procédure pas à pas : débogage des erreurs de rendus dues à la trame