Debugging 如何调试DirectX 11计算着色器?

Debugging 如何调试DirectX 11计算着色器?,debugging,directx,gpgpu,directx-11,compute-shader,Debugging,Directx,Gpgpu,Directx 11,Compute Shader,我已经开始使用DirectX 11 Compute Shader技术进行GP-GPU编程。我在HLSL上编写了一个相当复杂的程序,当我想调试它时,我意识到2009年8月DXSDK中的PIX实用程序不支持计算着色器。。。我知道Nvidia将为Visual Studio发布Nexus,它将支持直接计算调试,但仅在尚未发布的下一代Nvidia GPU上使用:(计算着色器技术对我来说非常有前途,因为它与设备无关,但如果没有调试支持,它将很难使用 你知道有什么工具或方法可以用于计算着色器调试,现在可以使用

我已经开始使用DirectX 11 Compute Shader技术进行GP-GPU编程。我在HLSL上编写了一个相当复杂的程序,当我想调试它时,我意识到2009年8月DXSDK中的PIX实用程序不支持计算着色器。。。我知道Nvidia将为Visual Studio发布Nexus,它将支持直接计算调试,但仅在尚未发布的下一代Nvidia GPU上使用:(计算着色器技术对我来说非常有前途,因为它与设备无关,但如果没有调试支持,它将很难使用

你知道有什么工具或方法可以用于计算着色器调试,现在可以使用或计划在不久的将来发布吗?

我正在等待广泛使用。也许微软可以想出一些与参考光栅器一起工作的方法,但我要说的是,重要的是与参考光栅器紧密集成硬件:在这种情况下,只有供应商才能提供必要的工具


有人可能知道AMD是否计划在中添加对计算着色器的支持。

对不起,目前还没有简单的答案

可能尝试注册NVIDIA Nexus测试计划:


你在哪里读到Nexus需要一个基于Fermi的GPU?我认为需要一个支持SLI的工作站和两个最近的NVIDIA GPU,或者两个基于NVIDIA的工作站(然后远程调试目标).

不幸的是,调试计算着色器与调试顶点和像素着色器非常相似……我发现最好的方法是执行小更改并将测试值输出到临时纹理资源。然后您可以将纹理资源渲染到应用程序的屏幕上(甚至保存到文件中),并使用它来提取有关着色器中发生的情况的信息


这是一个可怕的情况,但这就是工具的情况,现在……< P > > P>一个有效的开发和调试复杂HLSL计算着色器的方法是编译它到C++。一旦你实现了,你可以利用你通常使用C++的IDE调试特性,比如内存和变量查找等。f概念演示项目,展示如何调试示例DirectX HLSL计算着色器:

<> P>一旦你的代码工作并正确地在GPU上执行它,C++ VIION就只是用来帮助开发。