GDC 2024 - GPU 工作图:欢迎来到 GPU 编程的未来 - YouTube 链接
Matthäus Chajdas 的这个演讲将首次介绍这个全新的 API,并展示它将如何改变 GPU 编程的未来格局。

我们非常兴奋地参加了 2024 年的全球开发者大会,但我们的会议现已结束。我们出色的演讲者已经收拾好行装,回家了——所以对于那些今年未能参加的各位,是时候分享你们错过了现场的精彩内容了。
但首先,我们必须特别感谢今年与我们合作并出色完成工作的特邀演讲嘉宾。让我们为 Shawn Hargreaves (Microsoft® Direct3D®)、Hampus Siversson (Massive Entertainment)、Marco Bouterse (Nixxes Software) 和 Miguel Petersen (Striking Distance Studios) 鼓掌,感谢他们为我们的会议贡献了知识和经验!
[YouTube 链接] [幻灯片 – 5.9MB PDF]
我们非常荣幸再次受邀在周一的“高级图形峰会”上发表演讲。今年的主题是工作图,该技术最近作为 Microsoft® Agility SDK 1.613.0 的一部分,随 1.0 版本发布。
工作图是一种 GPU 编程的新开发方法,是 Microsoft 及其行业合作伙伴多年合作的成果。工作图允许 GPU 自行向其提供任务,而无需频繁往返 CPU。将工作调度和工作创建保持在 GPU 本地,可以利用工作图高效轻松地实现许多以前需要大量工作的算法——例如场景遍历、自适应算法和递归。工作图的一些实际应用包括计算光栅化和程序化内容创建。
Matthäus Chajdas (AMD) 和 Shawn Hargreaves (Microsoft® Direct3D®) 介绍了“网格节点”的概念,该概念允许将绘制调用集成到工作图中,并在图的其余部分执行时进行处理。展示了一个与 Coburg 大学合作开发的演示,该演示使用单个工作图调度来生成和渲染复杂场景。该演示显示了初步的显著性能提升,与使用网格节点扩展的工作图相比,ExecuteIndirect 的平均速度慢了 1.64 倍1。
这是图形渲染的一项重大突破,您可以在我们关于此次工作图演示的 博客 中了解更多信息并观看演示。
关于 Microsoft 的发布,我们很荣幸在周四受邀登上 Microsoft 的“State of the Union”会议舞台。Rob Martin 代表 AMD 讨论了现在非常受欢迎的工作图,以及我们对即将推出的 Microsoft DirectSR 的参与。
当 Unity 6 于 2024 年发布时,Unity High Definition Render Pipeline (HDRP) 将包含 AMD FSR 2.2 支持。
周三是 AMD 的重要一天,我们一整天都在 3001 室与我们出色的观众分享我们六场赞助的会议。很高兴见到你们中的许多人,感谢大家的光临!
GDC 通常是发布公告的时期,因此除了本周早些时候的工作图性能揭示之外,我们在赞助的会议中也有几项公告。
在我们关于“使用 AMD FidelityFX™ Super Resolution 3 的 Snowdrop 高性能渲染”的会议结束时,我们又发布了一个“惊喜”——宣布 AMD FSR 3.1 将于第二季度在 GPUOpen 上提供给开发者!
我们出色的工程团队一直在努力为您带来以下改进和新功能,我们知道你们中的许多人一直在要求这些功能:
我们对处理高/低频信号的方式进行了内部更改,以便算法能够做出更好的决策。这应该能够更好地保留细节,同时尽量减少静止时的时域不稳定性以及拖影。
AMD FSR 3.0 要求 FSR 3 升级在 FSR 3 帧生成之前执行并生成信息。这确实节省了 GPU 资源(允许更高的 FPS),但限制了选择。有了 AMD FSR 3.1,帧生成可以与任何第三方升级组件一起运行——但有一个小小的注意事项,需要额外一步来预先计算来自升级器输入的某些数据。

正是如此!
这将与 AMD FSR 3.1 一起发布。它旨在显著降低我们的 ABI 表面积,并鼓励普遍使用 DLL。这提供了更好的调试功能,并使游戏开发者能够以更少的代码更改更快地升级到新版本的 FSR。
没有这些,任何软件版本都不完整!
正如 周三会议后披露的,首款宣布支持 AMD FSR 3.1 的游戏是来自 Insomniac Games、Nixxes Software 和 Sony Interactive Entertainment 的 *Ratchet & Clank: Rift Apart*。包含 FSR 3.1 的游戏更新将于今年晚些时候发布,并将包括将帧生成与升级解耦,因此它可以与其他游戏支持的升级解决方案一起使用。它还将获得 FSR 时域升级图像质量的改进。
在这里,您可以查看 *Ratchet & Clank: Rift Apart* 的示例,这些示例演示了 AMD FSR 3.1 中的这些升级改进。它们取自以 1080p 分辨率使用 AMD FSR 2.2/3.1 性能模式运行的游戏视频截图。


