Lista de eventos de gráficos
A Lista de eventos gráficos, que é uma das ferramentas de Diagnósticos Gráficos em Visual Studio, pode ajudá-lo a explorar os eventos de Direct3D que ocorreram durante um quadro específico de seu jogo ou aplicativo e analisa seus efeitos.Isso inclui eventos de suporte como a criação de dispositivo ou de objeto.
Essa é Lista de eventos gráficos:
Navegando na Lista de Eventos Gráficos
Como muitos eventos do Direct3D podem ser gerados por apenas uma estrutura em um jogo ou em um aplicativo típico, a Lista de eventos de gráficos possui recursos que podem ajudar você a localizar eventos importantes e informações relacionadas rapidamente.
Para reduzir o número de eventos sem interesse em Lista gráfica de evento, AddRef e Release os eventos são omitidos e você pode filtrar eventos pelo nome, um em de cada vez –– como é mostrado na ilustração anterior, que é filtrada para exibir os eventos que têm Vertex nos nomes deles ou usando uma lista delimitada por ponto-e-vírgula de palavras-chave, por exemplo, “Desenho;Primitivo” para exibir os eventos que têm Draw ou Primitive em seus nomes.
Observação |
---|
A lista de filtro é sensível espaço- para o exemplo, “; desenhoPrimitivo” e “; desenho A primitiva” é diferente. |
Como as chamadas Draw são eventos especialmente importantes, a Lista de eventos de gráficos fornece os botões Ir para a próxima chamada de desenho e Ir para a chamada de desenho anterior, que estão localizados no canto superior esquerdo da janela, para que você possa localizar e mover entre eles rapidamente.
Categorias de evento
Os eventos exibidos na Lista de eventos de elementos gráficos são organizados em quatro categorias; três que representam eventos individuais, e uma quarta usada para agrupar eventos relacionados.Cada evento é exibido junto com um ícone que indica a categoria que pertence.
Categoria |
Descrição |
---|---|
Evento de desenho |
Marca um evento de desenho que ocorre durante o quadro capturado. |
Evento pré-quadro |
Marcar um evento que ocorreu antes de quadro capturado - por exemplo, criação de dispositivo ou objeto. |
Marcador definido pelo usuário ou grupo de evento |
Marca um único evento, ou um grupo de eventos relacionados, conforme definido pelo aplicativo.Os grupos podem ser expandida para mostrar os eventos que incluem. |
Os eventos no quadro e pré-quadro são compilados em tempo de execução Direct3D, e correspondem a chamadas à API Direct3D.Você não precisa fazer nada para habilitar esses eventos.
Os eventos definidos pelo usuário e os grupos são específicos para um determinado app.Você pode usar eventos definidos pelo usuário para marcar eventos significativos que ocorrem em seu app para que você possa correlacioná-los a eventos de elementos gráficos na Lista de eventos de elementos gráficos.Por exemplo, você pode usar um marcador quando um determinado tipo de objeto é desenhado para que você possa localizar facilmente sua chamada de desenho na Lista de eventos de gráficos.Você pode usar grupos definidos pelo usuário do evento para organizar eventos relacionados em grupos ou em hierarquias para que você possa procurar a Lista de eventos de elementos gráficos mais facilmente.Por exemplo, você pode agrupar os eventos relacionados à renderização da interface.
Para criar marcadores do evento definidos pelo usuário e grupos de evento definidos pelo usuário no seu app, use os mesmos APIs que o Direct3D usa para marcar eventos e grupos para uso em outras ferramentas do Direct3D.No Direct3D 11.1, as APIs pertencem a interface ID3DUserDefinedAnnotation; para versões anteriores do Direct3D, use a família D3DPERF_ de APIs.
Descrição de API |
API (Direct3D 11.1) |
API (Direct3D 11.0 e posterior) |
---|---|---|
Inicie um grupo de evento definido pelo usuário |
ID3DUserDefinedAnnotation::BeginEvent |
D3DPerf_BeginEvent |
Terminar um grupo de evento definido pelo usuário |
ID3DUserDefinedAnnotation::EndEvent |
D3DPerf_EndEvent |
Crie um marcador de evento definido pelo usuário |
ID3DUserDefinedAnnotation::SetMarker |
D3DPerf_SetMarker |
Links para os objetos gráficos
Para entender os eventos de elementos gráficos, você pode precisar de informações adicionais sobre o estado do dispositivo ou dos objetos atuais do Direct3D que são referenciados pelo evento.A Lista de eventos gráficos fornecem links para essas informações para cada evento.
Usando a Lista de eventos de gráficos para localizar problemas de processamento
Usando a Lista de eventos de gráficos juntamente com outras ferramentas de Diagnóstico Gráficos, você pode encontrar problemas de renderização para um evento específico do Direct3D.Quando você identificar o evento no qual o problema aparece primeiro, você pode usar outras ferramentas do Graphics Diagnostics para determinar a causa do problema.
Para processar os problemas quando um objeto é ausente - isto é, o objeto não aparece onde você espera - é possível usar a Lista de eventos de gráficos juntamente com a janela Fases da canalização de gráficos.Quando você seleciona um evento Draw ou Dispatch na lista de eventos, a janela Fases do Pipeline de Elementos Gráficos exibe o efeito de evento em cada estágio do pipeline.Percorrendo esses eventos e olhando os estágios da canalização, você pode detectar quando o objeto foi renderizado, mesmo se não é exibido no destino de renderização.
Para compreender melhor os problemas de processamento em que um objeto é processado incorreto- que é, o objeto estiver presente, mas tem um incorreto aparência você pode usar Lista de eventos de elementos gráficos para examinar os eventos que são capturados em elementos gráficos registra o documento.Quando você seleciona um evento de Draw ou de Dispatch na lista de evento, Visual Studio exibe o destino processar como existiu quando o evento ocorreu.Percorrendo esses eventos e procurando como o destino processar se altera na janela do documento de log de elementos gráficos, você pode observar o efeito de eventos específicos e para entender assim como o final processa o destino foi acumulado por vários eventos que um erro de renderização é causado por como eventos diferentes interativos no destino renderização.
Consulte também
Tarefas
Passo a passo: Faltando objetos devido ao estado do dispositivo