微软的 DirectStorage 是一项旨在让游戏充分利用高速存储(例如 NVMe SSD)的功能,它可以以最小的 CPU 开销,提供每秒数 GB 的小数据(例如 64kb)读取。 目前 DirectStorage 1.1 已发布 ,这个版本正式带来了 GPU 解压缩功能,在解压游戏资源方面加速了好几倍。
新东西:
- GPU 解压缩和 Gdeflate 压缩格式现已可用。
- 添加了 EnqueueSetEvent ,以使用 Win32 事件对象进行完成通知。
- 性能改进和错误修复。
GPU 解压缩功能 & Gdeflate 压缩格式
背景提要:
游戏需要大量数据来构建 —— 每个角色、物体和景观都有描述形状、光照和颜色等特征的“资产”,可能会增加数百 GB 的数据。
为了减少游戏的整体包大小,这些资产平时会被压缩。当游戏运行加载时,资产会被传输到系统内存中,CPU 负责解压缩数据,然后最终将其复制到 GPU 内存中,以供渲染需要时使用。
这些资产在游戏设备上的传输和解压极大地延长了游戏的加载时间,并限制了开放世界场景中包含的细节。
通常,解压缩的工作在 CPU 上完成,因为压缩格式历来仅针对 CPU 进行了优化。但 DirectStorage 1.1 提供了一种替代方法,它将这些资产的解压工作转移到 GPU 上—— 这就是“GPU 解压” 功能。显卡在并行执行可重复任务方面非常高效,可以利用该功能以及高速 NVMe 驱动器的带宽来一次完成更多工作。
该 GPU 解压功能使用一种新的压缩格式,由 NVIDIA 提供,被称为 Gdeflate。使用该 GPU 解压功能,加载游戏资产所需的时间大大减少,从而减少关卡加载时间,改善开放世界流媒体。
在测试中, 当 DirectStorage 运行 GPU 与 CPU 同时解压缩时,场景的加载速度快了近 3 倍。
从图中可看出来,使用 GDeflate 格式(左)的 GPU 在 0.8 秒内加载,而使用 Zlib(右)的 CPU 在 2.36 秒内加载。
有关该 GPU 解压缩功能和 GDeflate 格式的技术细节,可查看 DirectStorage 1.1 发布公告。
GPU 解压功能适用范围
在压缩/解压缩方面,有几个因素会影响游戏性能:
操作系统: DirectStorage 游戏可在 Windows 10 和 Windows 11 上运行,在 Windows 10 和 Windows 11 上运行的游戏都可从高效的 GPU 解压缩实施中获益,因为此功能的关键组件是将工作负载从 CPU 转移到 GPU,对操作系统本身影响不大。
存储设备:支持 DirectStorage 的游戏可在所有设备上运行,但需要 NVMe SSD,因为 NVMe SSD 带宽能力更高,存储介质本身更快,才能看到 DirectStorage 的显着改进。强烈建议将游戏文件保存到 NVMe, 以获得最佳游戏体验。
GPU:支持 Shader Model 6.0 的任何支持 DirectX 12 的 GPU 都可以利用新功能,推荐支持 DX12 Ultimate 的显卡。
优化驱动程序
所有 DirectX 12 + Shader Model 6.0 GPU 都支持 GPU 解压缩功能。但是,DirectStorage 1.1 带来了另一好处:每家 GPU 硬件供应商都对自家硬件提供额外的优化,称为元命令。
有关不同合作伙伴对元命令的支持信息,请参阅下面的链接。
- AMD
- 英特尔
- 英伟达
建议为游戏硬件更新到最新的驱动程序,以获得最佳性能。