如何使用 Nsight 调试(GLSL)着色器?

Posted

技术标签:

【中文标题】如何使用 Nsight 调试(GLSL)着色器?【英文标题】:How to debug (GLSL) shaders using Nsight? 【发布时间】:2017-01-24 03:41:00 【问题描述】:

如何使用 Nsight 调试 glsl 着色器?

我正在使用 Nsight Visual Studio 版本 5.2。我试过使用 Nsight Visual Studio Edition 5.1。这两个都不行。我的意思是我已经尝试过使用这种方法但它不起作用:

    打开 Visual Studio 项目 从菜单中选择“Nsight”并选择“开始图形调试” 让程序运行一段时间 按“Ctrl+Z” 按“空格” 转到 Visual Studio 中的“API 检查器” 从左侧栏中选择“程序” 从“链接着色器状态”中选择“源” 设置断点,就像我在调试 Visual Studio 时所做的那样

那毕竟。我放置的断点被图标化为警告,每当我将鼠标悬停在它上面时都会出错,“断点当前将被命中。此 GPU 不支持着色器调试”

这里是the link Nsight Visual Studio Edition 5.2 支持的所有显卡。

我的显卡是 NVIDIA GEFORCE GTX 970M(笔记本)

我目前正在使用 Visual Studio 2015 企业版

【问题讨论】:

developer.nvidia.com/… 看起来您的 ASUSTeK COMPUTER INC. G751JT 应该可以工作。确保您拥有直接来自 nvidia 的最新驱动程序。 是的,我已经安装了最新的驱动程序 【参考方案1】:

不幸的是:

来自:2016 年 6 月 22 日

Maxwell[GTX9xx] 不支持着色器调试,只有 Kepler 和 Fermi GPU 支持着色器调试。

https://devtalk.nvidia.com/default/topic/945730/graphics-card-for-shader-debugging-hlsl-directx11/

编辑:

在用于 Direct3D 11 和 OpenGL 的 Kepler 系列 GPU 上支持着色器调试。即将发布的版本将支持 Direct3D 12 和 Vulkan API 以及 Maxwell 和 Pascal 系列 GPU。

https://developer.nvidia.com/nsight-visual-studio-edition-features

【讨论】:

但它说它确实支持!说这话的那个人是谁?它甚至不是来自 NVIDIA。 更新答案。 我哭了。 .有替代品吗? 并非如此。也许这里的一些东西会有所帮助:***.com/questions/2508818/how-to-debug-a-glsl-shader 但没有什么会像你想要的那样。

以上是关于如何使用 Nsight 调试(GLSL)着色器?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以调试 GLSL 着色器?

Opengl/glsl 试图为绘制四边形编写着色器,但不确定如何处理屏幕纵横比的变化

如何通过在 glsl 中注册来设置着色器常量?

如何设计一个简单的 GLSL 包装器以供着色器使用

glsl 错误:在尝试使用镶嵌着色器渲染时,“v_color”未声明为前一阶段的输出

如何在 C++ 中为 GLSL 片段着色器实现 iGlobalTime?