Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

Información general sobre diagnóstico de gráficos

Diagnóstico de gráficos le ayuda a depurar errores de representación en juegos y aplicaciones de DirectX.

Para usar Diagnóstico de gráficos en Visual Studio 2013, debe tener una de estas ediciones:

  • Visual Studio 2013 Ultimate

  • Visual Studio 2013 Premium

  • Visual Studio 2013 Professional

  • Visual Studio 2013 Express para Windows

Nota Nota

Visual Studio 2013 Express para escritorio de Windows no admite las características de Diagnóstico de gráficos.

El Kit de desarrollo de software de Windows (SDK) para Windows 8.1 instala los componentes en tiempo de ejecución que requiere Diagnóstico de gráficos y admite el desarrollo para Windows 8.1 y Windows 8. Para usar Diagnóstico de gráficos en Windows 7 y Windows Vista, debe instalar uno de los SDK siguientes:

  • Windows SDK (versión 7.1)

  • SDK de DirectX (junio de 2010)

Diagnóstico de gráficos admite aplicaciones que usan Direct3D 10, Direct3D 10.1, Direct3D 11, Direct3D 11.1 y Direct3D 11.2 y proporciona compatibilidad limitada para las aplicaciones que usan Direct2D. No admite las aplicaciones que usan versiones anteriores de Direct3D, DirectDraw u otras API gráficas.

Hh873207.collapse_all(es-es,VS.120).gifCompatibilidad limitada con Direct2D

Como Direct2D es una API de modo de usuario basada en Direct3D, puede utilizar Diagnóstico de gráficos para ayudar a depurar problemas de representación en aplicaciones que usan Direct2D. Sin embargo, puesto que, en lugar de los eventos de alto nivel de Direct2D, solo se registran los eventos subyacentes de Direct3D, los eventos de Direct2D no aparecerán en la lista de eventos de gráficos. Además, como la relación entre los eventos de Direct2D y los eventos resultantes de Direct3D no siempre está clara, el uso de Diagnóstico de gráficos para depurar problemas de representación en aplicaciones que utilizan Direct2D no es sencillo. No obstante, puede utilizar Diagnóstico de gráficos para obtener información sobres problemas de representación de bajo nivel en aplicaciones que utilizan Direct2D.

La depuración de problemas de representación en una aplicación repleta de gráficos no es tan sencilla como iniciar un depurador y recorrer el código. En cada fotograma se producen cientos de miles de píxeles únicos, cada uno según un conjunto complejo de estado, datos, parámetros y código, de los cuales quizás solo algunos píxeles muestren el problema que intenta diagnosticar. Para complicar aún más las cosas, el código que genera cada píxel se ejecuta en hardware especializado que procesa cientos de píxeles en paralelo. Las herramientas y técnicas de depuración tradicionales, difíciles de utilizar incluso en código con pocos subprocesos, son ineficaces cuando hay que hacer frente a tantos datos.

Las herramientas de Diagnóstico de gráficos de Visual Studio están diseñadas para ayudarle a encontrar problemas de representación a partir de los artefactos visuales que indican el problema y, a continuación, remontarse al origen del problema centrándose únicamente en el código del sombreador, las etapas de canalización, las llamadas de dibujo, los recursos y el estado del dispositivo pertinentes en el propio código fuente de la aplicación.

Estos son algunos tipos de problemas de representación que Visual Studio puede ayudarle a solucionar.

Estado del dispositivo

La configuración correcta del dispositivo gráfico es importante porque determina cómo la canalización de gráficos interpreta los datos asociados a cada llamada de dibujo y cómo se combinan los resultados de la llamada de dibujo. Por ejemplo, si el estado del dispositivo especifica el orden de generación de vértices en el sentido de las agujas del reloj, ningún modelo que especifique vértices en el orden inverso se generará correctamente. Los problemas de estado del dispositivo pueden ser difíciles de diagnosticar porque la raíz del problema en el código fuente a menudo está muy alejada de los objetos afectados. Mediante la herramienta Diagnóstico de gráficos, puede ver el estado actual del dispositivo en cualquier momento durante la representación.

Parámetros y búferes de constantes sin inicializar o incorrectos

Las aplicaciones gráficas usan búferes de constantes y parámetros para pasar datos adicionales a una o varias llamadas de dibujo. Por ejemplo, los datos pueden especificar ubicaciones o aspectos distintos para diferentes objetos. Cuando estos datos no están inicializados o contienen valores incorrectos, el objeto correspondiente se genera incorrectamente o no se genera en absoluto. Este tipo de problema puede ser difícil de diagnosticar porque no siempre está claro si el problema está en los datos o en el código del sombreador que los utiliza. También puede resultar difícil determinar qué sombreadores, búferes de constantes y parámetros corresponden al error. Puede utilizar Diagnóstico de gráficos para determinar los sombreadores, búferes de constantes y parámetros que se aplican a cada llamada de dibujo y ver su contenido.

Errores del sombreador

Cometer un error en el código de la aplicación es casi inevitable, tanto si el código es C++ como HLSL (High Level Shader Language). Sin embargo, la depuración de código HLSL suele ser más difícil porque no dispone de la buena compatibilidad de depuración de la que disfrutan C++ y otros lenguajes. Diagnóstico de gráficos aporta las herramientas de depuración tradicionales de código a HLSL para poder recorrer el código, establecer puntos de interrupción y examinar el contenido de las variables, parámetros y búferes de constantes.

