Question How will DirectStorage eliminate level loading in games?

wr3zzz

Junior Member
Oct 25, 2020
8
0
6
I've been reading up about DirectStorage but still not sure how level loading can be eliminated. My understanding is that DirectStorage just bypass the CPU and allows the game assets to be decompressed in GPU. However, most of the level loading wait time is waiting for SSD/HDD. So unless we all start buying 48GB graphic cards to have enough VRAM to store the gaming assets, how is DirectStorage going to eliminate level loading wait time?
 

damian101

Senior member
Aug 11, 2020
291
107
86
However, most of the level loading wait time is waiting for SSD/HDD.
That's not true at all in my experience. I remember upgrading from the slow HDD in my laptop to a fast SSD and expecting less than half of the load time, as that SSD was multiple times faster than my HDD in any metric. But that wasn't the case. Load times were only reduced by 20%-50% in most games. Looking at the drive activity LED there were normally only a few seconds of heavy activity and then a lot of nothing.
 

wr3zzz

Junior Member
Oct 25, 2020
8
0
6
That's not true at all in my experience. I remember upgrading from the slow HDD in my laptop to a fast SSD and expecting less than half of the load time, as that SSD was multiple times faster than my HDD in any metric. But that wasn't the case. Load times were only reduced by 20%-50% in most games. Looking at the drive activity LED there were normally only a few seconds of heavy activity and then a lot of nothing.

That's because game assets are in small files and the IO overhead in retrieving those small files are the bottleneck. DirectStorage and consoles will require games to package their assets in bigger blocks to reduce this vast overhead. However, that still doesn't explain why we need PCIe4 and NVMe to accomplish this. It seems, to me without any technical qualification, that we could have much if not most of the benefit if the same optimization on games are read into the DRAM as well. It's true that consoles always have more memory reserved for GPU than CPU but for PC it has always been the opposite. Windows already cache storage assets into DRAM so why can't we PC users see loading time eliminated, or at least vastly improved without DirectStorage hardware?
 

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,691
136
Windows already cache storage assets into DRAM so why can't we PC users see loading time eliminated, or at least vastly improved without DirectStorage hardware?

Things load pretty fast with 32GB RAM already. I wouldn't consider less then 16GB today, and I'm seriously contemplating moving to 64GB with how local prices are here.

Somewhat related, why hasn't anyone thought of caching media files directly to RAM? When you have 32 or 64GB available, even caching an entire movie to RAM isn't an issue...
 

damian101

Senior member
Aug 11, 2020
291
107
86
That's because game assets are in small files and the IO overhead in retrieving those small files are the bottleneck. DirectStorage and consoles will require games to package their assets in bigger blocks to reduce this vast overhead.
That certainly wasn't the issue with the games where I observed the relatively small decrease in load times on my laptops some years ago. HDDs have extremely long access times compared to modern SSDs, way too long for any I/O overhead to be relevant. As I said, from looking at the drive activity LED back, I remember only a short amount of heavy drive activity, and then a lot of waiting, on HDD that heavy drive activity period was multiple times longer but still only a small portion of the entire loading time. The game I mostly made those observations with was GTA V.
 

damian101

Senior member
Aug 11, 2020
291
107
86
Somewhat related, why hasn't anyone thought of caching media files directly to RAM? When you have 32 or 64GB available, even caching an entire movie to RAM isn't an issue...
All media players have a buffer for both audio and video streams. That buffer contains decoded, uncompressed video and audio. VLC Media Player by default buffers 300ms of video and audio streams when played from a local drive.
But what would be the point of loading an entire movie into RAM before decoding it? An application that would do that would be seen as a memory hog.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,327
10,035
126
That's because game assets are in small files and the IO overhead in retrieving those small files are the bottleneck.
That hasn't largely been true since the original DOOM (for DOS!) .WAD files. Nearly every game "packs" their assets. At least, I think so. I haven't been involved in PC game dev for 25 years.
 
  • Like
Reactions: damian101

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,691
136
But what would be the point of loading an entire movie into RAM before decoding it? An application that would do that would be seen as a memory hog.

Saving memory is a paradigm that made sense 20 years ago when PC had 32MB worth of memory. You're not paying to use memory, why not use it to full capacity?

You could then power down the drive or network adaptor, and save power. Enabling longer playback time.
 

damian101

Senior member
Aug 11, 2020
291
107
86
Saving memory is a paradigm that made sense 20 years ago when PC had 32MB worth of memory. You're not paying to use memory, why not use it to full capacity?

You could then power down the drive or network adaptor, and save power. Enabling longer playback time.
You forget that preloading as much as possible into RAM is only beneficial if you actually use whatever has been preloaded. Opening a movie doesn't mean you'll watch it to the end. The additional load caused by all the preloading could also slow down other tasks using the same drive, and RAM bandwidth is also not limitless, and all that extra load on the drive increases power consumption.
 

wr3zzz

Junior Member
Oct 25, 2020
8
0
6
That hasn't largely been true since the original DOOM (for DOS!) .WAD files. Nearly every game "packs" their assets. At least, I think so. I haven't been involved in PC game dev for 25 years.

Reducing I/O overhead is what I read based on the first batch of articles about consoles and DirectStorage. It makes sense to me. I modded Skyrim a lot and also needs to do a lot of file-to-file backup of small files. My SSD/HDD throughput slows down to a crawl when Windows need to access a ton of small files.

But with game level loading I would think that shouldn't happen if the assets are already residing in DRAM.
 

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,691
136
Opening a movie doesn't mean you'll watch it to the end.

I can only speak for myself, but when I open a movie, it usually means I'll watch it to the end.

For editing, keeping stuff in memory should have obvious benefits.

The additional load caused by all the preloading could also slow down other tasks using the same drive, and RAM bandwidth is also not limitless, and all that extra load on the drive increases power consumption.

Come on. The system I'm writing on can do upwards of 46GB/s in memory bandwidth. That's equivalent to reading or writing an entire dual layer bluray every second. The NVMe SSD can read at 3500MB/s, that is an entire DVD every 2 seconds. My internet connection can do 41MB/s, and that's only because I'm too cheap to pay for gigabit...

With 32GB of memory I can pre-load an entire movie even in inefficient DVD quality MPEG2 (file size for a couple of hours is 5-6GB), watch it, run a couple of VMs and play a game at the same time if I had that inclination.

Even common desktop systems today are very, very powerful.
 

damian101

Senior member
Aug 11, 2020
291
107
86
I can only speak for myself, but when I open a movie, it usually means I'll watch it to the end.

For editing, keeping stuff in memory should have obvious benefits.



Come on. The system I'm writing on can do upwards of 46GB/s in memory bandwidth. That's equivalent to reading or writing an entire dual layer bluray every second. The NVMe SSD can read at 3500MB/s, that is an entire DVD every 2 seconds. My internet connection can do 41MB/s, and that's only because I'm too cheap to pay for gigabit...

With 32GB of memory I can pre-load an entire movie even in inefficient DVD quality MPEG2 (file size for a couple of hours is 5-6GB), watch it, run a couple of VMs and play a game at the same time if I had that inclination.

Even common desktop systems today are very, very powerful.
I still don't see any meaningful benefits for preloading audio and video files, unless you frequently jump around the timeline, for which SSDs are already fast enough to make that feel instantaneous. For internet content it makes the least sense, bandwidth for many people and especially the datacenters bandwidth is limited and expensive.
I got a lot of lossless Blu-ray rips on my HDDs, and I don't want them to be under full load for multiple minutes just because I opened it, and I don't want them to spin down during inactivity anyway, and with an SSD I don't see the benefit of preloading a movie at all.