Partilhar via


Capturando informações de gráficos

Você pode capturar informações de gráficos do aplicativo baseado no DirectX para que seja possível usar as ferramentas de Diagnóstico de Gráficos do Visual Studio para diagnosticar problemas de renderização.

Métodos de captura

No Windows 8,1, o tempo de execução do DirectX 11.2 pode capturar informação de gráficos internamente em nome de ferramentas de depuração, como diagnósticos de gráficos; isso é conhecido como captura robusta. Antes de ser incluído esse suporte no tempo de execução do DirectX, as informações de gráficos eram capturadas interceptando determinadas chamadas de função do DirectX para registrar argumentos e outras informações antes de encaminhar as chamadas para o DirectX para serem concluídas; isso é chamado de captura legada.

Como o tempo de execução do DirectX assume a responsabilidade exclusiva por capturar informações de gráficos no Windows 8,1, não há necessidade de atualizar a captura legada para oferecer suporte ao DirectX 11.2 e, portanto, a captura legada é preterida. No entanto, como o tempo de execução do DirectX 11.2 não tem suporte a versões do Windows anteriores ao Windows 8,1, o Visual Studio 2013 ainda oferece suporte à captura legada para aplicativos destinados a Windows 8 e Windows 7.

Os dois métodos registram informações semelhantes e não mudam o modo como as informações de gráficos são capturadas, nem usam as ferramentas de Diagnósticos de Gráficos.

Captura robusta

A captura robusta tem suporte a diagnósticos de gráfico do Visual Studio 2013 no Windows 8,1, no Windows RT 8.1 e no Windows Phone 8.1. Oferece suporte a DirectX 10.0 a DirectX 11.2 e é capaz de capturar informações de gráficos sobre novos recursos do Direct3D 11.2 como, por exemplo, alocação dinâmica de recursos. No entanto, não oferece suporte completo a todos os recursos do Direct3D 11.2. Por exemplo, não é possível depurar um sombreador HLSL que foi criado usando o recurso de vinculação de sombreador HLSL. A captura robusta usa uma nova API de captura para dar suporte a seus cenários de captura programática.

Captura legada

A captura legada oferece suporte a diagnósticos de gráficos Visual Studio 2013 e Visual Studio 2012 no Windows 8, Windows RT 8 e Windows 7. Compatível com DirectX 10.0 a DirectX 11.1. A captura legada não tem suporte a nenhum recurso do Direct3D 11.2 e é preterida, exceto em cenários em que a captura robusta não está disponível. A captura legada usa a API da captura definida no arquivo do cabeçalho vsgcapture.h para dar suporte a seus cenários de captura programática. Esse tipo de captura programática também é preterida, exceto em cenários em que a captura robusta não está disponível.

Capturando informações de gráficos

A captura de informações de gráficos é um processo de duas etapas. Primeiramente, você executa o aplicativo em Diagnóstico de Gráficos e depois especifica um ou mais quadros dos quais serão capturadas informações detalhadas.

Para executar o aplicativo em Diagnóstico de Gráficos

  • Na barra de menus, escolha Depurar, Gráficos, Iniciar Diagnóstico. (Teclado: pressione Alt+F5)

  • Na barra de ferramentas Diagnóstico de Gráficos, escolha o botão Iniciar Diagnóstico.

Enquanto um aplicativo estiver sendo executado no Diagnóstico de Gráficos, determinados tipos de informação de gráfico são capturados o tempo todo; isso inclui a configuração do dispositivo, a criação da cadeia de troca, a criação de recursos e objetos gráficos, bem como outros eventos importantes que afetam mais de um quadro. Ao mesmo tempo, você pode capturar informações detalhadas sobre quadros específicos; isso inclui chamadas de desenho e distribuições de sombreadores de cálculo, juntamente com os recursos e objetos Direct3D que oferecem suporte a eles.

Para capturar um quadro

  • No Visual Studio, no Diagnóstico de gráficos barra de ferramentas, escolha o capturar quadro botãoÍcone do botão de captura de gráficos.

  • No teclado, pressione Print Screen.

    Dica

    Enquanto um aplicativo estiver sendo executado em Diagnóstico de Gráficos, a tecla Print Screen pode ser usada apenas para capturar um quadro de informações de gráfico; ela não executa sua função normal.Isso permanece em vigor até que você pare de capturar informações de gráficos, geralmente interrompendo a depuração ou saindo do aplicativo normalmente, mesmo que outro aplicativo esteja no foco.

  • No Visual Studio 2013, atualização 3 a interface para a captura de quadros foi alterada. Na interface de captura do Visual Studio, escolher o capturar quadro botão localizado acima o sessão de diagnóstico linha do tempo, ou escolha o grande capturar quadro botão localizado abaixo do quadros por segundo -pista e à direita de todos os quadros capturados anteriormente. Ambos os botões estão realçados na imagem abaixo.

    Capture quadros usando a ferramenta de uso de GPU.

    Quando estiver pronto para examinar os quadros capturada, inicie os análise de gráficos do Visual Studio, seguindo o quadro... link acima as miniaturas de imagem, ou clicando duas vezes na miniatura.

