Earlier this month, Microsoft publicly released the DirectStorage API, designed to overcome existing Win32 API input/output (IO) bottlenecks with the latest games.
At GDC 2022, Microsoft software engineer Cooper Partin spoke about optimizing I/O performance with DirectStorage on Windows. He stated that this is not a direct port of the DirectStorage API available for Xbox Series S|X; this version has been tailored to the unique needs of the PC system.
The most exciting part is where Partin says the API can offer 20-40% CPU savings as-is, provided you’re running it on Windows 11 with an NVMe SSD. Game developers could then use those CPU cycles to do other things.
The DirectStorage runtime environment offers game developers the ability to reduce CPU usage as well as load times in their title. This technology will work well with NVMe drives in combination with streaming architectures.
Now reducing CPU overhead. This is a key advantage that I really want to emphasize, and you will hear me say it many times in this conference. The more CPU cycles freed up for a title, the more they can be leveraged elsewhere in that title, which improves background processing. AI workloads or whatever, additional experiments, for example.
Let’s talk about that CPU reduction I talked about here. DirectStorage is designed for modern gaming systems. It handles small reads very efficiently and you can group things together to get more work done. When fully integrated into your title, DirectStorage with an NVMe SSD on Windows 11 reduces CPU overhead in a game by 20-40%. This is attributed to advancements in the file I/O stack on Windows 11 and improvements to that platform in general.
DirectStorage also supports Windows 10 (19H1+), but on the older OS it’s a fallback implementation that uses an optimized file I/O layer built on top of the Win32 APIs. While it leverages patterns like asynchronous I/O and completion ports to maximize throughput on Windows 10, performance won’t be quite the same as on Windows 11.
As mentioned in the Forspoken GDC 2022 conference, the Microsoft engineer confirmed that the current version of the API still relies on CPU decompression. GPU decompression is underway, however, promising further improvements in load times and CPU overhead.
Our first version of DirectStorage introduced CPU decompression, and that’s what you’re using now, but we’re not going to stop there. We will continue to free up many more CPU cycles by finding more creative ways to offload decompression to other parts of the system.
For example, the GPU. In the future release, you will be able to use DirectStorage to decompress assets using this GPU, which will save you more CPU, allowing you to do more extra work in your title.
NVIDIA has been quiet about RTX IO technology for a while, but that should change whenever Microsoft implements GPU decompression support in the API.
So far, the only game to support DirectStorage is Forspoken from Luminous Productions. Of course, we will keep you informed of any new announcements. Stay tuned!