• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

DirectStorage API Now Available on PC

Lethal01

Member

"Starting today, Windows games can ship with DirectStorage. This public SDK release begins a new era of fast load times and detailed worlds in PC games by allowing developers to more fully utilize the speed of the latest storage devices. In September 2020, we announced DirectStorage would be coming to Windows, and after collecting feedback throughout our developer preview, we are making this API available to all of our partners to ship with their games."
 

ManaByte

Gold Member
I would never do that. Those charges have never been proven.
Don’t download it unless you want this to happen.
Shemar Moore Swat GIF by CBS
 

hlm666

Member
Here's an SFS demo with DirectStorage enabled if anyone wants to try it.

Don't download things from strangers on the Internet etc but I compiled this myself from Github so it should be safe.
Thanks for doing this. Had a quick play and hope it doesn't save any paths anywhere because i just copied the directory to my 2 ssd roots so I could compare (ones a samsung 980 pro 2tb (7000/5000), other is 4tb sabrent rocket (3200/3000). The faster one has a bandwidth reading in the benchmark mode of ~1600 with direct storage on and ~3000 with it off. The slower driver is get ~2200 on and ~3000 off.

I'm still using windows 10 but it's fully updated so I'm not sure what to make of those results. The 980 pro is in the pcie4 nvme socket below the cpu and the sabrent is in a pcie3 nvme socket down near the last pcie socket and takes over some of the sata ports lanes to function, they work as expected in other workloads and benchmarks.
 

DenchDeckard

Moderated wildly
This is why I dedided to drop my SSDs entirely from my new build and am going with three nvme instead.

looking forward to this!
 

reksveks

Member
Can you provide the github link, so I can build it myself?
Think it's this one but will let Hoddi Hoddi confirm

 

kraspkibble

Permabanned.
so is this only for new games or can developers add it in to existing games? i'm quit happy with loading times on my PC but it would be cool to see older games updated with it.
 
Last edited:

DenchDeckard

Moderated wildly
Tested it myself with Intel Github demo. It lowers CPU usage as it should be. And there is no GPU decompression support yet. Nice piece of tech.

Someone uploaded a video of the test:



just skimmed through but my not so clever mind cant see what im looking at lol. Is it an improvement, and how considerable?
 

DenchDeckard

Moderated wildly
building my 12th gen windows 11 build either today or tomorrow once my corsair 5000T arrives, just gonna drop my current RTX 3080 into it until 40 series launches! Hyped for new shiny PC baby!
 
Tested it myself with Intel Github demo. It lowers CPU usage as it should be. And there is no GPU decompression support yet. Nice piece of tech.

Someone uploaded a video of the test:


I mean, don't get me wrong, the premise behind DirectStorage is a really promising one but what I don't get is this.
It saves the cpu resources that would've otherwise being thrown at decompression and frees the thing up to use those resources elsewhere, but ends up sending that workload to the gpu for decompression and ends up wasting more of its resources instead. So again, this seems like a "you win some, but you still lose some " sort of scenario, where you save resources on one place, but end up taking up the resources of another.

It's promising storage architecture technology that I'm pretty sure will help pcs more given how Microsoft neglected to fix or replace their archaic storage architecture in the past and how consoles already had very low level storage access to begin with, so that's a good first step as any. But like I've stressed enough above, one way or another, you still free resources from one spot only to end up wasting the resources of another's. At least that's how it seems to me.
 

reksveks

Member
so is this only for new games or can developers add it in to existing games? i'm quit happy with loading times on my PC but it would be cool to see older games updated with it.
As all things in software, it's a matter of ROI even if it was the 'simplest' thing to integrate into old games don't think the ROI would mean that devs go back to do it.

just skimmed through but my not so clever mind cant see what im looking at lol. Is it an improvement, and how considerable?

Suspect its a video that doesn't show the key metrics that you want to know aka how quickly the gpu can do the stuff that the cpu used to do.

It saves the cpu resources that would've otherwise being thrown at decompression and frees the thing up to use those resources elsewhere, but ends up sending that workload to the gpu for decompression and ends up wasting more of its resources instead. So again, this seems like a "you win some, but you still lose some " sort of scenario, where you save resources on one place, but end up taking up the resources of another.
Think it's about the speed that the component can do the tasks, if the gpu can do what the cpu used to do in 1/2 the time then either you can speed up the task by 100% or you can push 2x the data.
 

DenchDeckard

Moderated wildly
I mean, don't get me wrong, the premise behind DirectStorage is a really promising one but what I don't get is this.
It saves the cpu resources that would've otherwise being thrown at decompression and frees the thing up to use those resources elsewhere, but ends up sending that workload to the gpu for decompression and ends up wasting more of its resources instead. So again, this seems like a "you win some, but you still lose some " sort of scenario, where you save resources on one place, but end up taking up the resources of another.

It's promising storage architecture technology that I'm pretty sure will help pcs more given how Microsoft neglected to fix or replace their archaic storage architecture in the past and how consoles already had very low level storage access to begin with, so that's a good first step as any. But like I've stressed enough above, one way or another, you still free resources from one spot only to end up wasting the resources of another's. At least that's how it seems to me.

