DirectStorage 利用 NVMe 加速游戏加载开源项目

我要开发同款
匿名用户2022年11月11日
31阅读
开发技术C/C++
所属分类程序开发、图形/图像处理
授权协议MIT

作品详情

DirectStorage是一项旨在让游戏充分利用高速存储(例如NVMeSSD)的功能,它可以以最小的CPU开销提供每秒数GB的小(例如64kb)数据读取。

使用传统的基于ReadFile的IO可以使驱动器饱和,但随着单个读取大小的减小,CPU开销会非线性增加。此外,大多数游戏选择将其资产压缩存储在磁盘上,以减少安装占用空间,这些资产在加载时会即时解压缩。随着带宽的增加,这种CPU开销变得越来越昂贵。

DirectStorageforWindows是一个API,允许游戏开发人员充分发挥高速NVMe驱动器来加速游戏资产加载的过程,诸如XboxSeriesX|S之类的游戏机通过将这些压力卸载到硬件来解决这些问题——利用NVMe硬件队列来管理IO和硬件加速解压缩。

Xbox上已经存在DirectStorageAPI,为了便于在Xbox和Windows之间移植游戏,这两个API尽可能相似。

DirectStorage仅支持读取操作,可以在开发人员指南中找到一些很好的入门信息。

 

API示例Samples目录包含演示如何使用DirectStorageAPI的示例代码。

HelloDirectStorage:这个基本示例通过读取文件的内容并使用DirectStorage将其写入GPU上的缓冲区,提供了一种快速简便的方法来熟悉DirectStorage运行时。

BulkLoadDemo:这演示了使用DirectStorage、GPU解压和自定义CPU解压。

GpuDecompressionBenchmark:此示例提供了一种快速查看DirectStorage运行时解压缩性能的方法,方法是读取文件的内容,对其进行压缩,然后以多种方式解压缩,同时测量带宽和CPU使用率。使用GPU和CPU执行解压缩以进行比较。

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论