News Microsoft to Bring DirectStorage API to Windows in 2021: Speeding Up Gaming With NVMe SSDs

"Existing storage APIs require the application to manage its I/O requests sequentially"

Windows has had an async IO API for a long time, just too clunky to bother with unless you absolutely need to. I'm guessing most of what DirectStorage does is wrap it in a more convenient package, perhaps with added zero-copy capabilities.
 
"Existing storage APIs require the application to manage its I/O requests sequentially"

Windows has had an async IO API for a long time, just too clunky to bother with unless you absolutely need to. I'm guessing most of what DirectStorage does is wrap it in a more convenient package, perhaps with added zero-copy capabilities.
That's still sequential it's just on a second thread and doesn't have to wait to be called by the main thread.
It still has to do all this :" submit the request, wait for it to complete, handle its completion, move on to another request. "
The new API will probably just dump a whole bunch of memory addresses to the nvme controller and that will just copy them there with the firmware.
 
I think that developers will take advantage of this API, since it's nearly the same or could be the same as what will be used on the Xbox Series X.

We'll see larger open worlds and levels with more objects and detail. Textures and Objects can load in as you explore the level from room to room. Some games will take advantage of it, but not all. So for me, it's a must have, which I do have because I have an X570 and Ryzen 3900x. I just need to upgrade my NVMe drive from 3.0 to 4.0.
 
It's about time. The next generation of consoles finally moving to SSD's is finally going to do something to help PC gamers. We have had fast SSD's in PC's for a long time but we were still stuck with crappy load times because most games are ports from consoles targeting poor spindle drives. Glad to see the change happening.
 
  • Like
Reactions: Bamda
I dont get it ... I understand that such way of storing and retrieving data was being used internally by the software devs themselves to lower load times . that is using blocks that contain many smaller sized files and load them to memory then inside the memory unpack them instead of getting the small files directly from SSD or even HDD ...

This is old programming method ... well known already. how is MS making anything different here ?
 
Last edited:
Never use version 1.0 of anything from Microsoft. We're a few years away from this being a have to have feature.

Normally I would agree with you but they are infact doing this on the console version first. So its not like they are starting from scratch on PC, so I don't consider it the same to fit your example.

I'm really hoping to see a 3 way comparison with a cross platform game on both consoles and the pc.
 
Last edited:
  • Like
Reactions: Bamda
That's still sequential it's just on a second thread and doesn't have to wait to be called by the main thread.
It still has to do all this :" submit the request, wait for it to complete, handle its completion, move on to another request. "
Read/WriteFileEx with callback does not make you wait for completion before queuing more, you can queue as many IO operations as you have spare memory or until you hit some other limit in the driver stack.
 
Can this be used to boost backup speed of drives containing thousands of small files?

Backup is the same concept , it already reads the files and put them in one large file. It wont boost backup speed . unless they whole file system changes into large blocks that loads into memory when needed , that is small files disappear altogether and exists only inside blocks which is hard to do...
 
Read/WriteFileEx with callback does not make you wait for completion before queuing more, you can queue as many IO operations as you have spare memory or until you hit some other limit in the driver stack.

This works fine for a small number of requests, but because the pool of worker threads is limited (currently three on a 16-MB system), there will still be only a few requests queued to the disk driver at a particular time. If you issue numerous I/O operations for data that is not in the cache, the cache manager and memory manager become saturated and your requests are made synchronous.

https://docs.microsoft.com/en-us/tr...ynchronous-io-still-appears-to-be-synchronous
 
"Existing storage APIs require the application to manage its I/O requests sequentially"

Windows has had an async IO API for a long time, just too clunky to bother with unless you absolutely need to. I'm guessing most of what DirectStorage does is wrap it in a more convenient package, perhaps with added zero-copy capabilities.

And... this is bad somehow to you?
I don't get it.

It is an evolution of a tech, which came to fruition.

M$ deserves praise this time around.
 
  • Like
Reactions: Bamda
Can this be used to boost backup speed of drives containing thousands of small files?
Sadly Optane is still the only viable option for that.
And it will continue to be, just because how SSD memory works.
Some are made for sequential reads,.. some are meant for something grater. At a premium of course.
 
It is an evolution of a tech, which came to fruition.

M$ deserves praise this time around.
I don't see what is so praiseworthy about taking something that was already there and putting yet another layer of wrappers on top. There is no fundamental new tech there, just a more convenient way of using something that was already there and that programmers could have started using back when NCQ became a thing in the consumer space if they could be bothered with the extra effort.
 
So yeah, you need to pimp up your PC rig. We all do.
I doubt that it's going to be a requirement for PC, no dev is going to bring out a game that will run like crap on the PC, just look at what happened to arkham knight.
They are going to use this on exclusives only,on the rest of the games it might be used to improve performance but it will not kill performance if it's not there.

Just like dx12 this is to help the low end components of the consoles and won't make much of a difference on high end PCs.