AMD FSR 2.2

AMD FSR 3.1

AMD FSR 2.2

AMD FSR 3.1
提醒一下,当使用 FSR 3 帧生成并结合任何升级质量模式或“原生 AA”模式时,建议玩家在应用帧生成之前,帧率至少达到约 60fps,以获得最佳体验并减轻延迟。
我们还建议使用 FSR 3 并配合 VRR 显示器的玩家将帧率(**开启**帧生成后)保持在显示器的刷新率范围内,以防止屏幕撕裂。对于使用 Windows® 11 的用户,我们还建议启用硬件加速 GPU 计划 (HAGS)。HAGS 在 Windows 11 2022 更新中,当使用 AMD Software: Adrenalin Edition™ 23.12.1 或更高版本时,适用于 AMD Radeon™ RX 7900/7800/7700 系列显卡。
我们还披露了更多关于即将推出的 AMD FidelityFX Brixelizer 的详细信息,这是一款实时稀疏距离场构建器,可处理静态和动态几何体。它围绕给定位置生成稀疏距离场的级联,并将这些级联分割成体素。

然后可以通过 Brixelizer GI 引入全局光照 (GI)——这是一个纯粹基于计算的解决方案。它不需要硬件加速光线追踪,因此可以用作低端平台光线追踪动态 GI 的回退方案,或者作为更高级 GI 解决方案的基础。
使用的算法基于 AMD GI-1.0,并采用双层缓存方法,使用由世界空间辐射度和辐照度缓存支持的屏幕空间探针。它以 G-Buffer 和直接光照作为输入,并输出漫射和镜面 GI。

AMD FidelityFX Brixelizer 和 Brixelizer GI 将很快登陆 AMD FidelityFX SDK,并同时支持 DirectX® 12 和 Vulkan®。
亲临现场是最好的体验,尤其是您可以向我们的工程师提问,但我们知道这对大多数人来说并不容易。因此,我们很高兴能为您提供次优但仍极佳的选择——预先录制的赞助会议视频版本,以及配套的幻灯片。请注意,有些幻灯片在现场演示时包含相关动画或演示,因此视频版本始终是最佳选择。
让我们一一过一遍!我们所有的演讲都是最棒的,所以唯一公平的列出方式是按照它们安排的顺序。

Lou Kramer (AMD 技术人员)
Max Oberberger (AMD 高级软件工程师)
我们的工程师 Lou Kramer 和 Max Oberberger 是网格着色器方面的专家,您可以从他们的会议中学到很多东西。
会议首先解释了网格着色器如何提供比传统几何管线更灵活的替代方案,允许对如何使用硬件处理几何体进行更多控制。它们可以处理任何类型的图元,包括四边形,并且可以以高效的方式程序化生成几何体——正如我们在会议结束后发布的关于 程序化草渲染的博客(与 Coburg 大学联合撰写)中所讨论的。
演示文稿强调了网格单元生成以及顶点和图元导出对于获得良好性能的重要性,并讨论了网格着色器如何为压缩提供更多机会。
讨论了几何管线的未来,特别是随着网格着色器即将集成到 GPU 工作图中(如上所示的高级图形峰会!),并以性能考虑的注意事项结束。

Colin Riley (AMD 软件开发高级经理)
Hampus Siversson (Massive Entertainment)
特邀嘉宾 Hampus Siversson (Massive Entertainment) 与 Colin Riley 一同登台,Colin Riley 从一开始就深度参与了 AMD FSR 技术。
Colin 解释了 FSR 3 如何通过帧插值向图形管线添加帧生成,这为生成帧的数据采样提供了更多信心。然后他详细介绍了由于帧速率控制的复杂性而需要自定义交换链实现。
此外,还讨论了在集成 FSR 3 时处理运动矢量、响应性和 UI 合成所带来的挑战。
Hampus 分享了 FSR 集成到他们的 Snowdrop 引擎中,旨在提高他们在所有主要平台上的抗锯齿解决方案和性能。他们的渲染管线经过调整以适应 FSR,并将 FSR 升级和帧插值过程插入到后期处理和呈现阶段之前。
然后 Colin 以 AMD FSR 3.1 的发布结束了本次会议!

