我在使用 FXC 和 DirectX 11 时遇到了一个奇怪的问题。在兼容 DirectX 10.0(诚然糟糕)的集成显卡上运行,如果我使用 FXC 在构建时使用标志/Od编译它们,我的着色器将无法工作。查看 VS 2012 中的图形调试器,我正确地看到了图形管道的输入汇编器和顶点着色器阶段,但缺少像素着色器阶段,因此几何图形从未绘制到帧缓冲区,如下所示:
使用 /O0 有效,但随后我失去了有效调试着色器的能力(优化,即使在 /O0 处,似乎也会扰乱指令,因此它们与 .fx 源文件不匹配)
在另一台使用 DirectX 11 卡 (GTX 560) 的机器上,/Od 工作正常。