Microsoft Makes The DirectStorage API Officially Available
Microsoft in late 2020 announced DirectStorage as a new API in the DirectX family focused on delivering faster I/O performance for games to yield quicker game load times and more expansive virtual worlds. After being in a limited developer preview since last year, today Microsoft is making the DirectStorage API broadly available.
This news isn't directly relevant to Linux gamers but it's interesting tech and will be interesting to see if/when there is work on emulating/wrapping this API around Linux interfaces for use by Steam Play. The DirectStorage API introduces a new programming model for DX12-style batched I/O, GPU accelerated decompression, and various storage stack optimizations aimed for speedy NVMe disk performance.
Games must explicitly make use of the DirectStorage API but in doing so should yield significantly quicker game load times and allow for heavier I/O usage such as for larger maps and textures without hurting the system performance. It will be interesting to see if Steam Play and/or Wine aims to provide a compatible implementation of DirectStorage. Mapping the new storage API to IO_uring might be possible for more efficient I/O handling and the GPU decompression seems like it should be workable to implement atop Vulkan. Linux's storage stack itself is constantly improving as we frequently report on with new per-core IOPS records being frequently set. It's also worth noting at least for now DirectStorage only supports reads and not disk writes.
Those wishing to learn more about the DirectStorage API that is now publicly available can do so via the Microsoft Developer blog. Windows code samples around DirectStorage and other resources can be found via Microsoft DirectStorage on GitHub.
This news isn't directly relevant to Linux gamers but it's interesting tech and will be interesting to see if/when there is work on emulating/wrapping this API around Linux interfaces for use by Steam Play. The DirectStorage API introduces a new programming model for DX12-style batched I/O, GPU accelerated decompression, and various storage stack optimizations aimed for speedy NVMe disk performance.
Games must explicitly make use of the DirectStorage API but in doing so should yield significantly quicker game load times and allow for heavier I/O usage such as for larger maps and textures without hurting the system performance. It will be interesting to see if Steam Play and/or Wine aims to provide a compatible implementation of DirectStorage. Mapping the new storage API to IO_uring might be possible for more efficient I/O handling and the GPU decompression seems like it should be workable to implement atop Vulkan. Linux's storage stack itself is constantly improving as we frequently report on with new per-core IOPS records being frequently set. It's also worth noting at least for now DirectStorage only supports reads and not disk writes.
Those wishing to learn more about the DirectStorage API that is now publicly available can do so via the Microsoft Developer blog. Windows code samples around DirectStorage and other resources can be found via Microsoft DirectStorage on GitHub.
52 Comments