Ken Mitchell (AMD 研究员)
Ken Mitchell (AMD) 近年来已成为 GDC 的常客,他提供了关于当前 AMD Ryzen™ 处理器微架构的最新深入分析。
他今年的演示从概述当前一代 AMD Ryzen 处理器开始,然后详细介绍了数据流和微架构。
然后他介绍了最佳实践,包括使用最新的编译器和 Windows SDK。之后是优化,包括关于用户自旋锁、现代同步 API 和链式数据预取指令的指导。
与我们所有的会议一样,Ken 在宝贵的问答环节结束了他的演讲!

Dihara Wijetunga (AMD 高级软件工程师)
Dihara Wijetunga 在 GDC 上首次担任演讲嘉宾,详细介绍了 AMD FidelityFX Brixelizer 和 Brixelizer GI,这是我们即将推出的 AMD FidelityFX SDK 的新成员,如上所述。
Dihara 还对 AMD FidelityFX SDK 进行了简要更新,其中将包括示例更新和新的 GDK 后端。
此外,还有一个新的厂商无关的 Breadcrumbs 库,旨在通过在 GPU 工作周围留下“面包屑”的轨迹来帮助开发者调试 GPU 崩溃。当设备丢失时,它会转储一个面包屑树,帮助您确定崩溃期间执行的工作负载。它允许您选择写入的粒度,例如每个通道或每个绘制,可以插入到引擎现有的配置文件标记中。Breadcrumbs 让您可以选择适合您需求的粒度级别——它可以任意粗糙或精细。

Amit Mulay (AMD 高级软件开发工程师)
Chris Hesik (AMD 主任技术人员)
Miguel Petersen (Striking Distance Studios 高级渲染工程师)
[RDTS YouTube 链接]
[RDTS 幻灯片 – 6.2MB PDF]
[GPU Reshape YouTube 链接]
[GPU Reshape 幻灯片 – 0.7MB PDF]
这是一个分两部分的会议,首先由 AMD Radeon Developer Tool Suite (RDTS) 的工程师 Amit Mulay 和 Chris Hesik 概述了 RDTS 中的工具和新功能。
其中包括预览该套件的一些即将推出的功能,例如重新设计的 Radeon Developer Panel、Radeon GPU Profiler (RGP)/Radeon GPU Analyzer (RGA) 互操作、RGA DirectX® 12 单着色器编译,以及 Radeon Raytracing Analyzer (RRA) 中的新“Ray Inspector”功能。
另一位特邀嘉宾——Miguel Petersen (Striking Distance Studios (Spain))——加入了他们,展示了他用于 API 不可知的内省和指令级别验证工具 GPU Reshape。
他与 AMD 和 Avalanche Studios Group 合作开发了该工具,最初作为 Avalanche 的 Vulkan 层概念验证,之后开发继续在外部进行,并且 在此 GPUOpen 上可用。Miguel 介绍了该工具,并预览了即将推出的功能,如着色器内调试和性能分析。

Adam Sawicki (AMD 主任技术人员)
Amit Mulay (AMD 高级软件开发工程师)
Marco Bouterse (Nixxes Software 主任图形程序员)
我们当天的最后一项会议由 Amit Mulay 和 AMD 工程师 Adam Sawicki 共同主持。RGD 是一款用于 GPU 崩溃灾后分析的工具,于去年发布并广受好评。
会议开始介绍了 GPU 崩溃的原因和后果,以及调试它们的挑战——并展示了 RGD 如何提供帮助以及它的作用!开发者可以捕获 AMD GPU 崩溃转储文件,并收到一份简洁的崩溃分析报告,其中包括执行标记树、正在进行的标记、页面错误摘要和系统信息。
为了说明它的价值,他们还迎来了我们的最后一位特邀嘉宾——Marco Bouterse (Nixxes Software)——他演示了 RGD 如何用于调试由可疑描述符和有问题粒子引起的 GPU 崩溃。
他分享了 RGD 的易用性,以及它如何提供关于页面错误的额外信息,并且开销极小,使其适用于正常的开发工作。
AMD FSR 3.1 和其他 AMD FidelityFX SDK 更新将于第二季度在 GPUOpen 上发布。请记住在 Mastodon 和 Twitter/X 上关注我们,以便第一时间获取我们的公告。
Ratchet & Clank: Rift Apart © 2023 Sony Interactive Entertainment LLC. 由 Insomniac Games, Inc. 开发和创作。PC 版本由 Nixxes Software BV 制作。Ratchet & Clank 和 Ratchet & Clank Rift Apart 是 Sony Interactive Entertainment LLC 的注册商标或商标。Insomniac Games 是 Insomniac Games, Inc. 的商标。