Radeon™ GPU Detective 为 Windows® 添加了 Vulkan® 支持

首次发布时间:
最后更新:
Amit Ben-Moshe's avatar
Amit Ben-Moshe
Adam Sawicki's avatar
Adam Sawicki

2023年8月,我们发布了第一个版本的 Radeon GPU Detective (RGD),这是一个用于事后分析 GPU 崩溃的新工具,支持 Direct3D® 12 应用程序。今天发布的 RGD 1.1 版本增加了对 Vulkan 应用程序的支持。

要使用它,请下载 最新版本的 Radeon Developer Tool Suite,并安装最新版本的 AMD Software: Adrenalin Edition™ 驱动程序(最低版本 23.12.1)。与 1.0 版本类似,该工具支持 Windows® 10 和 11,并需要 RX 7000 系列(RDNA™ 3 架构)或 Radeon RX 6000 系列(RDNA™ 2 架构)显卡。

在工具使用方面,与 v1.0 相比没有任何变化。在重现崩溃之前,您需要通过 Radeon Developer Panel 将 AMD 驱动程序设置为“Crash Analysis”模式。要确保 Vulkan 支持已启用,请确认下拉菜单中的工作流设置为“Crash Analysis”,并且 API 设置为“Workflow supported”或“Vulkan”。

如何充分利用 RGD 的 Vulkan 功能?

为了充分利用 RGD 的 Vulkan 功能,我们建议在代码中使用 VK_EXT_debug_utils 扩展。

  • 使用 vkCmdBeginDebugUtilsLabelEXTvkCmdEndDebugUtilsLabelEXT 函数在代码的关键逻辑部分插入执行标记。这些标记将出现在 RGD 输出文件中,从而更容易地缩小可能导致 GPU 崩溃的代码区域的范围。

  • 使用 vkSetDebugUtilsObjectNameEXT 函数为内存对象命名。RGD v1.1 将可视化关键对象类型的名称:VkDeviceMemoryVkBufferVkImage。如果在工具生成输出文件时,这些对象类型与触发页面错误的虚拟地址相关联,则会显示这些名称。

请注意,已弃用的 VK_EXT_debug_marker 也可以使用,但建议使用 VK_EXT_debug_utils。

使用 RGD 进行 Vulkan 开发时需要考虑的事项

请注意,RGD 仅针对 GPU 崩溃,即 Vulkan API 函数(如 vkAcquireNextImageKHR)返回错误代码(如 VK_ERROR_DEVICE_LOST)的情况。CPU 端崩溃(如未处理的异常、解引用的空指针等)不在本工具的范围内。

  • RGD 不捕获单个渲染帧。无论是否调用 vkQueuePresentKHR 函数,它都能正常工作。整个程序会话都会被捕获,因此您可以将该工具用于游戏以及不进行呈现的 Vulkan 计算应用程序。

立即下载!

RGD 1.1 今天可通过 Radeon Developer Tool Suite 获取。

如果您对 RGD 有任何反馈,请访问 Radeon GPU Detective GitHub 页面 分享您的想法。

Amit Ben-Moshe's avatar

Amit Ben-Moshe

Amit Ben-Moshe 是 AMD 的杰出工程师。他的发帖内容代表他个人的观点,可能不代表 AMD 的立场、策略或观点。第三方网站链接仅为方便起见提供,除非明确说明,否则 AMD 对这些链接网站的内容概不负责,也不暗示任何认可。
Adam Sawicki's avatar

Adam Sawicki

Adam 是一名首席技术专家开发技术工程师,在游戏工程团队工作,主要专注于 Direct3D®12 和 Vulkan® 游戏技术以及使用它们的游戏。

相关新闻和技术文章

相关视频

© . This site is unofficial and not affiliated with AMD.