Question

Je suis à essayer de comprendre comment déboguer les pixel et vertex shaders dans DirectX, j'ai essayé d'utiliser Pix pour Windows, mais trouve que c'est assez buggé et non-opérationnel.Est-il une autre solution qui me permettrait de déboguer ces shaders à l'intérieur de mon propre application?

Était-ce utile?

La solution

Je ne sais pas d'un outil tiers pour le débogage HLSL shaders, mais j'eu de bonnes expériences avec elle le débogage en utilisant des techniques simples.

Vous pouvez copier simplement rendre les cibles sur cpu et la stocker dans un bitmap, l'imprimer au terminal, ou accéder à votre débogueur CPU.

S'il y a un bug, vous devez d'abord vérifier si les tampons que vous utilisez ont vraiment les bonnes valeurs, au début, il peut arriver souvent que certaines textures sont créées avec des paramètres incorrects ou les données sont attendues dans un autre ordre ... dans mon expérience, c'est une source d'erreur commune.

Autres conseils

En bref, non.

Oui pix est un peu buggé, mais a amélioré MASSIVEMENT depuis sa première version. Assurez-vous que vous utilisez le dernier SDK!

Il suffit de sortie des informations de débogage que la couleur. Par exemple, vous pouvez produire 255 * (normal + 1) r, g, b, vous pouvez produire une variable de shaders intermédiaire comme la couleur, ou vous pouvez vérifier si elle est dans les limites dans le shader et la sortie blanche si elle est et noir si ce n'est pas. Cela habituellement aider.

PIX pour Windows est livré avec le SDK de DirectX (à partir de juin 2010, je peux vérifier) et va vous permettre de déboguer visuellement ce que vous êtes en état sage et vous permettra de parcourir votre shaders ligne par ligne.Ses un épargnant de vie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top