如何在Visual Studio 2017中启动HLSL调试器?

时间:2018-05-29 19:51:16

标签: c++ visual-studio-2017 windows-10 directx hlsl

我无法在Visual Studio 2017中找到启动HLSL调试器的选项。

Microsoft文档指示从中启动它 图形流水线阶段窗口或图形像素历史记录

https://msdn.microsoft.com/en-us/library/hh873197.aspx

但是,我不知道这些是什么或如何到达它们

当我直接在visual studio IDE中的hlsl代码中设置断点时,它只显示" The Breakpoint will not currently be hit"在空的红色圆圈。 我假设我需要在hlsl调试器中打开hlsl代码,以便它在行中断开。

我在x64调试模式下运行新项目模板DirectX 11 App(Universal Windows),并在顶点和像素着色器中设置断点。

谢谢,

1 个答案:

答案 0 :(得分:6)

  1. 如果您使用的是HLSL编译器,请确保使用调试支持编译着色器 - 使用/Zi选项。
  2. 确保在启用调试(D3D11_CREATE_DEVICE_DEBUG标志)的情况下创建DX设备。
  3. 转到主菜单 - >启动GFX调试会话调试 - >图形 - >启动图形调试。这将创建一个窗口,要求提升权限,启动程序并使用" Capture frame"显示诊断会话窗口。按钮和时间线。
  4. 现在让您的应用程序显示所需的图像,并使用相应的按钮捕获迭代的帧。捕获的框架截图将显示在列表中。
  5. 关闭您的申请。这将触发diag会话的最终化(一些后处理),这将花费一些时间。
  6. 单击捕获帧列表中的帧名称(蓝色)。这将打开VS图形分析器窗口 - 这是您实际调试图形的地方。
  7. 在中间会有一个(转载的)帧渲染截图 - 你可以点击它上面的任何地方,在像素历史窗口,应该有一个修改该像素的绘制调用列表。通过扩展此列表,您应该能够找到感兴趣的着色器的调用。它应该有" Play"三角形按钮启动着色器调试并跳转到着色器代码,您可以在其中检查变量,设置断点和其他内容。
  8. 或者在左边会有一个事件列表,其中包含所有管道修改和绘制(用画笔标记)调用。在那里找到感兴趣的抽奖电话并选择它。在Pipeline阶段窗口中,应该有一个图表,其中包含每个阶段的产品的屏幕截图,以及相应的着色器链接和" Play"启动着色器调试的按钮。