激光网3月13日消息,微软发布了最新版本的 Agility SDK,其中包含创新的图形功能,将在 2024 年游戏开发者大会上展示。
SDK 1.613.0 引入了工作图、着色器模型 6.8、GPU 上传堆和其他一些增强功能,旨在使游戏开发人员能够创建更高效、更灵活和更具创意的体验。
工作图:释放 GPU 的全部潜力
Agility SDK 的亮点是 Work Graphs,这是一个开创性的 API,可以释放 GPU 的全部潜力。与传统模型不同,Work Graphs 代表了一种新的范式,使开发人员能够动态生成和调度 GPU 工作,而无需依赖主机。这种创新方法有望为计算工作的剔除、分箱和链接等任务提供更高的性能、更低的延迟和更大的可扩展性。
Epic Games 图形工程研究员 Graham Wihlidal 评论道:
“随着 GPU 驱动的渲染技术的激增,CPU 的角色正趋向于主要用于资源管理和危险跟踪,而生成 GPU 命令的时间只花在一小部分上。在使用 D3D12 Work Graphs 之前,很难在 GPU 上执行细粒度内存管理,这意味着几乎不可能支持具有动态工作扩展的算法。即使是简单的长链顺序计算工作也可能导致大量的同步和内存开销。
GPU 驱动的渲染是通过 CPU 必须猜测 GPU 需要哪些临时分配来实现的,通常会过度分配到最坏的情况,并使用以前的帧回读进行优化。任何具有动态扩展功能的工作负载都意味着从 CPU 发出最坏情况的调度,让 GPU 尽早摆脱不必要的工作,或者使用不可移植的技术,例如持久线程。
借助 Work Graphs,在整体“形状”方面高度可变的复杂管道现在可以在 GPU 上高效运行,调度程序负责同步和数据流。这对于生产者-消费者管道尤为重要,这在渲染算法中非常常见。对于开发人员来说,编程模型也变得非常简单,因为复杂的资源和屏障管理代码从应用程序移动到 Work Graph 运行时。
多年来,我们一直在倡导这样的事情,最终看到工作图的发布非常令人兴奋。
微软还获得了行业巨头AMD和NVIDIA的认可,两家供应商都为Work Graphs提供了第一天的驱动程序支持。
着色器模型 6.8 是对工作图的补充,它为着色器开发人员引入了一套新功能。其中的亮点包括起始顶点/实例位置、波大小范围和扩展比较采样:
Start Vertex/Instance Location 允许着色器检查调用 Draw*Instanced API 调用中提供的参数,从而实现更高效的地址计算。
Wave Size Range 使开发人员能够在着色器中指定他们喜欢的波形大小,从而减少了对多个入口点的需求,并使驱动程序能够选择合适的波形大小。
扩展的比较采样提供了用于评估着色器中附近像素的新选项,从而实现更好的跨平台着色器创建。
GPU 上传堆:加速数据传输
GPU 上传堆引入了一种快速便捷的方法,可以绕过传统的 PCI 总线瓶颈,将数据从 CPU 复制到 GPU。通过利用现代 GPU 上可调整大小的 BAR ,可以以更低的延迟实现 CPU 到 GPU 的数据传输。
GPU 上传堆最初作为开发人员预览版发布,现在在零售版中可用于面向 Windows 11 Insider Preview Build 26080 或更高版本的任何应用程序。
其他增强功能
Agility SDK 还包括对 ExecuteIndirect 的改进,其中根签名中的根常量现在可以充当 ExecuteIndirect 调用中每个命令的递增常量。此外,状态对象中的通用程序扩展了为工作图和光线跟踪管线定义着色器的方式,以支持基于顶点着色器、网格着色器和计算着色器的管线。
与往常一样,微软的 PIX 工具在第一天就支持敏捷性 SDK 中引入的所有新 D3D12 功能,确保开发人员拥有有效利用这些改进的必要工具。
借助 Agility SDK,Microsoft 旨在使游戏开发人员能够突破图形性能和创造力的界限。