In some respects then you are correct but the main draw from watching the video that was shared in a previous thread is say for example you had a compressed 1MB file, you would move that from the storage and the CPU would then need to decompress it to say 2MB then it would need to be sent to the GPU moving 2MB of date to the GPU to be moved into video memory.

Now you can just move that 1MB of data that is GPU specific (textures etc) and reduce the IO by half as the gpu just decompresses it (which is is massively better at than a CPU) and puts the 2MB decompressed straight into video memory. This allows the CPU to allocate things like audio into the PCs main DDR memory pool. Just like how the series X would split it to the slower ram if the system is being developed for correctly.

Its a huge win in theory and should help considerably until motherboards ship with hardware decompressors like the Series consoles and PS5.

That's if my lame brain is understanding it correctly.

Mister Wolf Mister Wolf nails it with his examples and slides.
 
Last edited:

Utherellus

Member
I mean, don't get me wrong, the premise behind DirectStorage is a really promising one but what I don't get is this.
It saves the cpu resources that would've otherwise being thrown at decompression and frees the thing up to use those resources elsewhere, but ends up sending that workload to the gpu for decompression and ends up wasting more of its resources instead. So again, this seems like a "you win some, but you still lose some " sort of scenario, where you save resources on one place, but end up taking up the resources of another.

It's promising storage architecture technology that I'm pretty sure will help pcs more given how Microsoft neglected to fix or replace their archaic storage architecture in the past and how consoles already had very low level storage access to begin with, so that's a good first step as any. But like I've stressed enough above, one way or another, you still free resources from one spot only to end up wasting the resources of another's. At least that's how it seems to me.

As I understand decompressing is more taxing on CPU.

GPU's are generally well known for their ability to do complex stuff CPU struggles with, and do it in unmatched parallel form, quickly.

Nvidia demonstrated this when they showed RTX IO.
It's shown how GPU decompressing power is equal to 24 CPU cores.

geforce-rtx-30-series-rtx-io-announcing-rtx-io-scaled-e1599045046160.jpg
 

nemiroff

Gold Member
I mean, don't get me wrong, the premise behind DirectStorage is a really promising one but what I don't get is this.
It saves the cpu resources that would've otherwise being thrown at decompression and frees the thing up to use those resources elsewhere, but ends up sending that workload to the gpu for decompression and ends up wasting more of its resources instead. So again, this seems like a "you win some, but you still lose some " sort of scenario, where you save resources on one place, but end up taking up the resources of another.

It's promising storage architecture technology that I'm pretty sure will help pcs more given how Microsoft neglected to fix or replace their archaic storage architecture in the past and how consoles already had very low level storage access to begin with, so that's a good first step as any. But like I've stressed enough above, one way or another, you still free resources from one spot only to end up wasting the resources of another's. At least that's how it seems to me.
It's not the same resource.. Not having to transport uncompressed data between RAM and VRAM makes a difference. Not to mention the GPU is sitting at the end sort-of being more specialized for this.
 
Last edited:

Mister Wolf

Member
Direct storage is being used on Xbox series consoles currently right? Or is this not being used because all games are developed for PC as well?

No it isn't. The video I posted with Microsoft employee explaining Direct Storage explains what the Xbox is currently doing. CPU decompression with assistance from hardware accelerators. There is no game currently on an Xbox or PC that has the GPU assigned to do decompression.
 
Last edited:
No it isn't. The video I posted with Microsoft employee explaining Direct Storage explains what the Xbox is currently doing. CPU decompression with assistance from hardware accelerators. There is no game currently on an Xbox or PC that has the GPU assigned to do decompression.
Really? So that means improvements going forward?
 

ToTTenTranz

Banned
As I understand decompressing is more taxing on CPU.

GPU's are generally well known for their ability to do complex stuff CPU struggles with, and do it in unmatched parallel form, quickly.

Decompression/decryption are inherently few-threaded tasks. There aren't many ways one can multi-thread file decompression, because a compressed file can't be partitioned for decompression.

Decompressing a file is more of a single/dual-threaded job (look at how much of a deal RAD makes of Kraken being dual-threaded), and GPUs aren't great at single-threading. The only way I'd see a GPU being good for file decompression is if there are tens of files being decompressed at any one time.
For 8th-gen consoles, GPU decompression was slower than CPU decompression, and they used the slow GPU decompression to free CPU resources (also because the I/O was dirt slow at SATA2 speeds on a HDD anyways).


I'm not saying GPUs can't be used for file decompression, but I'm wary of the notion that allocating precious GPU resources for data decompression is such a great idea. Perhaps it is on PC systems with a low core-count like sub-8 cores on future games, but the trend on PC gaming is to have >=8 cores because of the current consoles.

Really? So that means improvements going forward?
You probably won't see GPU decompression on 9th-gen games because all 9th-gen consoles have dedicated hardware for decompression whose performance matches each console's I/O throughput. There's no need to use GPU decompression on 9th-gen consoles AFAICT.
 
Last edited:
Top Bottom