很多学Directx特别初学者最头痛应该是shader的调试问题了。一般的编译器包括vs都不支持shader的调试。还好微软出了个Pix,其功能相当强大,而不仅仅是debug。这里我们入门主要总结下其debug的功能。
Pix的调试原理和一般的调试很不一样,它是先把程序运行一遍,然后把中间每一步所有的shader变量,寄存器等等都记录下来,然后再调出来看,以此模拟Directx的过程。
在用Pix调试shader代码前,要注意下几个问题。
1是必须在Directx11的编译hlsl函数加上下面的几行代码(注意加粗部分代码):
DWORD dwShaderFlags=D3DCOMPILE_ENABLE_STRICTNESS;
#if defined( DEBUG ) ||