隆重推出 AMD FidelityFX™ Breadcrumbs 库

首次发布:
最后更新:
Marek Machliński's avatar
Marek Machliński

作为 FidelityFX SDK 1.1 发布的一部分,AMD FidelityFX Breadcrumbs 库现已可用!

Breadcrumbs logo invert

什么是 AMD FidelityFX Breadcrumbs 库?

随着现代图形卡的复杂性不断增加,以及 **Direct3D® 12** 和 **Vulkan®** 等图形 API 的显式性质,开发人员在确保 GPU 上的所有工作都得到正确调度和同步方面承担了更大的责任。

伴随这种责任而来的是巨大的风险——处理和解决不正确调度的任务可能导致的各种崩溃。

随着开发者肩上的负担日益加重,人们越来越清楚地认识到需要更好的工具来帮助分析 GPU 崩溃。

到目前为止,我们已经发布了一个功能齐全的工具,可以极大地帮助您对 AMD GPU 上的各种崩溃进行事后分析——Radeon GPU Detective,请务必查看!

AMD FidelityFX Breadcrumbs 库具有类似的功能,但它是一个跨平台库,您可以将其添加到您的游戏中。

Breadcrumbs 库将跟踪您在 GPU 上的工作负载,并在发生崩溃时,为您提供生成 GPU 工作执行当前状态报告的可能性。

用法

AMD FidelityFX Breadcrumbs 库的完整集成在其 详尽文档 中进行了描述,但要使 Breadcrumbs 工作,您只需执行以下步骤:

  • 创建 Breadcrumbs 上下文。
  • 每一帧
    • 标记新渲染帧的开始。
    • 使用 Breadcrumbs 方法注册命令列表。
    • 将开始-结束标记放置在您有兴趣跟踪的调用周围(已经存在的其他标记系统非常适合此目的)。
    • 检查是否发生 GPU 崩溃(通常在帧结束时,通过交换链呈现新帧时),如果发生,您就可以从 Breadcrumbs 库收集文本报告,并将其纳入您自己的报告系统中。
  • 销毁 Breadcrumbs 上下文。

通过这些步骤,Breadcrumbs 库即可完全投入运行,并可用作收集崩溃数据的轻量级手段,从而帮助您开发游戏。

您可以通过添加注释、注册的管道状态以及各种标记类型来定制传递给库的信息量,这将增强 Breadcrumbs 的输出,以便更好地跟踪恶意 GPU 崩溃的根源。

示例输出

您可以在下面找到 FidelityFX Breadcrumbs 的示例输出。它可以通过特定于可用数据和当前使用的图形 API 中的指标的附加设备信息进行扩展。

[BREADCRUMBS]
<Frame 250>
- [>] Queue type <0>, submission no. 0, command list 1: "VK test command list"
├─[X] RESOURCE_BARRIER: "Backbuffer barrier to RT"
├─[>] Main Rendering
│ ├─[X] CLEAR_RENDER_TARGET: "Reset current backbuffer contents"
│ └─[>] DRAW_INDEXED: "Draw simple triangle"
└─[ ] RESOURCE_BARRIER: "Backbuffer barrier to PRESENT"
<Frame 251>
- [ ] Queue type <0>, submission no. 0, command list 1: "VK test command list"
├─[ ] RESOURCE_BARRIER: "Backbuffer barrier to RT"
├─[ ] Main Rendering
│ ├─[ ] CLEAR_RENDER_TARGET: "Reset current backbuffer contents"
│ └─[ ] DRAW_INDEXED: "Draw simple triangle"
└─[ ] RESOURCE_BARRIER: "Backbuffer barrier to PRESENT"
<Frame 252>
- [ ] Queue type <0>, submission no. 0, command list 1: "VK test command list"
├─[ ] RESOURCE_BARRIER: "Backbuffer barrier to RT"
├─[ ] Main Rendering
│ ├─[ ] CLEAR_RENDER_TARGET: "Reset current backbuffer contents"
│ └─[ ] DRAW_INDEXED: "Draw simple triangle"
└─[ ] RESOURCE_BARRIER: "Backbuffer barrier to PRESENT"

AMD FidelityFX SDK 和 AMD FidelityFX API

AMD FidelityFX Breadcrumbs Library

Marek Machliński's avatar

Marek Machliński

Marek 是 AMD 欧洲游戏工程团队的一员。他专注于利用 Vulkan® 和 DirectX®12 技术,帮助游戏开发者充分发挥 Radeon™ GPU 的性能。

相关新闻和技术文章

相关视频

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