Friday, October 14th 2022

DirectStorage not used by any Games, Microsoft hopes DirectStorage 1.1 with GPU Asset Decompression can Fix This

Back in March 2022, Microsoft formally debuted the DirectStorage 1.0 API that enables direct interactions between a GPU and a storage device; thereby reducing the processing load of the storage stack on the CPU and main memory. This release, however, lacked a killer feature that's available to consoles—asset decompression. With the lukewarm response from game developers to DirectStorage 1.0 for PC, Microsoft has finally updated the API, introducing the feature with DirectStorage 1.1.

With this feature, your GPU can not only directly fetch game assets from the storage device (an SSD that uses either NVMe or AHCI protocols), but also pull them in their natively-stored compressed state. These assets are then decompressed by the GPU using compute shaders, and the decompressed assets remain in the video memory. This will directly impact game loading times, as asset decompression no longer involves the CPU. Its impact on the game's framerate will be minimal, as the API mainly accelerates game loading times, not gameplay itself. Game assets are organized pieces of data such as textures, 3D model files, music, sound effects—pretty much all of the individual pieces of content that make up a 3D scene.
File compression (and decompression) remains a compute-heavy workload that benefits from parallelism, and here the GPU and its faster memory help greatly. Once the relevant assets are committed to video-memory, the remaining data from the asset containers are purged from video memory to make room for the rest of the game's memory load. Microsoft in its tech demo example showed how a 3D scene's assets were loaded in 0.8 seconds with DirectStorage 1.1, compared to 2.36 seconds without it. This is just a synthetic example, you can imagine the impact on much larger AAA games that take dozens of seconds to load levels, even with NVMe SSDs. The hold-up here is not the storage device, but the CPU trying to decompress relevant assets.

Along with DirectStorage 1.1, Microsoft is introducing GDeflate, a file compression format for game assets, developed by NVIDIA, and is working with all PC GPU manufacturers, including AMD and Intel, to add support for this file format through graphics driver updates. The format is optimized for highly parallelized compression and decompression methods over a large number of threads, which make them better optimized for GPUs. This doesn't necessarily mean that all games have to use GDeflate in order to take advantage of GPU-accelerated asset decompression over DirectStorage 1.1, it's just an added optimization for game developers working on new projects. Patching already-released games to have GDeflate would involve redistributing the entire game asset load (which is still fine if the developer chooses to).

Microsoft plans to release DirectStorage 1.1 to game developers toward the end of 2022. The first games released or patched with DirectStorage 1.1 support should start coming out in 2023.
Source: Microsoft DirectX Blog
Add your own comment

60 Comments on DirectStorage not used by any Games, Microsoft hopes DirectStorage 1.1 with GPU Asset Decompression can Fix This

#51
Trovaricon
I think the documentation resource you were looking for is this: D3DPOOL enumeration (D3D9Types.h) - Win32 apps | Microsoft Learn
I am a bit skeptical as I don't really understand the size-explosion of game assets. No innovation of a common asset "bundle" and creative way of skinning the objects with the same set. Instead we have not only assets but also shaders "optimized" for every scene or even object type in the scene - which frankly is quite absurd and I believe (I am not in the business) cause for ever raising expenses to develop a new product despite the fact, that computing power and tools at disposal are light years from '90 or even '00.
Posted on Reply
#52
TheoneandonlyMrK
80251Um, why would an ENTIRE game have to be cached in RAM? When have you tried using primocache to implement a 32 GiB to 48 GiB RAM cache?

If you actually used primocache you would understand it IS AUTOMATIC.

I'll bet you don't even have a copy of primocache and have never used it.
Oh right so it's primocache now.

That's just laughable, I have a primo license, it's not in use because I am all nvme now.

And primocache is not this by a longer yard stick.

You bet wrong.
Posted on Reply
#53
80251
TheoneandonlyMrKOh right so it's primocache now.

That's just laughable, I have a primo license, it's not in use because I am all nvme now.

And primocache is not this by a longer yard stick.

You bet wrong.
You're wrong. Dead wrong. I don't think you've ever used primocache as a RAM cache for SSD's or HDD's.
Posted on Reply
#54
Mussels
Freshwater Moderator
TheoneandonlyMrKOh right so it's primocache now.

That's just laughable, I have a primo license, it's not in use because I am all nvme now.

And primocache is not this by a longer yard stick.

You bet wrong.
I use primocache on my system, with NVME drives.
I don't understand what you're misunderstanding here.


80251 is odd with the concept of an entire game being cached as thats way off base too, this is just the GPU being able to read from the NVME drive directly with no CPU overhead or waiting on drivers, in a standard format it can directly read (again, to avoid CPU overhead decompressing files)
Posted on Reply
#55
TheoneandonlyMrK
MusselsI use primocache on my system, with NVME drives.
I don't understand what you're misunderstanding here.


80251 is odd with the concept of an entire game being cached as thats way off base too, this is just the GPU being able to read from the NVME drive directly with no CPU overhead or waiting on drivers, in a standard format it can directly read (again, to avoid CPU overhead decompressing files)
As I said I have a license unused, it's not the same as this!?.
Posted on Reply
#56
stimpy88
I've dreamed for 6 or 7 years now, that WinRAR and 7Zip will be updated to use the GPU. Sadly, I don't think the authors are capable of this complex task.
Posted on Reply
#57
Mussels
Freshwater Moderator
TheoneandonlyMrKAs I said I have a license unused, it's not the same as this!?.
I wasn't sure which of you got confused and went off into... whatever that was on about, but no it's somehow really similar and the exact opposite at the same time

Direcstorage wants to get game files out of RAM, and into VRAM.
However it kinda does resemble how a cache system works, trying to pre-cache the relevant files


A RAM cache could get you almost the same performance benefits but it doesnt remove the CPU overheads for transfer and decompression
Posted on Reply
Add your own comment
Dec 19th, 2024 20:33 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts