运行 可执行文件没有 renderdoc 时出现 Renderdoc 统计信息覆盖

Renderdoc statistics overlay appearing when running executable without renderdoc

当使用 Renderdoc 调试我的 Vulkan 应用程序时,我注意到当我以某种方式正常执行应用程序时,Renderdoc 也是 运行 并在 window.[=15= 上生成统计数据叠加]

例如,当从命令行执行 ./executable 时,我得到:

(左上角的信息为Renderdoc统计)

请注意,这在删除和重新编译可执行文件时仍然适用。

我曾尝试卸载 Renderdoc,但我收到 Vulkan 加载失败的错误 librenderdoc.so,我什至尝试重新安装 Vulkan 库,但没有成功。

任何关于如何在不显示程序统计信息的情况下正常执行我的程序的帮助将不胜感激。

终端输出(来自验证层)显示:

Renderdoc 使用 Vulkan 的层机制将自身注入到可执行文件中。

他们有一个 lengthy blog post explaining the gory details,但基本上发生的是在运行时所有 Vulkan API 调用首先通过 Renderdoc,这就是导致统计信息出现的原因。如果您不想这样,只需在初始化 Vulkan 时不包含 Renderdoc 层即可。

您要么请求 Vulkan 通过传递给 vkCreateInstanceVkInstanceCreateInfo 结构中的 ppEnabledLayerNames 字段拉入 Renderdoc 层。在这种情况下,您需要更改代码以不再执行此操作并重新编译可执行文件。或者,您可以将 Renderdoc 作为隐式层加载。在这种情况下,根本不需要更改可执行文件(并且 运行 在未安装 Renderdoc 的另一台机器上的可执行文件将在不显示覆盖的情况下运行)。相反,是 Vulkan 加载程序自动拉入 Renderdoc 层。

所以在后一种情况下,您需要更改系统的加载程序配置。由于这对每个系统都有不同的作用,而且您没有提到您使用的是哪个 OS,我将只给您一个 link to the official documentation,其中包含所有主要操作系统的详细信息。只需从隐式层列表中删除 Renderdoc,叠加层就会消失。