2

我曾经有能力在 Visual Studio 2012 中检查着色器,但现在我失去了它。UI 实际上并没有崩溃,但显示“这可能需要几分钟”的无模式弹出消息永远不会产生结果。我在另一个站点上发现了一个帖子,声称安装 VS2012 Update 3 解决了这个问题,但这对我的情况没有帮助。

当使用 Pix 是一个选项时,我发现在 BeginPaint() / EndPaint() 对之外进行渲染以提高速度会导致调试问题,但这次又不是问题。

更多信息:最初有一条警告消息,“找不到或不匹配'YourApp.exe'的调试信息。符号文件中没有本机符号”。这是我所期望的,因为主应用程序是托管的,DirectX 工作是通过稍后加载的非托管引擎 DLL 处理的(一旦我知道要使用哪个位版本)。

4

3 回答 3

1

Tombola,我是 Visual Studio 中图形调试器的开发人员。正如您所见,2013 预览版为图形调试器添加了一些重大的稳定性和缩放改进。您之前可能看到的是在尝试启动着色器调试时播放引擎崩溃。Graphics Debugger 工具在 VS 2012 中带有一些稳定性问题,但从那时起 Update 2 和现在的 VS2013(RTM 也应该比预览版改进很多)极大地解决了这个问题。

于 2013-08-05T17:49:54.917 回答
0

您是否尝试过调试框架中的第一个绘图调用?

帧越往下,在着色器执行之前进行的 DirectX 调用越多,调试器启动所需的时间就越长;复杂的场景可能需要很长时间。

如果即使是第一个绘图调用也无法开始调试,也许可以尝试注释掉代码以减少 API 调用的数量,并查看是否存在导致问题的特定操作。

于 2013-07-03T10:56:14.930 回答
0

事实证明,VS2013 预览版可以毫无困难地调试 VS2012 .vsglog 文件中的所有着色器(nb. express build 缺少着色器的自动和监视窗口)。这当然需要 Windows 8.1 预览版。将这两个设置在专用虚拟机中,安全成本约为 8 gig(32 位,VirtualBox)。

于 2013-07-11T08:02:50.753 回答