Condividi tramite


Cronologia pixel grafica

Cronologia pixel grafica, uno degli strumenti di diagnostica della grafica presenti in Visual Studio, consente di comprendere in che modo un particolare pixel è stato modificato dagli eventi di Direct3D durante un frame specifico del gioco o dell'app.

Questa è la finestra Cronologia pixel grafica:

Un pixel con tre eventi Direct3D nella cronologia.

Informazioni sulla cronologia del pixel

Utilizzando la Cronologia pixel grafica, è possibile analizzare come un pixel specifico della destinazione di rendering sia interessato dagli eventi Direct3D durante il frame specifico.È possibile associare con precisione un problema di rendering a un evento specifico di Direct3D, anche quando gli eventi successivi, o le primitive successive nello stesso evento, continuano a modificare il valore del colore finale del pixel.Ad esempio, è possibile eseguire il rendering errato di un pixel che viene quindi nascosto da un altro pixel semitrasparente in modo che i loro colori vengano fusi insieme nel framebuffer.Questo tipo di problema sarebbe difficile da diagnosticare se si disponesse solo del contenuto finale della destinazione rendering come guida.

Nella finestra Cronologia pixel grafica viene visualizzata la cronologia completa di un pixel nel corso del frame selezionato.Nella casella Buffer frame finale posta nella parte superiore della finestra viene visualizzato il colore scritto nel buffer alla fine del frame, insieme a informazioni aggiuntive sul pixel quali il frame di origine e le coordinate dello schermo.Quest'area include inoltre la casella di controllo Rendering alfa.Quando questa casella di controllo è selezionata, i valori dei colori intermedi e del colore di Buffer frame finale vengono visualizzati con trasparenza su un motivo a scacchiera.Se la casella di controllo è deselezionata, il canale alfa dei valori di colore viene ignorato.

Nella parte inferiore della finestra verranno visualizzati gli eventi che avevano la possibilità di modificare il colore del pixel, insieme agli pseudo eventi Finale e Iniziale che rappresentano i valori di colore iniziale e finale del pixel in framebuffer.Il valore del colore iniziale è determinato dal primo evento che ha modificato il colore del pixel (in genere un evento di Clear ).Un pixel ha sempre questi due pseudo-eventi nella cronologia, anche quando non è stato interessato da nessun altro evento.Quando altri eventi possono influire sul pixel, vengono visualizzati tra gli eventi Iniziale e Finale.È possibile espandere gli eventi per visualizzarne i dettagli.Per gli eventi semplici come quelli che eliminano una destinazione di rendering, l'effetto dell'evento è semplicemente un valore di colore.Gli eventi più complessi come le chiamate di disegno generano una o più primitive che possono contribuire al colore del pixel.

Le primitive che sono state create dall'evento vengono identificate dal tipo primitivo e indice, con il valore primitivo totale per l'oggetto.Ad esempio, un identificativo come Triangolo (1456) di (6214) significa che la primitiva corrisponde al 1456° triangolo in un oggetto composto da 6214 triangoli.A sinistra di ciascun identificatore di primitiva è presente un'icona che riepiloga l'effetto della primitiva sul pixel.Le primitive che influiscono sul colore del pixel vengono rappresentate da un rettangolo arrotondato quale viene inserito colore di risultato.Le primitive escluse dall'avere un effetto sul colore del pixel sono rappresentate dalle icone che indicano il motivo per cui il pixel escluso.Queste icone sono descritte nella sezione Esclusione primitiva più avanti in questo articolo.

È possibile espandere ogni primitiva per esaminare in che modo l'output di pixel shader è stato unito al colore esistente del pixel per produrre il colore risultante.A questo punto è possibile esaminare o eseguire il debug del codice di pixel shader associato alla primitiva ed è inoltre possibile espandere il nodo di vertex shader per esaminare l'input di vertex shader.

Hh873193.collapse_all(it-it,VS.110).gifEsclusione primitiva

Se si esclude una primitiva in modo che non influisca sul colore dei pixel, l'esclusione può verificarsi per diversi motivi.Ogni motivo è rappresentato da un'icona descritta in questa tabella:

Icona

Motivi per l'esclusione

Icona test di profondità non superato.

Pixel escluso poiché non ha superato il test di profondità.

Icona test forbici non superato.

Pixel escluso poiché non ha superato il test di ritaglio.

Icona test stencil non superato.

Pixel escluso poiché non ha superato il test di stencil.

Hh873193.collapse_all(it-it,VS.110).gifEsclusione di chiamata di disegno

Se tutte le primitive in una chiamata di disegno vengono esclusi da influire sulla destinazione di rendering in quanto non riescono un test, la chiamata di disegno non può essere espansa e un'icona che corrisponde al motivo per l'esclusione visualizzata accanto.Motivi per l'esclusione di tiraggio- chiamata assomigliano ai motivi per l'esclusione primitiva e le icone sono simili.

Hh873193.collapse_all(it-it,VS.110).gifVisualizzazione e debug del codice di shader

È possibile visualizzare il codice per Vertex shader, Hull shader, Domain shader, Geometry shader, o Pixel shader o eseguirne il debug, utilizzando i comandi sotto la primitiva associata allo shader.

Per visualizzare il codice sorgente di uno shader

  • Al di sotto della primitiva associata allo shader che si desidera visualizzare, scegliere il titolo dello shader (ad esempio, scegliere Vertex shader per visualizzare il codice sorgente di vertex shader).

Per eseguire il debug di uno shader

  • Al di sotto della primitiva associata allo shader di cui si desidera eseguire il debug, a destra del titolo dello shader, scegliere Avvia debug.

Hh873193.collapse_all(it-it,VS.110).gifCollegamenti agli oggetti grafici

Per comprendere gli eventi di grafica nella cronologia del pixel, potrebbero essere necessarie informazioni sullo stato del dispositivo al momento dell'evento o sugli oggetti Direct3D a cui viene fatto riferimento dall'evento.Per ogni evento nella cronologia del pixel, la Cronologia pixel grafica fornisce collegamenti allo stato del dispositivo in essere e agli oggetti correlati.

Vedere anche

Attività

Procedura dettagliata: oggetti mancanti a causa dello stato del dispositivo

Procedure dettagliate: debug degli errori di rendering dovuti allo sfondo