Capturar información de gráficos

Puede capturar información de gráficos desde la aplicación basada en DirectX para que pueda utilizar las herramientas de Diagnóstico de gráficos de Visual Studio con el fin de diagnosticar problemas de representación.

Métodos de captura

En Windows 8,1, el tiempo de ejecución de DirectX 11.2 puede capturar información de gráficos internamente en nombre de herramientas de depuración, como diagnóstico de gráficos. Es lo que se conoce como captura robusta. Antes de añadir esta compatibilidad al tiempo de ejecución de DirectX, la información de gráficos se capturaba interceptando determinadas llamadas de función para registrar argumentos y otra información antes de reenviar las llamadas a DirectX para completarlas. Es lo que se llama captura heredada.

Como el tiempo de ejecución de DirectX tiene la responsabilidad exclusiva de capturar información de gráficos en Windows 8,1, no es necesario actualizar la captura heredada para que sea compatible con DirectX 11.2 y, por lo tanto, la captura heredada está en desuso. Sin embargo, como el tiempo de ejecución de DirectX 11.2 no es compatible con versiones de Windows anteriores a Windows 8,1, Visual Studio 2013 todavía admite la captura heredada para aplicaciones que tienen como destino Windows 8 y Windows 7.

Ambos métodos registran información parecida y no cambian cómo se captura la información de gráficos o se utilizan las herramientas de Diagnóstico de gráficos.

Captura robusta

La captura robusta es compatible con el diagnóstico de gráficos de Visual Studio 2013 en Windows 8,1, Windows RT 8.1 y Windows Phone 8.1. Es compatible con DirectX 10.0 mediante DirectX 11.2 y puede capturar información de gráficos sobre las nuevas características de Direct3D 11.2, por ejemplo, recursos en mosaico. No obstante, no es totalmente compatible con todas las características de Direct3D 11.2, por ejemplo, no puede depurar un sombreador HLSL que se creó utilizando la característica de vinculación del sombreador HLSL. La captura robusta utiliza una nueva API de captura para ser compatible con sus escenarios de captura mediante programación.

Captura heredada

La captura heredada es compatible con el diagnóstico de gráficos de Visual Studio 2013 y Visual Studio 2012 en Windows 8, Windows RT 8 y Windows 7. Es compatible con DirectX 10.0 mediante DirectX 11.1. La captura heredada no es compatible con ninguna característica de Direct3D 11.2 y está en desuso, excepto para los escenarios en los que la captura robusta no está disponible. La captura heredada utiliza la API de captura definida en el archivo de encabezado vsgcapture.h para ser compatible con sus escenarios de captura mediante programación. Este tipo de captura mediante programación también está en desuso, excepto para los escenarios en los que no está disponible la captura robusta.

Capturar información de gráficos

La captura de información de gráficos es un proceso de dos pasos. En primer lugar, ejecute la aplicación en Diagnóstico de gráficos y después especifique uno o varios fotogramas de los que desea capturar información detallada.

Para ejecutar la aplicación en Diagnóstico de gráficos

  • En la barra de menús, elija Depurar, Gráficos, Iniciar diagnóstico. (Teclado: presione Alt+F5)

  • En la barra de herramientas Diagnóstico de gráficos, elija Iniciar diagnóstico.

Mientras se ejecuta una aplicación en Diagnóstico de gráficos, parte de la información de los gráficos se captura en todo momento; entre esta información se incluye la configuración del dispositivo, la creación de la cadena de intercambio, la creación de objetos gráficos y recursos y otros eventos importantes que afectan a varios fotogramas. Al mismo tiempo, puede capturar información detallada sobre fotogramas específicos, como llamadas de dibujo y envíos del sombreador de cálculo, así como los objetos Direct3D y los recursos subyacentes.

Para capturar un fotograma

  • En Visual Studio, en la barra de herramientas Diagnóstico de gráficos, elija el botón Capturar fotogramaIcono de botón de captura de gráficos.

  • En el teclado, presione Imprimir pantalla.

    NotaNota

    Mientras se ejecuta una aplicación en Diagnóstico de gráficos, la tecla Imprimir pantalla solo se puede utilizar para capturar un fotograma de información de gráficos, es decir, no funciona como lo hace normalmente.Esto es así hasta que deja de capturar información de gráficos, generalmente deteniendo la depuración o saliendo normalmente de la aplicación, incluso si otra aplicación tiene el foco.

  • En Visual Studio 2013 Update 3, la interfaz para capturar fotogramas ha cambiado. En la interfaz de captura de Visual Studio, elija el botón Capturar fotograma situado encima de la escala de tiempo Sesión de diagnóstico o elija el botón grande Capturar fotograma situado debajo de la calle Fotogramas por segundo y a la derecha de los fotogramas capturados anteriormente. En la imagen siguiente, están resaltados los dos botones.

    Capturar marcos con la herramienta de uso de la GPU.

    Cuando esté listo para examinar los fotogramas capturados, inicie el Análisis de gráficos de Visual Studio siguiendo el vínculo Fotograma... situado sobre las imágenes en miniatura o haciendo doble clic en la miniatura.

