Condividi tramite


Fasi pipeline grafica

La finestra Fasi pipeline grafica, uno degli strumenti di diagnostica grafica presenti in Visual Studio, consente di comprendere il modo in cui un determinato evento di disegno viene spostato attraverso la pipeline grafica.

Questa è la finestra Fasi pipeline grafica:

Un oggetto 3D attraversa le fasi della pipeline.

Nota

A partire da Visual Studio 2013 Update 3, le finestre degli strumenti di diagnostica grafica sono ospitate in una copia indipendente della shell di Visual Studio.Questa shell personalizzata, denominata Analisi grafica, elimina le opzioni e i menu non necessari, ma a parte ciò la finestra Fasi pipeline grafica e il flusso di lavoro rimangono uguali a prima.Per altre informazioni su questa modifica, vedere Panoramica della diagnostica grafica.

Informazioni sulla finestra Fasi pipeline grafica

La finestra Fasi pipeline grafica consente di analizzare l'output di ogni fase della pipeline grafica che si applica a un oggetto specifico sottoposto a rendering. In particolare, è possibile identificare le fasi in cui i dati sono stati interpretati erroneamente o trasformati in modo non corretto, ad esempio è possibile analizzare se una fase di vertex shader ha fatto sì che un oggetto venisse disegnato fuori dallo schermo. Dopo avere identificato la fase della pipeline in cui si verifica il problema, è possibile usare gli altri strumenti di diagnostica grafica per esaminare il modo in cui i dati sono stati interpretati o trasformati. I problemi di rendering visualizzati nelle fasi della pipeline sono spesso correlati a descrittori di formato vertici non corretti, a programmi shader con bug o a uno stato del dispositivo non configurato correttamente.

Fasi pipeline grafica

Nella finestra Fasi pipeline grafica vengono visualizzati i dati di grafica solo per le fasi della pipeline che erano attive durante la chiamata di disegno. Per usare gli strumenti di grafica in Visual Studio per esaminare l'output di ogni fase visualizzata, scegliere l'anteprima associata nella finestra Fasi pipeline grafica.

I compute shader non sono supportati nella finestra Fasi pipeline grafica.

  • Assemblaggio input
    Legge i dati di indici e vertici forniti dall'app e li assembla per l'hardware grafico. L'anteprima visualizza un modello wireframe dei vertici assemblati. I dati di vertici che corrispondono alla posizione sono determinati dalla semantica POSITION. Se la semantica POSITION non è presente nell'output dell'assemblaggio input, nella fase Assemblaggio input non verrà visualizzato nulla. È possibile usare l'editor modello per esaminare l'output della fase Assemblaggio input.

  • Vertex shader
    Elabora i vertici, in genere eseguendo operazioni come trasformazioni, rivestimento e illuminazione. Un vertex shader accetta sempre un input dei vertici e produce un output dei vertici. L'anteprima visualizza un'immagine wireframe della geometria trasformata. I dati di vertici che corrispondono alla posizione sono determinati dalla semantica POSITION o SV_POSITION. Se la semantica POSITION o SV_POSITION non è presente nell'output di vertex shader, nella fase Vertex shader non verrà visualizzato nulla. È possibile usare l'editor di immagini per esaminare l'output della fase Vertex shader.

  • Hull shader
    Solo Direct3D 11. Elabora le primitive geometriche, ad esempio quadrati, triangoli o linee, in patch geometriche di ordine inferiore che fungono da input alla fase di tassellatura a funzione fissa. Nessuna anteprima viene visualizzata per la fase Hull shader.

  • Domain shader
    Solo Direct3D 11. Elabora i vertici di suddivisione restituiti dalla fase di tassellatura a funzione fissa, simile alla fase di vertex shader. Nessuna anteprima viene visualizzata per la fase Domain shader.

  • Geometry shader
    Elabora intere primitive, quali punti, linee o triangoli, insieme a informazioni opzionali sui vertici per le primitive adiacenti. Un geometry shader può eliminare la primitiva o generare una o più nuove primitive. L'anteprima visualizza un'immagine wireframe della geometria trasformata. È possibile usare l'editor di immagini per esaminare l'output della fase Geometry shader.

  • Pixel shader
    Elabora i dati di vertici interpolati per generare pixel a colori. L'anteprima visualizza un'immagine dell'output di pixel shader. È possibile usare l'editor di immagini per esaminare l'output della fase Pixel shader.

  • Unione output
    Combina i vari tipi di risultati degli shader, ad esempio i valori di pixel shader e le informazioni di profondità, con il contenuto della destinazione di rendering e del buffer di profondità insieme alle informazioni del buffer di stencil, per determinare come viene influenzata la destinazione di rendering. L'anteprima visualizza un'immagine del contenuto della destinazione di rendering dopo l'unione dei vari risultati e dopo aver preso in considerazione il contenuto del buffer di stencil. È possibile usare l'editor di immagini per esaminare l'output della fase Unione output.

Visualizzazione e debug del codice dello shader

È possibile visualizzare il codice per Vertex Shader, Hull Shader, Domain Shader, Geometry Shader o Pixel Shader oppure eseguirne il debug, usando i comandi sotto la fase della pipeline associata allo shader.

Per visualizzare il codice sorgente di uno shader

  • Al di sotto della fase della pipeline associata allo shader da visualizzare, scegliere il titolo della fase della pipeline, ad esempio scegliere Vertex Shader per visualizzare il codice sorgente del vertex shader.

Per eseguire il debug di uno shader

  • Al di sotto della fase dello shader associata allo shader di cui si vuole eseguire il debug, al di sotto del titolo della fase della pipeline, scegliere Avvia debug. Questo punto di ingresso nel debugger HLSL esegue il debug solo della prima chiamata dello shader per la fase corrispondente, ovvero il primo vertice, primitiva o pixel elaborato. È possibile accedere alle altre chiamate di queste fasi dello shader tramite la Cronologia pixel grafica.

Collegarsi al dispositivo di grafica

Per capire perché una chiamata di disegno interagisce in un determinato modo con la pipeline grafica, potrebbero essere necessarie informazioni sullo stato corrente del dispositivo. Nella finestra Fasi pipeline grafica è presente un collegamento a tali informazioni.

Vedere anche

Attività

Procedura dettagliata: oggetti mancanti a causa dello sfondo Vertex

Procedure dettagliate: debug degli errori di rendering dovuti allo sfondo