Somente quadros inteiros podem ser capturados, de modo que quando você inicia uma captura, as informações de gráfico do próximo quadro são realmente gravadas. A gravação começa logo depois que o quadro no qual você iniciou a captura é apresentado e termina quando o quadro capturado é apresentado. É possível capturar quantos quadros você desejar enquanto o aplicativo estiver em execução no Diagnóstico de Gráficos. Se você não capturar nenhum quadro, o log de elementos gráficos será descartado.

Quando você captura um quadro pela primeira vez, o Visual Studio exibe a janela de documento do log de elementos gráficos (.vsglog). Se você fechar a janela de log de elementos gráficos, interromper a depuração ou fechar o aplicativo, não será possível capturar mais quadros para esse log. Para capturar mais informações de gráficos, você terá que executar o aplicativo em Diagnóstico de Gráficos novamente para iniciar um novo log de elementos gráficos.

Opções de captura de diagnóstico de gráficos

Você pode configurar a captura para coletar as pilhas de chamada para todos os eventos de gráficos ou um subconjunto limitado, desabilitar a captura HUD e ativar ou desativar o modo de compatibilidade de captura.

Para configurar as opções de captura do diagnóstico de gráficos

  1. Na barra de menus, escolha Ferramentas, Opções. A caixa de diálogo Opções é exibida.

  2. Na lista de categorias de opções à esquerda, escolha Diagnóstico de gráficos, e, em seguida, configure o Diagnóstico de gráficos opções que você deseja.

    • Coleta das pilhas de chamada durante a captura (torna a captura mais lenta)
      Marque esta caixa para coletar as pilhas de chamadas. Por padrão, as pilhas de chamada são coletadas e para desenho, distribuição, presente e marcadores de desempenho está selecionada. Para capturar as pilhas de chamada de todos os eventos, selecione para tudo. Para não coletar pilhas de chamadas, desmarque Coletar pilha de chamada durante a captura (torna a captura mais lenta).

    • Como desabilitar o jogo HUD durante a captura
      Marque essa caixa para desabilitar a sobreposição HUD que um aplicativo executando em diagnóstico de gráficos geralmente exibe. Desmarque essa opção para exibir a sobreposição HUD.

    • Captura no modo de compatibilidade
      Marque esta caixa para capturar informações de gráficos no modo de compatibilidade. A captura no modo de compatibilidade é o padrão. No modo de compatibilidade, o Direct3D não irá relatar que a GPU é compatível com todos os recursos adicionais além daqueles definidos no nível de recurso base. Isso evita que o aplicativo sendo capturado use extensões específicas de hardware da GPU em que é capturado e garante que o log de elementos gráficos possa ser executado usando qualquer GPU compatível com o mesmo nível de recurso ou superior. Desmarque essa caixa para desabilitar o modo de compatibilidade. Os logs capturados com o modo de compatibilidade desabilitado não conseguirão reproduzir em nenhuma GPU que não seja compatível com os mesmos recursos adicionais que foram usados pelo aplicativo durante a captura.

Capturando informações de gráficos remotamente

As informações de gráficos podem ser capturadas de um aplicativo que está em execução no computador local, de um dispositivo ou computador remoto. A captura remota tem suporte em computadores com Windows 8,1 e dispositivos com Windows RT 8.1. Para capturar informações de gráficos de um aplicativo que está em execução remotamente, configure seu projeto para depuração remota e execute o aplicativo em Diagnóstico de Gráficos, como descrito anteriormente. O aplicativo é executado no computador remoto e as informações de gráficos capturadas são gravadas no computador de desenvolvimento.

Como você configura o projeto para depuração remota depende do tipo de aplicativo que está sendo desenvolvido e da linguagem de programação que está sendo usada. Para obter informações sobre como configurar depuração remota para um aplicativo da Windows Store, consulte Executar aplicativos da Windows Store em uma máquina remota a partir do Visual Studio. Para obter informações sobre como configurar depuração remota para um aplicativo de área de trabalho do Windows, consulte Configurar depuração remota para um projeto do Visual Studio.

Posteriormente, você pode usar um dispositivo ou computador remoto para reproduzir informações de gráficos, independentemente de onde as informações foram capturadas. Para obter mais informações, consulte Como alterar a máquina de reprodução de diagnóstico do gráfico.

Captura de informações de elementos gráficos da linha de comando

Informações de gráficos poderão ser capturadas em um aplicativo usando uma ferramenta de linha de comando. Essa ferramenta, DXCap.exe, pode capturar e reproduzir rapidamente informações de gráficos sem usar o Visual Studio ou a captura programática. Em específico, você pode usar o DXCap.exe para automação ou em um ambiente de teste. Para obter mais informações sobre DXCap.exe, consulte Ferramenta de captura de linha de comando

Consulte também

Tarefas

Passo a passo: capturando informações de gráficos