Solo se pueden capturar fotogramas enteros, por lo que cuando inicia una captura, en realidad se registra la información de gráficos del siguiente fotograma. La grabación se inicia inmediatamente después de que aparece el fotograma en el que ha iniciado la captura y finaliza cuando aparece el fotograma capturado. Puede capturar tantos fotogramas como desee mientras la aplicación se ejecuta en Diagnóstico de gráficos. Si no captura ningún fotograma, se descarta el registro de gráficos.

Cuando capture un fotograma por primera vez, Visual Studio mostrará la ventana de documento del registro de gráficos (.vsglog). Si cierra la ventana del registro de gráficos, detiene la depuración o cierra la aplicación, no podrá capturar más fotogramas en ese registro. Para capturar más información de gráficos, tendrá que ejecutar de nuevo la aplicación en Diagnóstico de gráficos para que se inicie un nuevo registro de gráficos.

Opciones de captura de diagnóstico de gráficos

Puede configurar la captura de modo que recopile pilas de llamadas de todos los eventos de gráficos o un subconjunto limitado, deshabilitar la HUD de captura y habilitar o deshabilitar el modo de compatibilidad de captura.

Para configurar las opciones de captura de diagnóstico de gráficos

  1. En la barra de menús, elija Herramientas, Opciones. Aparecerá el cuadro de diálogo Opciones.

  2. En la lista de categorías de las opciones de la izquierda, elija Diagnóstico de gráficos y, luego, configure las opciones de Diagnóstico de gráficos que quiera.

    • Recopilación de pilas de llamadas durante la captura (ralentiza la captura)
      Active esta casilla para recopilar pilas de llamadas. De forma predeterminada, las pilas de llamadas se recopilan y está seleccionada la opción para los marcadores draw, dispatch, present y perf. Para capturar las pilas de llamadas de todos los eventos, active para todo. Para no recopilar pilas de llamadas, desactive Recopilar pilas de llamadas durante la captura (ralentiza la captura).

    • Deshabilitar HUD de juego durante la captura
      Active esta casilla para deshabilitar la superposición de HUD que suelen mostrar las aplicaciones que se ejecutan bajo el diagnóstico de gráficos. Desactívela para mostrar la superposición de HUD.

    • Captura en modo de compatibilidad
      Active esta casilla para capturar la información de gráficos en el modo de compatibilidad. La configuración predeterminada es la captura en modo de compatibilidad. En el modo de compatibilidad, Direct3D no informa de que la GPU admite más funciones que las definidas en el nivel de características de base. Así, se evita que la aplicación que se está capturando utilice extensiones específicas del hardware de la GPU donde se captura, y se garantiza que el registro de gráficos se pueda reproducir con cualquier GPU que admita un nivel de características igual o mayor. Desactive esta casilla para deshabilitar el modo de compatibilidad. Los registros capturados con el modo de compatibilidad deshabilitado no se reproducirán correctamente en las GPU que no admitan las mismas características adicionales que usó la aplicación durante la captura.

Capturar información de gráficos de forma remota

Se puede capturar información de gráficos desde una aplicación que se ejecute en el equipo local o en un dispositivo remoto. La captura remota se admite para los equipos Windows 8,1 y dispositivos Windows RT 8.1. Para capturar información de gráficos desde una aplicación que se ejecute de forma remota, configure el proyecto para la depuración remota y después ejecute la aplicación en Diagnóstico de gráficos tal como se ha descrito anteriormente. La aplicación se ejecuta en el equipo remoto y la información de gráficos capturada se registra en el equipo de desarrollo.

El modo en que configure el proyecto para la depuración remota dependerá del tipo de aplicación que esté desarrollando y del lenguaje de programación que utilice. Para obtener información sobre cómo configurar la depuración remota para una aplicación de la Tienda Windows, vea Ejecutar aplicaciones de la Tienda Windows en un equipo remoto desde Visual Studio. Para obtener información sobre cómo configurar la depuración remota para una aplicación de escritorio de Windows, vea Configurar la depuración remota en un proyecto de Visual Studio.

Posteriormente, podrá utilizar un equipo o un dispositivo remoto para reproducir la información de los gráficos, independientemente del lugar donde se haya capturado la información. Para obtener más información, vea Cómo: Cambiar la máquina de reproducción de diagnósticos de gráficos.

Captura de información de gráficos desde la línea de comandos

Se puede capturar información de los gráficos desde una aplicación con una herramienta de línea de comandos. Esta herramienta, DXCap.exe, puede capturar y reproducir rápidamente información de gráficos sin usar Visual Studio ni capturas de programación. En particular, puede utilizar DXCap.exe para la automatización o en un entorno de prueba. Para más información sobre DXCap.exe, consulte Herramienta de captura de línea de comandos.

Vea también

Tareas

Tutorial: Capturar información de gráficos