Gaming PC

DirectStorage 1.1 with GPU Decompression Finally on Its Way

As part of this week’s Microsoft Ignite developer conference, Microsoft’s DirectX team published several blog posts providing updates on the status of various game development related projects. The biggest and most interesting of these is an update to DirectStorage, Microsoft’s API that speeds up the loading of game assets. So the long-awaited 1.1 update that adds support for GPU asset decompression is finally here, and Microsoft plans to release the API to developers by the end of this year.

As a quick refresher, DirectStorage is Microsoft’s next-generation game asset loading API, designed to take advantage of the latest capabilities of both GPUs and storage hardware to more efficiently transfer game assets directly to the GPU. I’m here. On the I/O side, DirectStorage offers new batch I/O operations designed to reduce the number of individual I/O operations, reducing overall I/O overhead. But even more noteworthy than that, DirectStorage also enables (or plans to enable) decompression of GPU assets, allowing modern compressed assets to bypass the CPU and instead run on the GPU. to make it unzippable.

The importance of DirectStorage is that Microsoft wants PCs (and consoles) to better take advantage of the low random access times and high transfer speeds of modern SSDs. As is the case today, assets load noticeably slower. In the current game development paradigm, both chasing so many I/O operations and decompressing game assets before handing them over have significant CPU costs, so CPUs are more than what SSDs can offer. It can be a bottleneck factor when scaling up the I/O rate to meet. to the GPU. DirectStorage, on the other hand, is designed to minimize both of these costs, ultimately trying to keep the CPU out of streaming game assets as much as possible.

DirectStorage technology has already been implemented on Microsoft/s Xbox Series X/S consoles for a 2020 launch, so recent efforts have focused on porting DirectStorage to Windows and taking into account the heterogeneous hardware ecosystem. I’m here. Earlier this year, Microsoft released DirectStorage 1.0. It implemented I/O batching improvements, but did not implement GPU decompression functionality. This is where DirectStorage 1.1 comes in. Because it finally enables his second (and most important) aspect of DirectStorage for PCs.

By allowing the GPU to perform game asset decompression, that entire process is offloaded from the CPU. This not only frees up the CPU for other tasks, but also eliminates a potentially significant bottleneck for game asset streaming. Modern SSDs are so fast (hundreds of thousands of IOPS and data transfer rates reaching 7GB/sec) that the CPU is the weakest link between fast SSDs and massively parallel GPUs. So with DirectStorage, the CPU is almost completely cut.

As far as the performance benefits of DirectStorage 1.1 go, the full benefit depends both on the hardware you use and how much data your game or other application is trying to push. Games that move a lot of data on very fast systems are expected to benefit most from the full DirectStorage 1.1 stack, but even lighter games can benefit from faster access times to NVMe SSDs. increase.

As part of Microsoft’s blog post, the company posted screenshots of a Bulk Loading sample program for game developers. It provides a simple demonstration and benchmark of DirectStorage 1.1 in action. For Microsoft, he was able to load a 5.65GB asset in 0.8 seconds using GPU decompression on an unlisted PC, versus 2.36 seconds on the same system using CPU decompression. Maximized CPU load during the process. As with most of the SDK example programs, this is a simple test case that only focuses on one feature of his, so the real benefit is likely not too extreme, but the ability to decompress assets on the CPU It highlights the performance benefits of moving from to GPU. If you have a large amount of asset data.

Internally, DirectStorage GPU decompression is enabled by the introduced GDeflate. This is a general-purpose compression algorithm, Developed by NVIDIAGDeflate is a GPU-optimized variation of Deflate, designed to mesh well with the massively parallel (and not very serial) nature of GPUs.

Second, DirectStorage implements GDeflate support in two different ways. The first (and recommended) way is to pass things to the GPU driver and handle it in whatever way the GPU vendor sees fit. This allows hardware vendors to optimize for the specific hardware/architecture they use and leverage special hardware processing blocks when available. All three companies are eager to show off and may (if not all) have DirectStorage 1.1 capable drivers before the API is shipped to game developers.

If that’s not possible, Microsoft also provides a generic (but optimized) DirectCompute GDeflate decompressor that can run on DirectX12 Shader Model 6.0 compliant GPUs. So, one way or another, GDeflate will be available on nearly every PC GPU manufactured in the last decade, although modern GPUs are expected to offer much better performance.

Otherwise, the only things you’ll eventually need to take advantage of GPU decompression (and DirectStorage 1.1 in general) will be Windows 10 1909 (or newer) or Windows 11, and a fast storage device . Technically, DirectStorage works for any storage device, including SATA SSDs, but it is explicitly optimized (and gives the best results) for systems using NVMe SSDs.

Note, however, that it is up to individual games to implement DirectStorage to see the benefits of the API. This means not only using the necessary API hooks, but also shipping the game with assets packed using the new GDeflate algorithm. GDeflate’s extensive backwards compatibility means a game developer can basically run DX12 games here. Anything worth running a new game supports DirectStorage and GDeflate. It cannot be easily added to an existing game. Developers must redistribute (or recompress) their game assets for GDeflate. While this is certainly doable, gamers will have to re-download large portions of the game. As such, gamers should plan for DirectStorage 1.1 to appear as a feature in future games rather than being backported into existing games.

Finally, speaking of the Microsoft audience (developers), this week’s announcement from Microsoft is meant to encourage you to get your updated API ready for release later this year. Microsoft has not released any API documentation or tools at this time, but encourages developers to start using DirectStorage 1.0. This will allow him to take the next step and add GPU decompression when 1.1 is available later this year.

Related Articles

Back to top button