New DirectStorage SDK allows developers to improve game load times on HDDs

nanoguy

Posts: 1,355   +27
Staff member
Why it matters: There are hardly any games supporting DirectStorage out there, with Forspoken being the only notable example along with rumors that Diablo IV might also come with the feature when it launches later this year. Still, Microsoft is making slow and steady improvements to the technology even as developers aren't rushing to implement it.

It's still early days for DirectStorage, a technology developed by Microsoft to bring PC game load times more in line with consoles like the Xbox Series X and Xbox Series S. What it essentially does is leverage the GPU for decompressing game assets, allowing developers to tap into the large bandwidth afforded by solid-state storage.

This week, Microsoft quietly released version 1.2 of the DirectStorage software development kit with additional features and fixes, and several things caught our eye.

The most important by far is the introduction of a buffered IO mode. Normally, DirectStorage opens files in unbuffered mode to minimize the time needed to get the data to the GPU, but many people like yours truly still have their game library scattered across SSDs and slower mechanical hard drives. HDDs can greatly benefit from buffering features in Windows, so there's now a way for game developers to share the same code path between both storage types.

There is a downside in that it will be the developer's responsibility to do the necessary configuration and apply it to the right scenarios. Furthermore, this won't magically make HDDs much faster while coming at the cost of additional RAM usage. Speaking of RAM requirements, they seem to be shooting up with every new crop of games and the inclusion of DirectStorage tech will only add more pressure on that front for titles that will use it.

Also read: Shader Compilation and Why It Causes Stuttering, Explained

Another new feature in DirectStorage 1.2 is something that will help developers understand which decompression is in use on any given system to adjust texture quality and prevent things like pop-ins or blurry textures. Microsoft says decompression tasks sometimes fall back to the CPU, creating the need for additional optimizations. This will become increasingly important in new titles that are pushing the limits of VRAM even on relatively new graphics cards.

Last but not least, Microsoft fixed some scheduling and decompression issues that will make DirectStorage a little faster. The speed improvement won't be on the level of that brought by the previous update that came out in November, but every little bit counts.

Masthead credit: Andrey Matveev

Permalink to story.

 
I get HDDs for large-volume, low-bandwidth applications like storing large video files, but for games? In 2023? I feel like the kindest and certainly most effective performance enhancement Microsoft could offer is simply refusing to load games from an HDD in the first place. Which is basically the stance they took for the current Xbox.
 
I get HDDs for large-volume, low-bandwidth applications like storing large video files, but for games? In 2023? I feel like the kindest and certainly most effective performance enhancement Microsoft could offer is simply refusing to load games from an HDD in the first place. Which is basically the stance they took for the current Xbox.
No point alienating people like that on a general purpose OS. Especially when it's not their responsibility to implement it.

Just gotta wait for the mainstream game engines to properly implement this, and then a lot more games will support it.
 
DirectStorage / RTX IO can also easily reduce VRAM usage ;)
It doesn’t reduce the amount of VRAM used and, if anything, can potentially increase the read/write rates. The primary function of DS is to remove the need of having to write all GPU assets into system RAM first, before being read and copied into VRAM — with DS, the GPU can copy assets directly from storage.

So the system RAM required by a game has the potential to be reduced, although it’s down to the devs to implement DS properly to take advantage of all its benefits effectively. Something that’s not very easy to do, otherwise every game that’s I/O and/or CPU limited during data streaming would be using it.
 
It doesn’t reduce the amount of VRAM used and, if anything, can potentially increase the read/write rates. The primary function of DS is to remove the need of having to write all GPU assets into system RAM first, before being read and copied into VRAM — with DS, the GPU can copy assets directly from storage.

So the system RAM required by a game has the potential to be reduced, although it’s down to the devs to implement DS properly to take advantage of all its benefits effectively. Something that’s not very easy to do, otherwise every game that’s I/O and/or CPU limited during data streaming would be using it.
RTX IO can compress and decompress the data transfered to VRAM via DS, it might be the same size afterwards, IDK - Still early days for DS/RTX IO
 
RTX IO can compress and decompress the data transfered to VRAM via DS, it might be the same size afterwards, IDK - Still early days for DS/RTX IO
DirectStorage and RTX IO both perform GPU decompression only. Assets are read from storage in the format they're stored in and, if necessary and if enabled, then decompressed by the GPU.

Microsoft has updated its DS sample files to v1.2 and I played about with the Bulk Load demo on two different storage drives:

512 GB PCIe 4x SSD
direectstorage1.2_SSD_benchmark.jpg

1TB Hybrid SATA 6Gbps HDD
direectstorage1.2_HDD_benchmark.jpg

Specs for the system used: Core i7-9700K, 16 GB DDR4-3000, GeForce RTX 4070 Ti.

Edit: I suspect this test doesn't use the buffer feature in DS v1.2 -- I'll have a poke through the code and see if I can redo with the HDD run with enabled.

Edit: No luck so far with the code hunt, but here's the SSD test again but without GPU decompression enabled:

direectstorage1.2_SSD_noGPUdecompression_benchmark.jpg
 
Last edited:
I get HDDs for large-volume, low-bandwidth applications like storing large video files, but for games? In 2023? I feel like the kindest and certainly most effective performance enhancement Microsoft could offer is simply refusing to load games from an HDD in the first place. Which is basically the stance they took for the current Xbox.
Some people tend to download multiple 200gb games to play later. I will not discuss why and if it will ever happen but when you have terabytes and terabytes of games installed, PC gaming becomes expensive on SSD.
HDDs got faster too. I remember how painfully slow those 2.5 HDDs were. They dont have SSD speed, but they perform much better.
 
We're calling $600 video cards mainstream, but then there are people who won't spend $40 on a 1TB SSD for their games? I haven't had a HDD in my computer system in well over 10 years. Maybe 15 years.
 
Some people tend to download multiple 200gb games to play later. I will not discuss why and if it will ever happen but when you have terabytes and terabytes of games installed, PC gaming becomes expensive on SSD.
HDDs got faster too. I remember how painfully slow those 2.5 HDDs were. They dont have SSD speed, but they perform much better.
Even a 7200 rpm hard drive performs much more slowly than even the slower SSDs. Due to heat generated by fast spinning hard drives, anything faster than 7200, like 10800, is out of the question and marginally faster than 7200 anyway/
 
Back