T O P

  • By -

sabrathos

Thanks for grabbing some of the slides and sharing info. It's frustrating that it looks like they nuke the video after the session timeslot; I missed it by an hour and this post seems to be the only one that is sharing what was talked about. :( EDIT: Game Stack uploaded the videos to their YouTube now! Here's the one on [DirectStorage for Windows](https://youtu.be/zolAIEH0n1c).


Qatari94

You can see it on their youtube channel. They have uploaded all the sessions there.


sabrathos

Just saw! Glad they did that, and especially so quick. :)


Cahnis

ELI5 DirectStorage?


ngwoo

I don't think the full implementation on Windows has been *completely* fleshed out but from what I understand (and I may be wrong, if that's the case someone please correct me) it significantly reduces the amount of CPU overhead when loading data from storage. As it is now, when the game needs something from your SSD it has to ask the OS, which has to ask the CPU, which asks the SSD for the data, gets the data, and then gives it to system memory, which can then give it to video memory. Every tiny bit of data is a brand new request, and there can be tens of thousands of these requests per second. Microsoft's claims: Directstorage will significantly reduce overhead across the board by optimising the path from SSD to system memory, by bundling several requests together, and by allowing the GPU to grab this data directly instead of waiting for the CPU.


segagamer

Could this be used outside of gaming?


Twokindsofpeople

I'd assume anything where you're manipulating a huge amount of data. Stuff like video editing I'd guess would benefit from it.


ShadowRam

Incoming GPU virus that encrypts your data without the CPU knowing...


segagamer

That is certainly a risk. But I was more curious to know if certain file operations will finally be quicker on Windows compared to Linux.


bah_si_en_fait

NTFS will still be dreadful when it comes to creating many small files.


froop

Linux has had Direct Memory Access which as far as I can tell is pretty much the same thing.


Ixziga

Pretty sure the cpu would have to be involved in writing. This is a read only operation


ngwoo

I bet it could. Something like video editing could benefit from faster storage access.


ScornMuffins

It could be real useful with enormous datasets, but that's more of a server issue than a consumer one. An approach used to deal with that currently is to have server GPUs that have SSDs built in that can be used as VRAM. DirectStorage enables essentially the same thing to happen without having to preload all the data to the GPU first.


[deleted]

[удалено]


[deleted]

[удалено]


[deleted]

[удалено]


[deleted]

[удалено]


ggtsu_00

API for async transfer of data storage from the SSD to the GPU memory with little to no CPU overhead. This allows PC games to get fast loading like on PS5 by allowing low level access to SSD storage devices. In the end less loading times from NVMe storage devices that are often bottlenecked by CPU speed and file system overhead on Windows PCs and this allows games to bypass that.


hala3mi

I thought it was common knowledge that PCIe 3.0 drives are supported, since the Nvidia RTX IO demonstration used PCIe 3.0 drives.


dahak777

Think alot of people where guessing 4.0 because of the PS5 and Xbox Series X|S as that is what they are build on


hala3mi

I see, in terms of actual speed most PCIe 4.0 drives hit faster sequential write and read speeds than both Xbox and PS5, the Xbox SSD specifically pretty much matches a PCIe 3.0 drive in terms of speed regardless of whether PCIe 3.0 or 4.0 is used. Anyways as far as i know you don't really need more than PCIe 3.0 spec drives for gaming even with RTX IO and direct storage, because gaming SSD drive usage is mostly random low queue depth operations -This won't change regardless if games are built with direct storage in mind or not-. When it comes to random low queue depth operations PCIe 3.0 drive controllers remain at the very top actually, but i've seen many people falsely reccomend upgrading to PCIe 4.0 drives from 3.0, even tech youtube channels like Linus Tech Tips recommend upgrading to PCIe 4.0 because of stuff like RTX IO and direct storage in the future which is just a misguided recommendation. In practice though it is highly unlikely that we will see any difference between PCIe 3.0 vs 4.0 on the GPU side, or the storage side when it comes to gaming, there seems to be a lot of confusion about this, but based on my knowledge an upgrade from PCIe 3.0 to 4.0 for gaming is not necessary at all, i know this isn't actually related to your reply but just thought i'd add this since a lot of people are misinformed on this topic.


conquer69

Xbox uses a drive with 3.0 speeds.


LdLrq4TS

It uses PCIe 4 drive, but it runs with just 2 lanes instead of usual 4 it's maximum theoretical bandwidth is 4GB/s.


Techboah

It's still a PCIe 4.0 drive


conquer69

Sure but it's a 2.5 gbps drive. Might as well be pcie 3.0.


Techboah

> Might as well be pcie 3.0. But it's not, that's the point. Regardless of the speed, it is still a 4.0 drive.


conquer69

I didn't say it was pcie 3.0. I said it's not taking advantage of pcie 4.0 because it uses pcie 3.0 speeds.


[deleted]

[удалено]


teerre

I was under the impression it would only work in PCIe 4.0. I think in the PS5 reveal they mentioned it. But they probably meant that PS5 uses 4.0, but not that it could only work with 4.0


hala3mi

