多年来微软一直承诺让 Windows 的游戏体验变得更好,现在终于将 DirectStorage 技术引入到了 PC 端的 Windows 11、10 系统当中。由于这个消息的发布,最近几个月围绕 DirectStorage 有很多讨论,开发人员可以使用这项新功能来消除加载时间并改善游戏玩家的整体体验。 但 DirectStorage 是什么,它会不会辜负传言呢?
本文系统极客将介绍 DirectStorage 是什么、它的工作原理以及如何在 Windows 11 中使用它。
微软的 DirectStorage 是什么技术
DirectStorage 从字面上来看就是「直连存储」,技术实现上也正是:让 GPU 在不通过 CPU 的情况直接获取 SSD 中的数据。它其实是最新 DirectX 12 迭代中包含的一项功能,旨在压榨出新一代 SSD 的全部能力来改善游戏体验。
DirectStorage 其实不是什么新出来技术,它之前就一直被 Xbox X 和 S 系列主机所使用(索尼也有类似的专利技术被用到 PS5 中),只是最近被微软引入到了 Windows 11、10 系统当中。
DirectStorage 在 Windows 11 中的工作原理
简而言之,DirectStorage 允许市面上较新的 GPU 跳过现在(CPU 这样的)不必要路径,使用更快的技术,来更快地接收游戏数据,从而实现近乎即时的加载时间。
当加载游戏时,DirectStorage 会将所有游戏数据(如纹理、音频、地图和角色模型)保存到计算机的 SSD 中,然后游戏使用应用程序编程接口(API)负责将 SSD 中的数据存储和检索到物理内存(RAM)中,然后才传递到图形处理单元(GPU)的 VRAM 进行渲染输出显示。
但是,现在的游戏大作通常体积都非常庞大,为了节省存储空间和网络带宽,游戏的数据在分发之前通常会被压缩。问题是 GPU 通常无法直接读取压缩数据,所以数据需要先在 CPU 中进行解压才发给 GPU 渲染。
在 CPU 中解压数据这个步骤通常都要花不少时间,这就让 CPU 变成了瓶颈,意味着需要更长的游戏加载时间和得到更低的帧速率。
而 DirectStorage 是一种低级存储应用程序编程接口(API),其中包含全新的 GPU 解压缩技术,可将解压缩工作从 CPU 挪到 GPU 当中。 就完全跳过了 CPU 这步,以使得 GPU 可以直接、快速地接收大量压缩数据。
以前的 API 只是为了处理有限的数据量而编写的,而 DirectStorage 支持许多并行 I/O 请求,通过只允许为每个场景或关卡传输必要的数据来提高效率。 从本质上讲,DirectStorage 为新的 NVMe 驱动器中的大量带宽优化了 I/O 性能,来获得比旧存储设备更快的数据传输率。
DirectStorage 的硬件要求
Xbox X 系列和 Xbox S 系列游戏机原生实现了 DirectStorage,它是 Velocity 架构的一部分,也是游戏必须安装在 Xbox SSD 上的原因。
但是,Windows 11 和 10 操作系统对运行 DirectStorage 有特定的硬件要求:
- 必须使用至少 1TB 的 PCIe 3.0 NVMe 驱动器。NVMe 是当前用于取代 SATA 接口的新 SSD 通信协议,因为它们通过 PCIe 接口直连到 CPU,NVMe SSD 可以实现更快的速度。(PCIe 4.0 将提供最佳结果。)
- 必须使用至少支持 Shader Model 6.0 的 DirectX 12 Ultimate GPU。这包括 NVIDIA RTX 20xx 系列及更高版本以及带有 RDNA 2 芯片的 AMD 显卡。
如何在 Windows 11 中使用 DirectStorage
DirectStorage 已经包含在 Xbox X 和 S 系列主机、Windows 11 和 Windows 10 v1909 及更高版本中,这意味着在操作系统层面系统上已经被激活启用;当然,游戏大作也必需实现了 API。只有操作系统和游戏都满足条件的情况下,该功能才能正常工作。
就目前来看,首款支持 DirectStorage 的 Windows 角色扮演游戏「魔咒之地」将会在 2022 年 10 月 11 日 首发。