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

How do I launch the HLSL debugger in Visual Studio 2017?

我找不到在 Visual Studio 2017 年启动 HLSL 调试器的选项。

Microsoft 文档指示从 图形管道阶段 window 或图形像素历史记录

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. 确保您的着色器编译时支持调试 - 如果您使用的是 HLSL 编译器,请使用 /Zi 选项。
  2. 确保创建的 DX 设备启用了调试(D3D11_CREATE_DEVICE_DEBUG 标志)。
  3. 转到主菜单 -> 调试 -> 图形 -> 启动图形调试,启动 GFX 调试会话。这将使 window 要求提升权限弹出,启动您的程序并使用 "Capture frame" 按钮和时间线显示诊断会话 window。
  4. 现在让您的应用程序显示所需的图像并使用相应的按钮捕获重复的帧。捕获的帧屏幕截图将出现在列表中。
  5. 关闭您的应用程序。这将触发诊断会话的完成(一些后处理),这将需要一些时间。
  6. 在捕获的帧列表中单击帧名称(蓝色)。这将打开 VS 图形分析器 window - 这是您实际调试图形的地方。
  7. 中间会有一个(复制的)帧渲染屏幕截图 - 您可以单击它的任意位置,在像素历史记录中 window 应该有一个修改该像素的绘制调用列表。通过展开此列表,您应该能够找到感兴趣的着色器的调用。它应该有 "Play" 三角形按钮,用于启动着色器调试并跳转到着色器代码,您可以在其中检查变量、设置断点和其他内容。
  8. 或者在左侧会有事件列表,其中包含所有管道修改和绘制(用画笔标记)调用。在那里找到一个感兴趣的绘图调用,然后 select 它。在管道阶段 window 应该有一个图表,其中包含每个阶段的产品截图以及相应的着色器 link 和启动着色器调试的 "Play" 按钮。