O DirectX Graphics de depuração.
Visual Studio contém ferramentas de diagnóstico que você pode usar para ajudar a resolver problemas de processamento em jogos e apps baseados em DirectX.
Depuração de gráficos DirectX no Visual Studio
Depurando problemas de renderização em um jogo ou aplicativo geralmente não é tão fácil quanto iniciar um depurador e percorrer pelo código.Diagnosticar problemas de renderização de gráficos apresenta vários desafios exclusivos.Por exemplo, em qualquer determinado quadro, as centenas de milhares - se não milhões - de pixels são gerados como saída e muitas vezes mais do que podem ser geradas, mas nunca vistos - desses, talvez somente alguns pixels exibirão o problema que você está tentando diagnosticar.Além disso, pode haver vários gigabytes de dados por trás de cada quadro renderizado, e para complicar ainda mais, todos estes dados são processados no hardware dedicado que divide o trabalho entre centenas ou milhares de unidades de processamento especializadas, os quais todas estão fora da observação direta da Unidade de Processamento Central (CPU).Depuradores tradicionais não são compilados apenas para resolver esses tipos dos desafios.
As ferramentas de Diagnósticos Gráficos em Visual Studio são criadas para ajudá-lo a localizar a origem de problemas de renderização, começando com os artefatos visuais que indicam o problema, invertem o sentido do código do sombreador relacionado, no pipeline de elementos gráficos, chamadas de desenho, recursos e o estado de dispositivo, e até mesmo pelo próprio código-fonte do aplicativo.
Aqui estão alguns dos tipos de problemas de processamento que o Visual Studio pode ajudar.
Estado de dispositivo
A configuração correta do dispositivo de gráficos é importante porque define as expectativas que os dados do modelo e textura devem cumprir em todo o aplicativo.Por exemplo, se o estado do dispositivo especifica a ordem de rolagem como sentido horário, nenhum modelo que especifica os vértices em um sentido anti-horário não será renderizado corretamente; ou, se a função de teste de profundidade foi definida como maior que, os objetos que estão mais longe serão desenhados sobre os objetos que estão mais próximos.Os problemas de estado do dispositivo podem ser difíceis de diagnosticar porque a raiz do problema no código-fonte geralmente é removida dos objetos afetados.
Diagnósticos Gráficos podem ajudá-lo a analisar o estado dos dados e do dispositivo por trás dos pixels afetados para que você possa restringir os problemas de estado do dispositivo.
Bugs do sombreador
Fazer um erro no código do aplicativo é quase inevitável, se o código é C++ ou Linguagem do Sombreador de Alto Nível (HLSL).No entanto, depurar o código HLSL foi tradicionalmente mais difícil porque não tem suporte de depuração avançada que o C++ e outros idiomas apreciem.
Diagnósticos Gráficos podem ajudar você a localizar e corrigir erros do sombreador porque torna possível depurar o código HLSL.Usando as informações capturadas em um log de gráficos, o depurador HLSL pode "repetir" eventos de desenho no nível do sombreador para que você possa passar pela execução, definir os pontos de interrupção e examinar o conteúdo de variáveis temporárias, parâmetros e de buffers da constante.Para ajudá-lo a focalizar a coisa certa, os Diagnósticos de Elementos Gráficos fornecem pontos de entrada ao depurador HLSL dos eventos de desenho (através da janela Fases do pipeline de elementos gráficos ), e os pixels individuais (por meio do Histórico de pixels de elementos gráficos).
Parâmetros e constantes não inicializado ou incorretos
Os aplicativos gráficos usam parâmetros e armazenam constantes para fornecer informações de forma eficiente para a canalização de gráfico de modo que objetos diferentes possam ser convertidos ou renderizados de maneira diferente pelo código sombreador personalizado.Quando um buffer constante ou um parâmetro não foram inicializados, ou quando não contém o valor desejado, o objeto correspondente é processado incorretamente, ou talvez de forma alguma.Problemas com um buffer constante ou um parâmetro podem ser difíceis de diagnosticar porque não é sempre claro se o erro é causado por um problema com um buffer constante ou um parâmetro, ou por um erro no código do shader, e se ele é um erro do shader, que correspondam aos shaders.
Diagnósticos Gráficos podem ajudá-lo a identificar os sombreadores que correspondem ao erro e usar o Depurador HLSL para inspecionar o código do sombreador para que você possa restringir no parâmetro e problemas constantes de armazenamento.Quando você estiver satisfeito que o código do sombreador está correto, você poderá usar o Depurador HLSL para identificar parâmetros suspeitos ou constantes, use a Pilha de Chamadas de Eventos de Elementos Gráficos para navegar no código de app que processou o objeto afetado, e depois encontre onde o parâmetro ou o buffer constante foram definidos mais recentemente.
Compatibilidade de versão de DirectX
Diagnósticos Gráficos suportam os aplicativos que usam Direct3D 10, 10.1, 11 e 11.1 e fornecem suporte limitado para os aplicativos que usam o Direct2D.Ele não suporta os aplicativos que usam versões anteriores do Direct3D, DirectDraw, ou outros APIs gráficos.
Suporte Direct2D Limitado
Como o API do Direct2D usa o API do Direct3D para grande parte de sua funcionalidade, os Diagnósticos de Gráficos podem ser usados para ajudar a depuração de aplicativos que usam Direct2D.No entanto, como os Diagnósticos Gráficos engancham nos eventos Direct3D subjacentes em vez dos eventos de alto nível do Direct2D, não captura os detalhes dos eventos Direct2D que não usam o Direct3D.Além disso, como as relações entre as chamadas API do Direct2D e as chamadas API do Direct3D resultantes não estão sempre claras, o uso do Diagnóstico de Gráficos para aplicativos do Direct2D não é simples.Ainda, você pode usar Diagnósticos Gráficos para obter informações sobre problemas de baixo nível de renderização em aplicativos que usam o Direct2D.
Requisitos do sistema operacional e SDK
Windows 8 instala os componentes de tempo de execução que são exigidos pelos recursos de depuração gráficos descritos neste documento.Para usar esses recursos no Windows 7 e Windows Vista, você deve instalar um dos seguintes Kits de Desenvolvimento de Software (SDKs):
DirectX SDK (junho de 2010)
Windows SDK (versão 7.1)
Tópicos relacionados
Nome |
Descrição |
---|---|
Descreve como usar os Diagnósticos Gráficos para depurar e diagnosticar problemas de renderização em aplicativos baseados no DirectX. |
|
Fornece links para artigos que demonstram como usar diagnóstico gráficos para capturar informações de elementos gráficos e para diagnosticar problemas de processamento comuns. |
|
Apresenta a funcionalidade de depuração em Visual Studio. |
|
Fornece links para artigos que abordam tecnologias de elementos gráficos de DirectX. |