Cattura informazioni grafica
È possibile acquisire informazioni grafiche da utilizzare con gli strumenti di diagnostica della grafica di Visual Studio per diagnosticare i problemi di rendering nelle applicazioni basate su DirectX.
È possibile acquisire informazioni grafiche manualmente o a livello di codice.Per eseguire l'acquisizione manualmente, eseguire l'app da Visual Studio, quindi scegliere il pulsante Acquisisci frame.Per acquisire a livello di codice, utilizzare l'API di acquisizione, inclusa in Visual Studio, nel codice sorgente dell'applicazione per specificare quando acquisire i frame.
È inoltre possibile impedire l'acquisizione di informazioni grafiche da parte dell'applicazione.
Acquisizione manuale di informazioni sulla grafica
Utilizzare il pulsante Acquisisci frame nella barra degli strumenti di diagnostica della grafica per acquisire manualmente un frame di informazioni grafiche da un'applicazione Direct3D in esecuzione.Per acquisire più frame, scegliere il pulsante più volte.Prima che sia possibile acquisire i frame manualmente, è necessario avviare l'applicazione da Visual Studio e abilitare la diagnostica della grafica.
Visual Studio utilizza le informazioni acquisite per ricreare in un secondo momento i frame acquisiti e consentire di utilizzare gli strumenti di diagnostica della grafica per esaminarli in dettaglio.
Per avviare un'applicazione con la diagnostica della grafica abilitata
- Sulla barra dei menu scegliere Debug, Grafica, Avvia diagnostica.(Tastiera: premere Alt+F5)
Dopo le diagnostica della grafica associa un'applicazione, è possibile acquisire informazioni grafiche per tutti i frame desiderati.Ogni volta che si avvia un'acquisizione, gli eventi Direct3D che si verificano durante il frame successivo vengono registrati, insieme agli oggetti Direct3D e alle risorse che li supportano.La registrazione inizia immediatamente dopo che il frame corrente è verificato e termina quando il frame che si desidera acquisire è verificata.
Per acquisire un frame di informazioni grafiche
- Sulla a barra degli strumenti Diagnostica grafica scegliere il pulsante Acquisisci frame. (Tastiera: con l'applicazione in stato attivo, premere Stampa schermata)
Quando viene acquisito il primo frame, in Visual Studio viene creato un log di grafica in cui vengono registrate le informazioni.I frame aggiuntivi acquisiti vengono aggiunti a questo log.Se si chiude il documento del log di grafica (.vsglog) in Visual Studio quando l'applicazione è in esecuzione, non è possibile acquisire altri frame di informazioni sulla grafica, ma è possibile continuare a eseguire il debug utilizzando il debugger di Visual Studio.Per acquisire maggiori informazioni grafiche, arrestare il debug dell'applicazione, quindi utilizzare il comando Avvia diagnostica per riavviare l'applicazione.
Acquisizione a livello di codice di informazioni sulla grafica
Talvolta non è pratico né possibile basarsi sull'acquisizione manuale per raccogliere informazioni su un problema di rendering che si sta tentando di risolvere.Ad esempio, alcuni tipi di problemi possono essere troppo intermittenti per essere riprodotti manualmente, ma le condizioni del programma che lo provocano potrebbero essere note, oppure potrebbe essere necessario raccogliere le informazioni grafiche in un sistema che non supporta l'acquisizione manuale in quanto non supporta Visual Studio, come nel caso dei dispositivi Windows RT.Per questi scenari, in Visual Studio è inclusa un'API che è possibile chiamare a livello di codice per acquisire informazioni sulla grafica in un log.Dopo che il programma ha completato l'esecuzione, è possibile aprire il log della grafica in Visual Studio per esaminare i problemi registrati.
Per informazioni su come consentire l'acquisizione a livello di codice nell'applicazione e come configurare il computer che la esegue in modo da supportare l'acquisizione a livello di codice, vedere Procedura dettagliata: cattura programmatica delle informazioni grafica.
Impedire l'acquisizione di informazioni grafiche
Prima di pubblicare l'applicazione, è possibile disabilitare la diagnostica della grafica e altri strumenti di profilatura per impedire agli utenti di individuare il modo in cui l'applicazione utilizza l'API Direct3D.Queste informazioni potrebbero essere utilizzate illecitamente.Per ulteriori informazioni, vedere Procedura: disabilitare la diagnostica grafica nelle app.
Documenti del log di grafica
Nei documenti del log di grafica vengono memorizzate informazioni relative alla grafica raccolte durante la sessione di acquisizione della diagnostica della grafica.Una sessione di acquisizione può essere avviata manualmente o a livello di codice.Nei log di grafica sono contenuti uno o più frame acquisiti da un'applicazione grafica DirectX in esecuzione.Per ogni fotogramma acquisito, viene registrato un elenco di ogni evento Direct3D verificatosi durante il frame.Ciò include eventi Direct3D di supporto verificatisi in precedenza, ad esempio la creazione di un dispositivo di grafica, e shader, modelli, trame e altre risorse grafiche di supporto.Poiché ogni log di grafica è indipendente, questi frame possono essere ricreati in qualsiasi momento, passo dopo passo e senza informazioni o riferimenti esterni.È possibile condividere i log di grafica ed è possibile esaminare i problemi in un computer diverso da quello utilizzato per acquisire i dati o per sviluppare il codice.Inoltre, è possibile esaminare i log della grafica obsoleti quando i modelli e le trame sono state modificate nello sviluppo.Quando si utilizza la diagnostica della grafica per diagnosticare i problemi di grafica, è possibile esaminare qualsiasi chiamata API di Direct3D e il relativo stato associato, i singoli vertici nel buffer e anche il modo in cui i singoli pixel sono interessati dalle chiamate di disegno.
[!NOTA]
Sebbene il log della grafica acquisisca la maggior parte delle informazioni più importanti internamente, sono necessarie altre informazioni per utilizzare pienamente alcune funzionalità di diagnostica della grafica.Ad esempio, per sfruttare appieno la funzionalità dello stack di chiamate di grafica, è inoltre necessario disporre del file di database di programma (PDB) e del codice sorgente dell'applicazione e di eseguire il debug del codice sorgente dello shader HLSL. È inoltre necessario disporre del codice sorgente dello shader (se lo shader è stato compilato utilizzando il compilatore di shader D3D11.1 e le informazioni di debug sono abilitate, allora il codice sorgente dello shader verrà incorporato nel log della grafica durante l'acquisizione).
[!NOTA]
È possibile estrarre, modificare e salvare copie di mesh e trame da un log di grafica utilizzando gli strumenti di grafica che fanno parte di Visual Studio.Tuttavia, il contenuto del log di grafica non è interessato da tali modifiche.Per ulteriori informazioni su tali strumenti di grafica, vedere Utilizzo di risorse tridimensionali per giochi e app.
Vedere anche
Attività
Procedura: disabilitare la diagnostica grafica nelle app
Procedura dettagliata: cattura manuale informazioni grafica
Procedura dettagliata: cattura programmatica delle informazioni grafica