XVA isn’t coming to PC and no PC hardware exists for SFS atm. SF is not the same as SFS. Ya can’t really do a lot with SF on its own. Ya need to have your own texture filtering to keep the textures from popping all over the screen and MS has special hardware for this task, designed exclusively for XSX.
Can you clarify or elaborate what you mean by textures popping all over the screen?
I’m not an expert on this at all, BUT from what I can tell based on twitter comments by James Stenard it sounds like SF (the DX12U feature) is a more advanced/streamlined version of virtual texturing. Upcoming DX12U GPU’s should have this built in as is. It allows you to know what chunk of a texture you need for a scene as well as what detail level is needed. But, what to do with that info is where SFS comes in.
To stream in new texture chunks at the appropriate detail level used to be a several step process but SF+streaming algorithms can make it a single step. However, algorithms won’t be able to always guess the chunks required for the upcoming frames since it’s a dynamic game and all. If the algorithm is wrong at its guess, you need a way to smoothly transition from the wrong guess to the right guess. Ya gotta wait for that new chunk of the texture(s) to stream in in the meantime and when they arrive they pop in (you get sudden change in texture detail) if ya don’t have a way to filter the texture. MS built texture filtering hardware into XSX specifically to allow the texture detail transitions to be smooth as the appropriate chunks are streaming in. This avoids the popping in issue.
That’s what I thought you meant though I don’t think that’s the way it works. What SFS allows developers to do is load only the MIP necessary for the scene. Basically the way engines work now is when an object, let’s say a car in Forza 7 uses a 4K texture, that 4K texture needs to be loaded into memory whether the car is right in front of you in full LOD or 100 yards away at the lowest LOD. When in this lower LOD state, the engine will use a lower MIP level for the car so we don’t get texture aliasing. So whether this car is close or far, that 4K texture has to sit in memory. What SFS allows developers to do is when the car is far away, they can load only the MIP needed without requiring the full 4K texture into memory. With this method, not only do they need to load in far less data into memory when not needed but also requires a lot less IO bandwidth to push around this data. This is one of the reasons why MS calls SFS a memory multiplier, it allows devs to ignore texture files that aren’t needed, freeing up more memory.
Devs can already do what you described (I think). That’s what PRT/Virtual Texturing does as is. That’s why SF is also referred to as PRT+. Independently of whether SF is being used, devs can progressively load the mip chain.
SF tells the system what specific mip map to use AND what chunks in that mip to use. SFS isn’t only sorting out what mips to use iirc.
Gavin posts here. He can do better job clearing this up since I know he has looked into it.
From what I read, the full resolution texture is loaded into memory and the engine decides what MIP to load and that’s one of the differences with SFS. Admittedly, I don’t know how that applies or compares to virtual textures since that wasn’t covered. I can see what you mean though since what I recall about virtual textures, the burden is mostly on the storage and the engine streams in the appropriate texture as necessary, that’s why we commonly see texture pop in for games using this technique. However I’m not sure this does anything to mitigate the IO demands and it still requires a base resolution of the texture. I remember Carmack talking about how the 360 allowed higher resolution virtual textures than the PS3. I do wonder how often virtual textures will be used going forward. The devs at ID completely removed their megatexture/Virtual texture system because of the limitations the technology forced on the studio. Not sure virtual textures make as much sense now as it did last gen with the systems lacking memory.
When I can find some time, I’m going to see if I can find what I read about SFS and post it.
From the Ms patents, 2 hardware changes that I could gather were:
To filter the mip accordingly you need the residency map as well, the regular texture units require 2 separated fetches for it, which makes the shader a bit more complex and there’s also a performance penalty as you need to perform 2 separated fetches. With the hardware change they will fetch the residency map transparently from your code.
Virtual texturing to multiple different levels is kinda of a bitch to manage because the virtual address translates to an specific portion of an specific mip. If from the analysis you get an address that it’s not loaded on memory you’ll need to check it’s not on memory, traverse back to get the address of the mip portion you should have loaded and schedule the operation to load it. They also added hardware that does all that. The hardware adds another indirect addressing. That address is resolved to the current mip portion you have loaded, and if that does not match the level you wanted it will trigger an async system operation to fetch the appropriate level, so the next time you want to read it’s the correct one.
There are probably more details on the patent, but those 2 seems to be the biggest ones that makes the streaming more seamless and performant.
"Hardware-accelerated GPU scheduling
With Windows 10 May 2020 update, we are introducing a new GPU scheduler as a user opt-in, but off by default option. With the right hardware and drivers, Windows can now offload most of GPU scheduling to a dedicated GPU-based scheduling processor.
Windows continues to control prioritization and decide which applications have priority among contexts. We offload high frequency tasks to the GPU scheduling processor, handling quanta management and context switching of various GPU engines.
The new GPU scheduler is a significant and fundamental change to the driver model. Changing the scheduler is akin to rebuilding the foundation of a house while still living in it. To ensure a smooth transition we are introducing the new scheduler as an early-adopter, opt-in feature. During the transition we will gather large scale performance and reliability data as well as customer feedback.
We are adding UI to the Advanced Graphics Settings page to control enabling the new GPU scheduler. The settings page can be reached through Settings -> System -> Display -> Graphics Settings . If both your GPU and driver support the new GPU scheduler, the UI below will appear."
I know this an xsx thread but I think its worth noting that if Lockhart @ 4tf is real at 1080p Lockhart would actually be more caperble then a PS5 at 4k, to do 4k PS5 games at 1080p you would only need a 2.5tflop gpu.
I’d like to see them do a 1080p 60fps stream to reveal Lockhart and show some next gen gameplay on it. Nothing too crazy but maybe Flight Sim with RT or something. Get ppl gawking at how great it looks and then reveal everything we just saw was running on Lockhart/XSS. Could even show a set of 1080p side by side screenshots with XSS and XSX screens behind a slider DF-style.
Yep, sounds a great idea. If lockhart is real its going to do very well indeed. Now I like 4k because I have a 4k tv, but i also a appreciate the most powerful hardware. However most people are not like this, including me like 20yrs ago. I just bought a console with the games i liked and played every now and then.
Its like I understand both perspectives i think its important to have the most powerful hardware and i enjoy the most powerful hardware, it is a better experience, but i would also be perfectly fine with a lockhart and a tv no bigger then 50inch. I think lots of people are going to be confused when they see Lockhart gameplay next to ps5/xsx gameplay and think it looks the same, they will be like “why is this one $200 cheaper”.
If MS can set up the comparisons b/t PS5 vs XSS on 1080p tv you’d definitely get a lot of ppl feeling good about XSS. Then also show XSX vs PS5 at 4k…MS has the challenge of making sure the public perception sets these comparisons up in the zeitgeist though.
The hardware design of the XsX does not get enough praise. Phil should be applauded for giving the hardware team the freedom, to have no constraints over the size + shape of the box, he just said “let nothing restrain you regarding form factor, make the most powerful console you can.”
Its a genius move to have the shape of the box be a crucial design element that is part of the cooling system, this way they could keep the system relatively small, it shows boldness and flair. Sony on the other hand looks like they went a more traditional and not the most logical design approach, a set top box shaped console which would of meant a hard design for its cooling system, xbox went with a more first principles approach
You could also add the detailed specs and explanations from https://microsoft.github.io/DirectX-Specs/
Only thing still missing is the documentation of Velocity Architecture API.
Found the thread where I got info on SFS earlier.
Assuming the PS5 uses supersampling, the games should still look better on the PS5. Not to mention the higher quality effects and buffers. Not to say games wouldn’t look great at 1080p on Lockhart.
They would probably get a lot more praise if they actually showed games running on it.
In the context in which I said this it meant the design of the console itself does not get enough praise. But to your point hellblade is the only true next gen looking thing we have seen.