如何调试DirectX 11个的计算着色器?
-
20-09-2019 - |
题
我使用的 DirectX 11的计算着色器技术GP-GPU编程开始。我写了一个相当复杂的程序上HLSL,当我想调试它,我意识到, PIX 从DX SDK 2009年8月工具不支持计算着色器......我知道,Nvidia公司即将推出的Nexus 作为Visual Studio中,这将支持Direct计算调试,但只能在下一代的NVIDIA GPU,这是尚未公布:(计算着色器技术,看起来是因为设备独立性的非常有前途的我,但它将是非常硬而不调试支持使用。
你现在知道的任何工具或方法,其可用于计算着色器调试,提供或在不久的将来发行计划?
解决方案
我在等待 NVIDIA的Nexus ,以成为广泛使用。也许微软会拿出一些与参考光栅的作品,但我要说的是什么重要的是获得紧密集成的硬件:在这种情况下,只有厂商能够提供必要的工具
也许有人会知道AMD是否计划在 GPU PerfStudio 加为计算着色器的支持一>
其他提示
这是有效的方法来开发和调试复杂的HLSL计算着色器是将其编译成C ++。一旦你已经实现了你可以利用你通常使用C ++使用,如内存和可变查找等在下面您的IDE调试功能是概念演示项目展示如何调试样本的DirectX HLSL计算着色器证明:
https://github.com/cezbloch/shaderator
在你的代码的工作,并纠正执行它的GPU - 在C ++优化版本只是为了帮助开发
很抱歉,但没有琐碎的答案的时刻了这个问题。
也许尝试在NVIDIA的Nexus测试程序来登记: http://supportcenteronline.com/ics/support/default.asp?deptID= 4639
您在哪里看的的Nexus 需要基于Fermi架构的GPU?我认为,要求其中SLI功能的工作站与2个最近用过的NVIDIA GPU,或2基于NVIDIA的工作站(和然后远程调试目标)。
不幸的是,调试计算着色器很像调试曾经是顶点和像素着色器...,我发现最好的办法是进行微小变化,输出测试值到一个临时的纹理资源。然后你就可以渲染纹理资源到应用程序的屏幕(甚至保存到文件),并用它来提取有关什么是着色器回事信息。
这实在是一个可怕的情况,但毕竟是工具的情况如何,现在...