微软推新的DirectX I/O API,游戏将可高速访问NVMe固态硬盘

为了跟上不断发展的游戏体验以及I/O硬件,微软发布最新DirectX功能DirectStoragefor PC的消息。DirectStorage是一个DirectX的API,能让台式机显卡快速访问NVMe固态硬盘,以解决游戏资源的加载瓶颈,提升游戏画面细节,大幅增加游戏体验。微软预计明年就会推出DirectStorage开发预览版。

无论是存储技术或是游戏,在现代都有了巨大的演进,在存储方面,由于SSD和PCIe技术的发展,使得游戏能够使用比旧硬盘大上许多的带宽,访问硬盘里的资料,而现代游戏因为画面以及内容的提升,需要加载的资料比旧游戏多上不少。

游戏开发者发展了不少技术,来优化资源加载效率,像是将资源分解成更小的单位,游戏便能仅加载当前渲染需要的部分,虽然这个方法会产生更多的I/O,但是确实能提升内存效率,游戏也能渲染更精细的画面。

但微软提到,目前的绘图API都没有对如此大量的I/O进行优化,因此游戏无法完全妥善利用NVMe提供的大带宽,进而限制了游戏的能力,因此微软将推出DirectStorage for PC来解决这个问题,该API能够在具有NVMe硬盘的系统环境,让显卡高速访问游戏资源,优点是除了缩短过长的加载时间之外,也使得游戏画面能够更细致。

微软解释,这两个优点都来自I/O系统的改进,游戏无论是要渲染角色服装的贴图,或是远景群山的细节,都需要从存储设备加载资料,才能送至GPU运算,前者发生在加载画面时,而后者则发生在玩家探索游戏开放世界的时候,因为游戏会即时加载角色视野内的景物,丢弃看不见的对象。

前一时代的游戏,每秒约需要使用50 MB的资源,微软提到,以较小的64 k资料块计算,每秒大概产生数百个I/O请求,但现代游戏每秒资源流量高达数GB,以Xbox Series X每秒2.4 GB,和相同的64 k资料块来计算,每秒I/O请求数可能需要达35,000次,才能满足游戏的需要。

之所以当前的API,无法应对大量的I/O请求数,是因为单个请求的成本太高,当I/O数达万次时,成本被放大,因而限制了NVMe磁盘带来大带宽的好处,另外,由于多数游戏资源经过压缩,要使用前都需要先进行解压缩,所以要让游戏能够尽量用到更多的资料,需要一个能解压缩并传递至GPU的有效方法,而DirectStorage支持了最新解压缩技术,刚好可以解决这个问题。

微软提到,NVMe设备不仅仅是高带宽的SSD,而且还拥有称为NVMe队列的硬件资料访问渠道,特别适合用于游戏工作负载,NVMe设备可以拥有多个队列,每个队列包含多个请求,能够良好支持现代游戏平行与批处理的特性。

微软正在与游戏产业合作,推动DirectStorage标准,使得游戏与硬件都能够支持该API,并且也使得DirectStorage设计能够更完善,微软预计在明年,可以让游戏开发者用到DirectStorage开发预览功能。