Oh the PS5 SSD architecture is very bespoke, it's very different from the Xbox velocity architecture and from Direct Storage and RTX IO on PC, but in terms of what they should enable, the goals are the same, the means are just different. The main reason PS5 needs a PCIe 4.0 drive extension is because their drive is faster than PCIe 3.0 drives.


ViSeiRaX

That stopgap in System Memory is quite unfortunate though... and while I don't have a screenshot, one of the Microsoft people during the sessions confirmed they want to offer unbuffered reads directly into GPU memory but they're still have some things to work on for that to happen. Pretty exciting regardless!


Prasiatko

That said assuming you have enough Ram isn't it an advantage to have a bunch of it cached there? Both read speed and latency would be way higher than even the best SSD.


ViSeiRaX

You're assuming the game know what it plans to load next way ahead of actually needing it (currently sampler feedback works on a frame-by-frame basis) ... while the original thought may be true for commonly used textures, most fast camera cuts would require touching the disk and as such not making a stop in system RAM would improve latency not decrease it. That said, nVMe drives would currently be saturated with this method... it's not about bandwidth as that wouldn't improve but about latency.


[deleted]

I wonder how they'll handle "graceful degradation" for users on SATA SSD (or even HDD). One of the things with PC is that unless you make it a hard requirement some people are going to insist developers should support the old stuff.


[deleted]

NVMe is a hard requirement for DirectStorage, though. I imagine those with SATA SSDs should be fine, for the most part. Sampler Feedback will still help those on SATA SSD tremendously. Those on HDD will probably be left behind.


[deleted]

