Monday, March 14th 2022

Microsoft DirectStorage API Available, but Without GPU-accelerated Decompression

Microsoft officially launched the DirectStorage API on the Windows PC platform, on Monday. The API enables direct data interactions between the GPU, graphics memory, and a storage device, so games have a more direct path to stream game assets to the graphics hardware. The API is compatible both with Windows 10 and Windows 11, although Microsoft is recommending the latter, for "in-built storage optimizations." Also, unlike previously reported, you don't necessarily need an NVMe-based storage device, such as an M.2 SSD with PCIe/NVMe interface. Even a SATA SSD with AHCI protocol will do. Microsoft is, however, recommending the use of an NVMe SSD for the best performance.

There is, however, a wrinkle. Microsoft isn't launching a killer feature of the DirectStorage API yet, which is GPU-accelerated asset decompression. This feature allowed GPUs to use compute shaders to decompress game assets that are stored in compressed asset libraries on the disk. Most games store their local assets this way, to conserve their disk footprint. Without this feature, unless there's special game code from the developer's end to utilize GPGPU for asset decompression; compressed game assets still have to rope in the CPU, and lengthen the pipeline. Microsoft stated that enabling GPU-accelerated decompression is "next on their roadmap."
Add your own comment

78 Comments on Microsoft DirectStorage API Available, but Without GPU-accelerated Decompression

#76
Mussels
Freshwater Moderator
venturiI'm confused. The end game of this direct storage is to let the video card do the decompression. However, if the video card is already struggling to keep FPS, rtx, etc, wouldn't adding decompression roles such as this Actually ADD to the video card burden, in turn reducing performance even further? I guess I'm asking in relation that most of the bottle necks seem video card related, how would this solve the bottleneck? Wouldn't we want to offload burdens on the video card? Or is this making use of some idle section of the card that is doing nothing while the rest is saturated? I would think having the cpu do more more would free up the card to do more. Couldn't apps/games just have more threading for the CPUs do that function?
No, because it's doing this during loading screens - the total goal is to streamline the textures going from storage to GPU, without needing the CPU and system ram in the way
(Look at how bad windows is at moving small files, you'll see the appeal)

Do that, and even with no fancy alternate tech you get rid of a LOT of microstutter and hitching on lower VRAM cards. On higher end cards, they can use the spare VRAM and preload more.

When the compression/decompression tech gets sorted out, we save on disk space as well as VRAM needs. (which i think is rather crtitical, tbh)
Posted on Reply
#77
bug
@Mussels Wrong as usual. This is not about load screens, it's about streaming textures during gameplay. Rage, anyone?
Posted on Reply
#78
Mussels
Freshwater Moderator
bug@Mussels Wrong as usual. This is not about load screens, it's about streaming textures during gameplay. Rage, anyone?
We already stream textures, that's part of the rest of what i wrote - removing the CPU overhead
Posted on Reply
Add your own comment
Jun 16th, 2024 14:22 EDT change timezone

New Forum Posts

Popular Reviews

Controversial News Posts