¿Cómo puedo depurar programas de sombreado?

18

Estoy en el proceso de depurar sombreadores de vértices GLSL y no puedo evitar la sensación de que lo estoy haciendo mal.

En general, tengo dos estrategias para compensar la falta de seguimiento

  • Relleno los valores en un color de depuración variando que paso al sombreador de fragmentos y luego trato de interpretar los colores.
  • Cambio el código del sombreador de vértices y veo qué sucede.

Estoy pensando que, idealmente, podría compensar la falta de seguimiento escribiendo valores en una textura de alguna manera, leyendo la textura de la GPU e imprimiendo los valores rellenos en la textura.

Supongo que podría haber formas mucho mejores. ¿Alguna sugerencia?

Jonathan Fischoff
fuente

Respuestas:

3

Un amigo mío ha usado glslDevil para esto, y dijo que estaba bien.

Si no está vinculado a GLSL, Microsoft tiene una herramienta increíble para DirectX llamada PIX , pero no creo que haya nada equivalente para OpenGL.


fuente
He descargado glslDevil pero no puedo hacer que la mayoría de las funciones funcionen. El seguimiento funciona y el paso a través de los sombreadores, pero no puedo ver los valores de las variables.
Jonathan Fischoff
2

nVidia tiene un depurador de sombreadores impresionante. Puedes encontrarlo y sus especificaciones AQUÍ

Actualización 2016: También hay un complemento de Visual Studio, que probablemente sea su nuevo esfuerzo para ayudar a los desarrolladores, aquí: https://developer.nvidia.com/nvidia-nsight-visual-studio-edition

Fabricante de clavos
fuente
error tipográfico: sus especificaciones
o0 '.
Gracias. =) Lo hago bien el 70% del tiempo. Culpo a DainBramage.
Nailer
sin embargo, no es compatible con GLSL :(, pero parece que puedo convertir sombreadores cg a glsl automáticamente, podría intentarlo.
Jonathan Fischoff
Tienes razón en eso, pero creo que las ventajas son mayores que las desventajas. Además, FX composer es una aplicación bastante ingeniosa.
Nailer
Enlace roto ...
UpTheCreek