Lista de eventos do gráfico

Use a Lista de Eventos de Gráficos no Diagnóstico de Gráficos do Visual Studio para explorar os eventos Direct3D registrados durante a renderização de um quadro do jogo ou do aplicativo.

Esta é a janela Lista de Eventos de Gráficos:

Uma lista de eventos que têm "Index" em seu nome.

Dica

A partir da atualização 3 do Visual Studio 2013, as janelas da ferramenta Diagnóstico de Gráficos são hospedadas em uma cópia independente do shell do Visual Studio.Esse shell personalizado, chamado de análise de gráficos elimina opções e menus desnecessários, caso contrário, o fluxo de trabalho e a lista de eventos de gráficos são os mesmos de antes.Para obter mais informações sobre essa alteração, consulte Visão geral do diagnóstico de gráficos.

Usando a lista de eventos

Quando você seleciona um evento na lista de eventos, isso se reflete nas informações exibidas por outras ferramentas de Diagnóstico de Gráficos. Com a lista de eventos com essas outras ferramentas, você pode examinar detalhadamente um problema de renderização para determinar sua causa. Para saber mais sobre como você pode resolver problemas de renderização usando a lista de eventos com outras ferramentas de diagnóstico de gráficos, consulte Exemplos de diagnóstico do gráfico.

O uso dos recursos da lista de eventos de maneira efetiva é importante para contornar quadros complexos que podem conter milhares de eventos. Para usar a lista de eventos de maneira efetiva, escolha a exibição que funcione melhor para você, use a pesquisa para filtrar a lista de eventos, siga os links para saber mais sobre os objetos Direct3D associados a um evento e use os botões de seta para alternar rapidamente chamadas de desenho.

Exibições da lista de eventos

A lista de eventos oferece suporte a duas exibições diferentes que organizam eventos de gráficos de maneiras distintas para dar suporte ao fluxo de trabalho e às preferências. A primeira exibição é o modo de exibição de chamadas de desenho, que organiza eventos e seu estado associado de maneira hierárquica. A segunda exibição é o modo de exibição da linha do tempo, que organiza eventos cronologicamente, em uma lista plana.

  • A exibição Chamadas de Desenho
    Exibe eventos capturados e seu estado em uma hierarquia. O nível superior da hierarquia é constituído de eventos como chamadas de desenho, limpezas, presentes e os que lidam com exibições. Na lista de eventos, é possível expandir chamadas de desenho para exibir o estado atual do dispositivo no momento da chamada de desenho. E você ainda pode expandir cada tipo de estado para exibir os eventos que definem seus valores. Nesse nível, também é possível ver se um determinado estado foi definido em um quadro anterior ou se ele foi definido mais de uma vez desde a chamada de desenho mais recente.

  • A exibição Linha do Tempo
    Exibe cada evento capturado em ordem cronológica. Essa forma de organizar a lista de eventos é a mesma de versões anteriores do Visual Studio.

Para alterar o modo de exibição da lista de eventos

  • Na janela Lista de Eventos de Gráficos, acima da lista de eventos, localize o menu suspenso Exibir e escolha a exibição Linha do Tempo ou Chamadas de Desenho.

Filtrando eventos

É possível usar a caixa Pesquisar, localizada no canto superior direito da janela Lista de Eventos de Gráficos, para filtrar a lista de eventos e incluir apenas eventos cujos nomes contenham palavras-chave específicas. Você pode especificar palavras-chave únicas como Vertex, como mostrado na ilustração anterior, ou várias palavras-chave usando uma lista delimitada por ponto-e-vírgula como Draw;Primitive, que compara eventos que tenham Draw ou Primitive em seus nomes. As pesquisas diferenciam espaço em branco. Por exemplo, VSSet e VS Set são pesquisas diferentes. Assim, não se esqueça de formar pesquisas com cuidado.

Alternando entre chamadas de desenho

Como o exame de chamadas Draw é especialmente importante, é possível usar os botões Ir para a próxima chamada de desenho e Ir para a chamada de desenho anterior, localizados no canto superior esquerdo da janela Lista de Eventos de Gráficos, para encontrar e alternar rapidamente entre chamadas de desenho.

Para entender determinados eventos de gráficos, talvez sejam necessárias informações adicionais sobre o estado do dispositivo atual ou sobre os objetos Direct3D mencionados pelo evento. Muitos eventos fornecem links a essas informações, que é possível seguir para obter mais detalhes.

Tipos de eventos e marcadores de eventos

Os eventos exibidos na lista de eventos são organizados em quatro categorias: eventos gerais, eventos de desenho, grupos de eventos definidos pelo usuário e marcadores de evento definidos pelo usuário. Exceto no caso de eventos em geral, cada evento é exibido com um ícone que indica a categoria a que pertence.

Ícone

Descrição do evento

(sem ícone)

Evento em geral

Qualquer evento que não seja um evento definido pelo usuário, um grupo de eventos definido pelo usuário ou um evento de desenho.

O ícone de evento de desenho

Evento de desenho

Marca um evento de desenho ocorrido durante o quadro capturado.

O ícone de marcador de evento definido pelo usuário

Grupo de eventos definido pelo usuário

Eventos relacionados a grupos, conforme definido pelo aplicativo.

O ícone de marcador de evento definido pelo usuário

Marcador de evento definido pelo usuário

Marca um local específico, conforme definido pelo aplicativo.

Eventos definidos pelo usuário

Os eventos definidos pelo usuário são específicos do aplicativo. É possível usá-los para correlacionar eventos significativos ocorridos no aplicativo com eventos na Lista de Eventos de Gráficos. Por exemplo, é possível criar grupos de eventos definidos pelo usuário para organizar eventos relacionados, como os que renderizam a interface do usuário, em grupos ou em hierarquias de forma que você possa navegar na lista de eventos mais facilmente ou criar marcadores quando determinados tipos de objetos forem utilizados para encontrar de maneira fácil os eventos de gráficos na lista de eventos.

Para criar grupos e marcadores no aplicativo, você usa as mesmas APIs fornecidas pelo Direct3D a serem usadas por outras ferramentas de depuração do Direct3D. A tabela a seguir resume as APIs que é possível usar para criar grupos e marcadores em versões diferentes do Direct3D.

Descrição da API

ID3D11DeviceContext2 (Direct3D 11.2)

ID3DUserDefinedAnnotation (Direct3D 11.1)

Família D3DPerf_ API (Direct3D 11.0 e anteriores)

Iniciar um grupo de eventos

BeginEventInt

BeginEvent

D3DPerf_BeginEvent

Terminar um grupo de eventos

EndEventInt

EndEvent

D3DPerf_EndEvent

Criar um marcador de evento

SetMarkerInt

SetMarker

D3DPerf_SetMarker

É possível usar qualquer uma dessas APIs compatíveis com a versão do Direct3D. Por exemplo, se estiver segmentando a API Direct3D 11.1, você poderá usar SetMarker ou D3DPerf_SetMarker para criar um marcador de evento, mas não SetMarkerInt, porque ele só está disponível no Direct3D 11.2, e não é possível misturar aqueles compatíveis com versões diferentes do Direct3D no mesmo aplicativo.

Consulte também

Tarefas

Instruções passo a passo: objetos ausentes devido ao estado do dispositivo