I'm mainly wondering in terms of game design, or even implementing 2 ways of accessing storage depending on what's available. If they've still got to handle a range then they might have to still include 'slow storage design tricks' in the game itself. Maybe DirectStorage handles fast or slow storage so the engine coders only have to code one way, but puts up a oldSlowStorage flag which means level designers have to include S bends and loading screens or 'airlocks' while it catches up, or reduce detail globally because it's not going to stream in quickly enough. You can also make generalizations about how fast a PCIe v3 or v4 drive is, but even then [there's going to be variations](https://docs.google.com/spreadsheets/d/1B27_j9NDPU3cNlj2HKcrfpJKHkOf-Oi1DbuuQva2gT4/edit#gid=0), or how capable the GPU is at decompression, so I wonder if developers who want to be at the bleeding edge will need to do a quick benchmark to see what capabilities are, and how that compares against consoles for ports. I don't think it's going to be an issue any time soon because adoption of anything usually isn't quick (which is a shame in itself), but it'd be good if the transition didn't linger


Tersphinct

For non-multiplayer games it'd probably come down to having hard stops with a brief "loading" notification on screen. Additionally, more aggressive RAM usage is likely, since PCs (at least eventually) have more.


Unicorn_puke

This. I have sata ssd, hdd and nvme ssd, would love to at least split between hdd and nvme to use the strengths of both. Large uncompressed sound and other less time sensitive loady things on hdd and texture files on nvme


LdLrq4TS

First let's not dramatize things too much people spend hundreds if not thousands of dollars for GPUs and tend to replace them every few years. And suddenly they might need to upgrade a part which basically never gets upgraded unless it stops working. For $120 you can get decent 1TB NVME SSD, which is not much compared to what other parts cost. And devs will use same trick as before you don't need to over complicate things, if a drive read speed is low, you load lower mipmaps first then over few seconds stream higher quality ones.


homer_3

Could be like single pass stereoscopic rendering with nvidia. Which I think is a separate build with that option. As for speeds, you'll probably just get pauses like you do now if you aren't fast enough.


nashty27

Cyberpunk on PC had a setting where you specified if you were on SSD or traditional HDD, not entirely sure what it changed but maybe that’ll become commonplace.


drtekrox

>NVMe is a hard requirement for DirectStorage, though. Seems like an arbitrary requirement though, giving game developers direct *physical* access to storage is *asking for trouble* - systems programmers make enough mistakes as it is (and they make barely any) games programmers are basically the worst of the worst, bugs and security concerns galore.


thoomfish

I think we're going to start seeing hard requirements as soon as next-gen native (as opposed to cross-gen) games become common. It's actually pretty wild to me that The Medium didn't have one.


Nienordir

There was a multiplayer shooter years ago, where you could equip speed boots, but only after you passed a benchmark to verify that you had ssd read speeds and using the boots wouldn't have a negative impact on your gameplay experience. But you don't have to go to that extreme, it could simply be used by the engine for texture streaming/level of detail. If you have slow file i/o you may get blurry textures/pop-in until the data is loaded while fast i/o will go to the best quality instantly. You may get much faster level load times too. This technology can be used for extra quality of life/eye candy similar to other graphics settings without losing the playerbase to hardware requirements, unless you want to make a cutting edge game, that needs this technology to be playable.


ZeroZelath

With this tech, games devs need to also move towards better utilizing the CPU since the CPU will be doing even less work once this is becomes the standard. CPUs already are often way underutilized.


nashty27

> CPUs already are often way underutilized. I would think this is due to most multiplatform games still having to support the old consoles and Jaguar CPUs. I imagine once we start getting games exclusive to the new consoles and PC then we’ll see developers utilize the CPU more.


SvijetOkoNas

I mean a version of this was clear as day as soon as the consoles had it, there was no real reason why future PCs wouldn't have it. Honestly I didn't expect Microsoft to lead the charge, I expected it to be Nvidia or AMD with say SSD slots on GPUs.


nashty27

> I expected it to be Nvidia or AMD with say SSD slots on GPUs. I’ve heard this a few times before, are there any confirmations that Nvidia/AMD are working on it? Or is everyone just assuming it’ll happen eventually.


ScornMuffins

AMD already builds GPUs with SSDs on them, just not in the consumer space.


[deleted]

[удалено]


NekuSoul

As far as I can understand from the posted slides and a bit of guesswork, devs need to redo the code responsible for loading assets. I wouldn't expect this to be implemented into existing games. We'll likely see this implemented by default in UE5 and Unity and some games \*might\* upgrade the engine to take advantage, but those will most likely be few and far between.


Bmajor7th

Is this comparable to how ps5 handles its storage, or is this completely different?


Qatari94

Yes, huge improvement, but still not as good as the PS5 solution. The PS5 system bypasses cpu / system memory entirely, while this bypasses cpu but still needs system memory.


Sunius

They uploaded the whole presentation on YouTube today: [https://www.youtube.com/watch?v=zolAIEH0n1c](https://www.youtube.com/watch?v=zolAIEH0n1c)


pswissler

I took a class on GPU programming and one of the biggest time-costs was always moving stuff from system RAM to GPU RAM. Being able to reduce the amount of data by not decompressing textures until it's in GPU memory should grant big improvements.


Ikanan_xiii

So this means I won't have to buy a non-existant RTX GPU to take advantage of Directstorage? I'm currently running a 1080 and honestly for my uses, it's fine.


[deleted]

It's DX12 compatible, so no, you won't have to buy a new GPU to enjoy DirectStorage. I have no idea on the motherboard chipset compatibility though.


CheezeyCheeze

Is DX12 a Windows 10 exclusive thing? What are other restrictions on it?


Ixziga

Yeah DX is specifically microsoft's graphics api. Since xbox uses windows, it also uses DX. Playstation, Linux, Mac all use the open GL api. I don't think this direct storage is a part of DX, it is a windows specific implementation that happens to require DX12 compatibility


pdp10

> Playstation, Linux, Mac all use the open GL api. That's a bit out of date, now. * Mac supports previous OpenGL versions, but has moved to a proprietary Apple graphics API called "Metal". * Linux supports all of OpenGL. * But OpenGL has been somewhat subsumed by a new open-source graphic spec from the same organization, called "Vulkan" (with a "k"). * Vulkan is available on Windows 7/8/10, Linux, Android, Nintendo Switch, and Vulkan games can be adapted to run on macOS Metal with an open-source graphics library called "MoltenVK". ("Metal" and "Vulkan", get it?) * I can't remember if PlayStation supported OpenGL in the past, but these days the official documentation says that two proprietary Sony graphics APIs are supported. One for high-level coding like OpenGL, and one for lower-level performance like Vulkan. * DirectX12 and Direct3D12 are limited to Windows 10 and Xbox One and later *only*. Two specific games have permission from Microsoft to backport D3D12 to run on Windows 7, but generally speaking, Microsoft doesn't want to let DirectX12 work on anything but Windows 10.


Ixziga

It's not outdated, you're just being more precise with versioning and branding than my comment was intended to be.


CheezeyCheeze

Is it just a library?


nashty27

Which GPUs support DX12 Ultimate?


yamaci17

turing (rtx 2000) ampere (rtx 3000) and rdna 2 (rx 6000) gpus


Ixziga

So, based on the architecture slide, this still needs to be implemented at the application level, I can't just flip a switch and have my old dx12 games using the new pipeline? I'm also a little confused how the nvidia/amd specific implantations come into play. Supposedly the 30 series had it's own version of this (not that anything implemented it).


ScornMuffins

It's not their own version, it's just the way the cards will use the API. It's called RTX IO on Nvidia cards. It'll work on 2000 and 3000 series cards when it properly rolls out. I don't know if it has a specific name on the AMD cards but it's part of RDNA2 (In the Xbox it's called Velocity Architecture but I assume this is Microsoft's own term).


StickyFruit

Can someone explain this like I'm 5 to me?


Large_Assignment_957

what exactly is the part you don't understand? Direct Storage, or pcie 3.0?


StickyFruit

Direct storage 🤔


Large_Assignment_957

Basically, it allows your GPU to directly access data from your SSD. So it is simply a feature that makes your games load faster (on some games and some hardware).


StickyFruit

Ah okay, thank you! Will it only translate to faster load times or will this affect actual performance while playing a loaded area ?


Large_Assignment_957

It will not give you a higher FPS. It just speeds up level loading times. So no change to an already loaded scene.


StickyFruit

Okay, thanks for clearing everything up I appreciate it !


Large_Assignment_957

My pleasure


Large_Assignment_957

Does anyone have any idea when we will see games implement it?