Visual Studio图形调试器省略了工作像素着色器

hsc*_*der 6 c# slimdx pixel-shader direct3d11 visual-studio-2013

我正在使用C#,Visual Studio 2013 Update 5 RC进行编程,并使用Direct3D 11(通过SlimDX)来渲染动画场景.我正在像素着色器中尝试无序访问纹理,它工作得很好.即,我的像素着色器具有我与渲染目标视图一起设置的RWTexture2D<float>界限register(u1).当我运行我的应用程序时,渲染工作正常,我没有得到D3D调试层的警告或错误.

虽然这一切都有效,但我似乎无法使用Visual Studio图形调试器分析单帧.(正确的)输出图像目前有些灰色阴影,如下图所示:

渲染输出的屏幕截图

虽然FPS测量工作正常,但是当我捕获一个帧时,它总是在VSG日志中显示为完全白色(或者我用来清除渲染目标的任何颜色):

捕获的帧

当我为其中一个框架打开Visual Studio图形分析器时,我发现图形管道中存在问题.输入汇编器和顶点着色器按预期工作,但缺少像素着色器,并且输出合并阶段中"没有可用网格":

在此输入图像描述

对象表清楚地表明obj:7设置了像素着色器().你有没有任何想法或建议,为什么它没有出现在图形管道中或为什么捕获的帧是空的,虽然它们在我的程序中工作?我可以排除它在加载着色器代码的位置起作用,即我是否使用CompileCompileFromFile.我仍然怀疑但目前无法验证的一件事是像素着色器中的无序访问资源会混淆Visual Studio图形调试器.任何提示?先感谢您.

编辑:这与错误配置的管道上的MSDN演练无关,因为图形分析器显示在设备上下文中设置了像素着色器.此外,在像素着色器中正确设置常量缓冲区.

小智 0

您使用 Visual Studio 社区吗?

因为我在家里使用社区版,在学校使用专业版,我在使用社区版时遇到了完全相同的问题,但在学校使用专业版时一切都很好。