代码之家  ›  专栏  ›  技术社区  ›  Mich

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

  •  1
  • Mich  · 技术社区  · 6 年前

    我找不到在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 “在空的红色圆圈上。

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

    谢谢,

    1 回复  |  直到 6 年前
        1
  •  7
  •   user7860670    6 年前
    1. 确保使用调试支持编译着色器-使用 /Zi 如果使用的是HLSL编译器,则选择此选项。
    2. 确保在启用调试的情况下创建dx设备( D3D11_CREATE_DEVICE_DEBUG 旗帜)
    3. 转到主菜单->调试->图形->启动图形调试,启动gfx调试会话。这将创建一个窗口,请求提升的权限弹出、启动程序并显示带有“捕获帧”按钮和时间线的diag会话窗口。
    4. 现在,让您的应用程序显示所需的图像,并使用相应的按钮捕获ITREST的一帧。捕获的帧截图将显示在列表中。
    5. 关闭应用程序。这将触发diag会话的终结(一些后处理),这将需要一些时间。
    6. 单击捕获帧列表中的帧名称(蓝色)。这将打开vs graphics analyzer窗口-这是您实际调试图形的地方。
    7. 中间将有一个(复制的)帧渲染屏幕截图-您可以单击它的任何位置,在“像素历史记录”窗口中应该有一个绘制调用列表,用于修改该像素。通过展开此列表,您应该能够定位对感兴趣的明暗器的调用。它应该有一个“播放”三角形按钮,用于启动明暗器调试并跳转到明暗器代码中,在该代码中可以检查变量、设置断点和其他内容。
    8. 或者在左侧有一个事件列表,其中包含所有管道修改和绘制(用刷子标记)调用。在那里找到一个感兴趣的抽奖电话并选择它。在Pipeline Stages窗口中,应该有一个图表,其中包含每个阶段产品的屏幕截图,以及相应的着色链接和启动着色调试的“播放”按钮。