Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El depurador de HLSL, que es una de las herramientas de diagnóstico de gráficos de Visual Studio, puede ayudarle a entender cómo funciona el código del sombreador HLSL con datos de gráficos registrados durante una sesión de captura de diagnóstico de gráficos.
Este es el depurador de HLSL:
.png)
Introducción al depurador de HLSL
El depurador de HLSL puede ayudarle a entender los problemas que surgen en el código del sombreador.Depurara código HLSL en Visual Studio es similar a depurar código escrito en otros lenguajes, por ejemplo, en C++, C# o Visual Basic.Puede inspeccionar el contenido de las variables, establecer puntos de interrupción, ejecutar el código paso a paso y recorrer la pila de llamadas, exactamente igual que cuando depura otros lenguajes.
Sin embargo, como el hardware de la CPU y el software (código de la aplicación) son tan diferentes del hardware de la GPU y el software (código del sombreador), no será posible tener una experiencia igual a la depuración de un CPU en una GPU, a menos que el depurador de la GPU funcione de forma diferente desde la base.La diferencia fundamental entre las clases de trabajo que hacen las GPU y las CPU es que las GPU distribuyen el trabajo entre centenares de procesadores relativamente lentos y simples optimizados para que las operaciones de gráficos controlen grandes conjuntos de datos, mientras que las CPU utilizan un puñado de procesadores relativamente rápidos y complejos que pueden controlar cargas de trabajo más pequeñas de uso general.Además, como una GPU es esencialmente un equipo independiente que administra sus propios mecanismos internos y comparte de forma poco frecuentemente información con la CPU, es muy difícil para un depurador que se ejecuta en la CPU conocer lo que está pasando en la GPU en un momento determinado.Aunque la CPU pudiera continuar, el código de la GPU usa demasiados subprocesos y genera demasiados datos para que un desarrollador se las arregle.
Para solucionar estas dificultades, el depurador de HLSL reconstruye fotogramas capturados utilizando la información que se grabó en un registro de gráficos, en lugar de intentar controlar una GPU en tiempo real mientras ejecuta el código del sombreador.Dado que un registro de gráficos contiene información suficiente para volver a crear cualquier parte del resultado y, como el diagnóstico de gráficos proporcionan herramientas que pueden ayudarle a aislar el píxel y el evento exactos donde se ha producido el error, el depurador de HLSL solo tiene que simular el subproceso exacto del sombreador en el que está interesado.Esto significa que el trabajo del sombreador se puede simular en la CPU, donde sus mecanismos internos tienen una vista completa.Esto es lo que proporciona al depurador HLSL una experiencia de depuración de tipo CPU.
Sin embargo, el depurador de HLSL está actualmente limitado de las maneras siguientes:
El depurador de HLSL no admite editar y continuar.
No es posible depurar una aplicación y su código del sombreador al mismo tiempo.Sin embargo, puede alternar entre ellos.
Puede agregar variables y registros a la ventana Inspección, pero no se admiten expresiones.
Los sombreadores de cálculo no se admiten.
Sin embargo, el depurador de HLSL proporciona un uso mejor y más similar a la depuración de la CPU que lo que sería posible de cualquier otra forma.
Vea también
Tareas
Tutorial: Objetos ausentes debido al sombreado de vértices
Tutorial: Depurar errores de representación debidos al sombreado