My PC supports DirectStorage! That’s great, right? Well, it turned out that Xbox Game Bar was showing me that BypassIO, an essential component of DirectStorage, wasn’t supported on my DirectStorage-capable NVMe drives due to an installed driver. I uninstalled EaseUS Partition Master, which I have a license for, and Xbox Game Bar then showed that those NVMe drives fully supported DirectStorage!
I then installed PrimoCache, which I have a license for, because I wanted to create a cache out of my extra RAM and a cache out of an extra NVMe storage drive. Xbox Game Bar then said that BypassIO wasn’t supported on my DirectStorage-capable NVMe drives because of a different installed driver.
I hope that this can be resolved in some way. I don’t want to uninstall software that is useful for me so that DirectStorage will be able to function properly.
Why is there no mention of MSFS supporting Direct Storage, which is a MS addition. The reported tests of speed increases is amazing. There must be many, like me, who have updated or built new PC’s that are W11 with Nvme PCI4 drives. As Microsoft keeps pushing Windows 11 the numbers will keep increasing.
Honestly, moving from SATA to NVMe makes little enough difference to MSFS performance already that I would be shocked if DirectStorage did anything significant.
Might make a few microseconds difference to load times here and there; I’d expect interactive rendering performance to be identical.
(If I understand correctly, what DirectStorage does is to optimize the data path from loading textures and other data straight off a disk into video RAM, without having to route all bytes through the CPU first.)
The potential for improvements to stutter reduction in flight from direct storage could be very significant. FS is constantly loading new textures as we fly along. Some are small enough to pass through the pipeline unnoticed in a single frame, but others can be a real problem.
Take the Milford Sound airport in the recent NZ world update as an example. It’s a beautiful airport, but it has over 1 GB of textures packed into a very small area. Even on a 7950x3d, with one of the fastest nvme4 drives available, I notice a very severe set of stutters and main thread spikes during every approach to it, even in very simple aircraft. That’s not geometry loading causing that, the geo is tiny… it’s the massive textures.
Taking that entire texture loading/decompressing function out of the main thread could be of enormous benefit, especially for those who like to fly around high detail airports.
I really really hope Asobo will look into implementing this on PC. It’s already available to use on Xbox, though I’m not sure if they’re using it yet.
If it’s indeed performing decompression of textures in a blocking way on the main thread, then I can definitely see that being a problem and a cause of stutters – but simply running on a background thread would resolve that, on any system, without special hardware, so I hope that’s not an accurate description of how the code works now.
The sim currently spawns a lot of worker threads on other cores for loading the streamed terrain mesh and streamed textures as you fly along. You can see and influence the priority of those directly with a directx injector like Special-K. They’re part of the main process, so they don’t show in task manager.
Those threads spool up and down in a kind of sine wave pattern of use on a roughly 10-30 second cycle depending on speed of flight, and with amplitude/severity based on altitude and LOD setting, but those threads also interact significantly with the main thread, slowing it down. They impact the power draw of the videocard as well as they are moved into VRAM, which can be seen on monitoring software like Afterburner.
In 2D flight this isn’t really that noticeable if you’re GPU limited or running with an FPS lock, but if you’re main thread limited it has a significant impact.
Loading bespoke locally stored scenery elements though, like POIs and airport textures, seems to interrupt the main thread directly currently, and hard, regardless of which core was tasked with loading them. This is where Direct Storage could be a massive win I think, and the heavier the airport possibly the bigger the win.
This seems to be the key part – they’ve done something wrong in their code where the main thread is impacted by background loading. That won’t necessarily just go away if they turn on DirectStorage, depending on what the actual problem is, but we’ll just have to wait and see.
Since the code isn’t open source, there’s no way for us to just go and check or fix it for them.
It seems the only PC game to use this is Forespoken. Apparently they did not give copies to the usual reviewers so most of the information is from ordinary users. Apparently one user reports loading every scene in under 2 seconds and said it is “blisteringly fast”. One report says DS 1.1 has GPU decompression but as yet it is not working yet but Nvidia and AMD are set up to use it when it appears.
My setup says it is running when I checked as it is on by default in Widows 11 if you have the Nvme disc.
Although we don’t have it yet I have long believed MSFS is using or trying to use elements of Direct Storage such as it’s garbage collection and memory management, maybe even experimenting with decompression. IMO it is the whole experimental aspect that is causing problems for many without the right setup to use it.
Not directly related to msfs but could affect other MS items.
At this time Malwarebytes will block DirectStorage. You can confirm it’s disabled in the xbox app. However, Malwarebytes just released a beta that fixes this issue.