Microsoft’s DirectStorage Will Support PCIe 3.0, All DX12-Capable Hardware
Last year, Microsoft announced that DirectStorage would deliver the same benefits of the Xbox Velocity Architecture to the PC side of gaming. The company has shared some details of how DirectStorage can accomplish this goal, and what the required specs for the feature are.
If you want to use DirectStorage, you’ll need a PCIe 3.0 NVMe SSD and a GPU that supports DirectX 12, though Microsoft apparently says a DirectX 12 Ultimate GPU will provide the best solution. A limited preview of the feature is expected for developers this summer, implying we’re still a little while out from seeing the feature in PC gaming. The developer who posted the slides thinks we might see DirectStorage drop with the second-half update for Windows 10 this year.
There are three primary components to the DirectStorage architecture: the DirectStorage runtime + API, an asset decompression stack, and the Windows storage stack. The primary goal of DirectStorage is to shift asset compression and decompression from a CPU-side workload to a GPU workload.
Here’s the storage stack as it exists today. The CPU handles data decompression, and the GPU handles copying data into its own VRAM. Microsoft’s big idea is for the GPU to handle the decompression step, without involving the CPU at all.
This approach should boost efficiency and save power compared with copying data back and forth across the CPU. The GPU is better able to support streaming I/O data requirements, and handling this work in the GPU doesn’t load it the way that running full I/O through the CPU does. According to Microsoft, future storage workloads in gaming are likely to be “highly granular, but very parallel,” and the DS API is optimized to keep both the GPU and NVMe SSD fed while reducing application overhead.
Microsoft has worked with GPU vendors to implement a new protocol for storage decompression based on DirectCompute. There’s a CPU-execution option available for assets specifically intended to be stored in system memory and various sub-components of the standard remain under development. Microsoft has also made a number of enhancements to the underlying Windows storage stack.
A lot of these under-the-hood improvements have implications for reducing storage access latency. If you look back at older articles where gamers put an SSD inside of a console, the storage performance improvements varied dramatically. This happened because neither the games nor the underlying console storage system had been designed for an SSD. Games that performed a set amount of storage I/O per frame didn’t see much in the way of performance improvements.
PCs have offered SSDs in at least some segments for over a decade, and support for SSD features like TRIM went in with Windows 7, but the typical PC storage model still assumes a hard drive by necessity. The fly in the ointment where DirectStorage is concerned is that even having an SSD isn’t enough — end-users will need a PCIe 3.0 NVMe drive in order to use the capability.
The goal of DirectStorage is to allow game memory requirements to scale faster than the size of GPU frame buffers. We’ve spent five years at 8GB, and while the demands of ray tracing seem likely to push VRAM buffer size upwards in the next year or two, there’s no sign that we’ll be seeing 16GB cards at the $250 price point any time soon. Streaming data quickly off an NVMe drive is a plausible alternative and there’s no reason PCs can’t take advantage of the feature the way the Xbox Series S|X can. The need to support SATA SSDs will probably keep DirectStorage as an optional feature for the foreseeable future in PC gaming, however. Hat tip to redditor NEPBB for posting the slides.