这是我参与8月更文挑战的第12天,活动详情查看: 8月更文挑战编程
调试 GLSL 着色器代码是出了名的困难。与 C++ 或 Java 等典型语言的编程不一样,着色程序在哪里失败每每是不明确的。一般,一个着色器错误表现为一个空白屏幕,不提供任何关于错误本质的线索。更使人沮丧的是,没有办法在运行时打印出着色器变量的值,就像人们一般在跟踪一个难以捉摸的 bug 时所作的那样。 缺少显示着色器变量的简单能力是一个严重的障碍,因为这个缘由,显卡制造商有时在硬件中提供在运行时从着色器中提取信息的功能,并以图形调试器的形式构建了访问信息的工具。每一个制造商的调试工具只能在该制造商的显卡存在的状况下工做。NVIDIA 的图形调试器是一个更大的工具套件 Nsight 的一部分, AMD 也有一个相似的工具套件叫作 CodeXL 。安全
Nsight 是一套 NVIDIA 的工具,它包含一个图形调试器,当程序运行时,它能够查看 OpenGL 图形管道的各个阶段,包括着色器。不须要更改或添加任何代码。只需在启用 Nsight 的状况下运行现有程序。Nsight 容许在运行时检查着色器,好比查看着色器的统一变量的当前内容。有些版本甚至容许在运行时更改着色器代码。markdown
有适用于 Windows 和 Linux/MacOS 的 Nsight 版本,能够与微软的 Visual Studio (VS) 和 Eclipse IDE 交互。咱们只讨论 Windows 和 Visual Studio 。框架
Nsight 只能与 NVIDIA 显卡兼容;它不适用于英特尔或 AMD 显卡。完整的支持卡列表可在 NVIDIA 网站查询工具
Nsight 正在迅速变化,Nsight 可能会有更多使人兴奋的变化和发展oop
有多种方法能够设置 Nsight 并将其整合到 Visual Studio 中。根据你安装的版本,Nsight 菜单将被添加到最顶部的 VS 菜单或做为 “扩展” 菜单的子菜单。咱们安装 Nsight 的方式以下:post
1. 安装 NVIDIA Nsight Graphics,网址为 developer.nvidia.com/nsight-grap… 咱们安装了2020.4版本。网站
2. 在 Visual Studio 中,使用 Extensions►Manage Extensions 来搜索和安装 Nsight 集成。“Nsight” 菜单应该出如今顶部菜单栏或扩展项下的子菜单。spa
有关如何最大限度地利用 Nsight 工具的详细信息,请参阅 Nsight 文档。3d