Elenco eventi grafici
Usare l'Elenco eventi grafici in Diagnostica grafica di Visual Studio per esplorare gli eventi Direct3D registrati durante il rendering di un frame del gioco o dell'app.
Questa è la finestra Elenco eventi grafici:
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ò l'elenco eventi grafici e il flusso di lavoro rimangono uguali a prima.Per altre informazioni su questa modifica, vedere Panoramica della diagnostica grafica.
Uso dell'elenco di eventi
Quando si seleziona un evento nell'elenco, l'attività si riflette nelle visualizzate dagli altri strumenti di diagnostica grafica. Usando l'elenco di eventi insieme a questi altri strumenti è possibile esaminare in dettaglio un problema di rendering per determinarne la causa. Per altre informazioni su come risolvere i problemi di rendering usando l'elenco di eventi insieme agli altri strumenti di diagnostica grafica, vedere Esempi di diagnostica grafica.
Usare le funzionalità dell'elenco di eventi in modo efficace è importante per operare su frame complessi che possono contenere migliaia di eventi. Per usare l'elenco di eventi in modo efficace, scegliere la visualizzazione più adatta alla proprie esigenze, seguire i collegamenti per altre informazioni sugli oggetti Direct3D associati a un evento e usare le frecce per spostarsi rapidamente tra le chiamate di disegno.
Visualizzazioni dell'elenco di eventi
L'elenco di eventi supporta due diverse visualizzazioni che organizzano gli eventi grafici in modo diverso, per supportare il flusso di lavoro e le preferenze dell'utente. La prima è la visualizzazione chiamate di disegno, che organizza gli eventi e lo stato associato in gerarchie. La seconda è la visualizzazione cronologia, che organizza gli eventi in ordine cronologico, in un elenco semplice.
Visualizzazione Chiamate di disegno
Visualizza gli eventi acquisiti e il relativo stato in una gerarchia. Il primo livello della gerarchia contiene eventi come chiamate di disegno, cancellazioni, presentazioni ed eventi associati alle visualizzazioni. Nell'elenco di eventi è possibile espandere le chiamate di disegno per visualizzare lo stato del dispositivo al momento della chiamata di disegno ed espandere ulteriormente ogni tipo di stato per visualizzare gli eventi che hanno impostato i valori. A questo livello è anche possibile vedere se un particolare stato è stato impostato in un frame precedente oppure se è stato impostato più volte dall'ultima chiamata di disegno.Visualizzazione Cronologia
Visualizza gli eventi acquisiti in ordine cronologico. Questo tipo di organizzazione dell'elenco di eventi è uguale a quello usato nelle versioni precedenti di Visual Studio.
Per modificare la modalità di visualizzazione dell'elenco di eventi
- Nella finestra Elenco eventi grafici, sopra l'elenco degli eventi, individuare l'elenco a discesa Visualizza e scegliere la visualizzazione Cronologia o la visualizzazione Chiamate di disegno.
Filtro degli eventi
La casella Cerca, situata nell'angolo superiore destro della finestra Elenco eventi grafici consente di filtrare l'elenco di eventi in modo da includere solo gli eventi i cui nomi contengono determinate parole chiave. È possibile specificare singole parole chiave, ad esempio Vertex, come mostrato nell'illustrazione precedente, oppure un elenco di parole chiave separate da punti e virgola come Draw;Primitive, per visualizzare solo gli eventi il cui nome contiene Draw o Primitive. Le ricerche sono sensibili agli spazi, ad esempio VSSet e VS Set sono differenti. Fare quindi attenzione a formulare le ricerche nel modo corretto.
Spostamento tra chiamate di disegno
Poiché esaminare le chiamate Draw è particolarmente importante, è possibile usare i pulsanti Passa a chiamata di disegno successiva e Passa a chiamate di disegno precedente situati nell'angolo superiore sinistro della finestra Elenco eventi grafici, per trovare rapidamente gli eventi e spostarsi da uno all'altro.
Collegamenti a oggetti grafici
Per comprendere gli eventi di grafica potrebbero essere necessarie informazioni aggiuntive sullo stato del dispositivo o sugli oggetti Direct3D a cui viene fatto riferimento dall'evento. In molti eventi sono presenti i collegamenti alle informazioni, che è possibile seguire per accedere a ulteriori dettagli.
Tipi di eventi e marcatori di eventi
Gli eventi visualizzati nell'elenco di eventi sono organizzati in quattro categorie: eventi generali, eventi di disegno, gruppi di eventi definiti dall'utente e marcatori di eventi definiti dall'utente. Tutti gli eventi, ad eccezione degli eventi generali, sono visualizzati insieme a un'icona che indica la categoria di appartenenza.
Icona |
Descrizione evento |
---|---|
(nessuna icona) |
|
|
|
|
|
|
Eventi definiti dall'utente
Gli eventi definiti dall'utente sono specifici dell'app. Possono essere usati per correlare gli eventi significativi che si verificano nell'app a quelli presenti nell'Elenco eventi grafici. Ad esempio, è possibile creare gruppi di eventi definiti dall'utente per organizzare in gruppi o gerarchie gli eventi correlati al rendering dell'interfaccia, in modo da poter sfogliare più facilmente l'elenco di eventi, oppure creare marcatori quando vengono disegnati determinati tipi di oggetti, in modo da trovare facilmente gli eventi grafici correlati nell'elenco di eventi.
Per creare gruppi e marcatori nell'app si usano le stesse API fornite da Direct3D per altri strumenti di debug Direct3D. La tabella di seguito contiene un riepilogo delle API che è possibile usare per creare gruppi e marcatori nelle diverse versioni di Direct3D.
Descrizione API |
ID3D11DeviceContext2 (Direct3D 11,2) |
ID3DUserDefinedAnnotation (Direct3D 11.1) |
Famiglia D3DPerf_ API (Direct3D 11.0 e precedenti) |
---|---|---|---|
Iniziare un gruppo di eventi |
BeginEventInt |
BeginEvent |
D3DPerf_BeginEvent |
Terminare un gruppo di eventi |
EndEventInt |
EndEvent |
D3DPerf_EndEvent |
Creare un marcatore di eventi |
SetMarkerInt |
SetMarker |
D3DPerf_SetMarker |
È possibile usare qualsiasi API supportata dalla versione di Direct3D in uso. Ad esempio, se la destinazione è l'API Direct3D 11.1, per creare un marcatore di eventi si può usare SetMarker o D3DPerf_SetMarker, ma non SetMarkerInt perché quest'ultima è disponibile solo in Direct3D 11.2. È anche possibile combinare nella stessa app le API che supportano versioni diverse di Direct3D.
Vedere anche
Attività
Procedura dettagliata: oggetti mancanti a causa dello stato del dispositivo