DirectStorage是一项旨在让游戏充分利用高速存储(例如NVMeSSD)的功能,它可以以最小的CPU开销提供每秒数GB的小(例如64kb)数据读取。
使用传统的基于ReadFile的IO可以使驱动器饱和,但随着单个读取大小的减小,CPU开销会非线性增加。此外,大多数游戏选择将其资产压缩存储在磁盘上,以减少安装占用空间,这些资产在加载时会即时解压缩。随着带宽的增加,这种CPU开销变得越来越昂贵。DirectStorageforWidows是一个API,允许游戏开发人员充分发挥高速NVMe驱动器来加速游戏资产加载的过程,诸如XboxSeriesX|S之类的游戏机通过将这些压力卸载到硬件来解决这些问题——利用NVMe硬件队列来管理IO和硬件加速解压缩。Xbox上已经存在DirectStorageAPI,为了便于在Xbox和Widows之间移植游戏,这两个API尽可能相似。DirectStorage仅支持读取操作,可以在开发人员指南中找到一些很好的入门信息。 API示例Samples目录包含演示如何使用DirectStorageAPI的示例代码。HelloDirectStorage:这个基本示例通过读取文件的内容并使用DirectStorage将其写入GPU上的缓冲区,提供了一种快速简便的方法来熟悉DirectStorage运行时。
BulkLoadDemo:这演示了使用DirectStorage、GPU解压和自定义CPU解压。
GpuDecompressioBechmark:此示例提供了一种快速查看DirectStorage运行时解压缩性能的方法,方法是读取文件的内容,对其进行压缩,然后以多种方式解压缩,同时测量带宽和CPU使用率。使用GPU和CPU执行解压缩以进行比较。










评论