Para usar Diagnóstico de gráficos, primero debe registrar información sobre cómo una aplicación utiliza la API de Direct3D mientras se ejecuta y después examinar el comportamiento registrado. Para los fotogramas especificados, la información que se registra incluye llamadas API (como las que borran la pantalla, dibujan la geometría, envían sombreadores de cálculo o cambian el estado del dispositivo gráfico), además de sus argumentos y las copias de búferes y objetos a los que se hace referencia indirectamente. Asimismo, las llamadas API relacionadas con la configuración y la inicialización se registran ante de que se representen los fotogramas. La información que se registra se escribe en un archivo de registro de gráficos (.vsglog).

Deberá recrear el comportamiento de representación recopilado en el registro de gráficos reproduciendo los eventos de gráficos en el equipo de desarrollo o en un equipo o dispositivo remoto. El equipo de reproducción puede ser el mismo equipo o dispositivo donde se recopiló el registro de gráficos o uno diferente. Para la mayoría de las características de reproducción, se utiliza el hardware gráfico del equipo de reproducción para reproducir eventos de gráficos, pero cuando se usa el depurador de HLSL, el código del sombreador siempre se reproduce mediante una GPU emulada en la CPU. El uso de una GPU emulada permite recorrer el código del sombreador, inspeccionar variables y usar otras características de depuración comunes independientemente de si el hardware gráfico del equipo de reproducción admite la depuración de hardware.

Nota Nota

Aunque un registro de gráficos captura la mayoría de la información pertinente internamente, se requiere información adicional para usar plenamente algunas de las características de Diagnóstico de gráficos. Por ejemplo, para usar la característica de pila de llamadas de gráficos en su totalidad, también tiene que tener el archivo de base de datos del programa (.pdb) y el código fuente de la aplicación. Para depurar código fuente del sombreador de HLSL, también tiene que tener el código fuente del sombreador. (Si el sombreador se compila con el compilador del sombreador D3D11.1 y se habilita la información de depuración, el código fuente del sombreador se inserta en el registro de gráficos durante la captura).

Nota Nota

Como algunas API de Windows 8 no están disponibles en Windows 7 o Windows Vista, las aplicaciones que usan estas API no se pueden volver a crear en Windows 7 o Windows Vista.

Hh873207.collapse_all(es-es,VS.120).gifRegistros de gráficos

Un registro de gráficos contiene uno o varios fotogramas capturados desde una aplicación de gráficos DirectX en ejecución. Como los registros de gráficos son independientes entre sí, estos fotogramas se pueden volver a crear más tarde sin información o referencias externas. Esto significa que puede compartir los registros de gráficos con otros desarrolladores, examinar problemas en equipos diferentes y examinar antiguos registros de gráficos incluso si los modelos y las texturas se han cambiado en el desarrollo. También puede cargar varios archivos de registro de gráficos (.vsglog) al mismo tiempo para comparar los datos y los resultados de representación.

Para abrir un archivo de registro de gráficos (vsglog)

  1. En Visual Studio, en la barra de menús, elija Archivo, Abrir, Archivo. Aparece el cuadro de diálogo Abrir archivo.

  2. Especifique un archivo de registro de gráficos (.vsglog) para abrirlo y, a continuación, elija el botón Abrir.

Nota Nota

Puede extraer, modificar y guardar copias de mallas y texturas de un registro de gráficos mediante las herramientas de gráficos que forman parte de Visual Studio. Sin embargo, el contenido del registro de gráficos no se ve afectado por estas modificaciones. Para obtener información sobre estas herramientas de gráficos, vea Trabajar con activos 3D para juegos y aplicaciones.

La barra de herramientas de gráficos proporciona acceso directo a los comandos y las ventanas de herramientas de Diagnóstico de gráficos.

Barra de herramientas de gráficos en el modo de diagnóstico de gráficos

El botón Iniciar diagnóstico ejecuta la aplicación en Diagnóstico de gráficos. Cuando una aplicación se ejecuta en Diagnóstico de gráficos, se habilita el botón Capturar el siguiente fotograma presentado, y se puede usar los demás botones para ver las distintas ventanas de herramientas. Para obtener más información sobre cómo ejecutar la aplicación con Diagnóstico de gráficos y capturar información de gráficos, vea Capturar información de gráficos.

La ilustración siguiente muestra una distribución típica de las ventanas de herramientas que se utilizan para inspeccionar y depurar los fotogramas capturados. Cada ventana expone una categoría de información diferente sobre el fotograma capturado que se va a inspeccionar e incluso sobre los píxeles individuales del fotograma.

Todas las ventanas del depurador de gráficos

El panel de control de DirectX es un componente de DirectX que puede utilizar para cambiar la forma en que DirectX se comporta; por ejemplo, puede habilitar la versión de depuración de los componentes del runtime de DirectX, seleccionar la clase de mensajes de depuración que se notifican e impedir el uso de ciertas funciones del hardware gráfico para emular el hardware menos eficaz. Este nivel de control sobre DirectX puede ayudarle a depurar y probar la aplicación DirectX. Puede acceder al panel de control de DirectX desde Visual Studio.

Para abrir el panel de control de DirectX

  • En la barra de menús, elija Depurar, Gráficos, Panel de control de DirectX.

Adiciones de comunidad

Mostrar:
© 2014 Microsoft