Pregunta

Estoy tratando de encontrar la manera de depurar sombreadores de píxeles y vértices en DirectX, He intentado usar Pix para Windows, pero encontramos que era bastante con errores y efectivamente no operativo. ¿Hay una alternativa que me permita depurar estos shaders dentro de mi propia aplicación?

¿Fue útil?

Solución

No sé de cualquier herramienta de terceros para depurar HLSL-shaders, pero tuve buenas experiencias con la depuración mediante el uso de algunas técnicas simples.

Se podía copiar render objetivos de la CPU y la almacena en un mapa de bits, imprimirlo a la terminal, o acceder a él en su depurador de la CPU.

Si hay un error, primero debe comprobar si los buffers que utiliza realmente tienen los valores correctos, al principio puede suceder a menudo que algunas texturas se crean con parámetros erróneos o se espera que los datos en otro orden ... en mi experiencia esto es un error de código común.

Otros consejos

En resumen, no.

Sí pix es un poco buggy, pero ha mejorado enormemente desde su primera versión. Asegúrese de que está ejecutando la última SDK!

Sólo la información de depuración de salida como de color. Por ejemplo, puede salida 255 * (normal + 1) como r, g, b, puede generar alguna variable shader intermedio como color, o se puede comprobar si está dentro de los límites en el shader y salida en blanco si es y negro si no lo es. Que por lo general ayuda.

PIX para Windows viene con DirectX SDK (desde junio de 2010 puedo comprobar) y le permitirá visualmente depuración lo que esté configurando estado sabia y le permiten moverse a través de su línea de shaders por línea. Es un protector de la vida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top