Digital Foundry Article Technical Discussion [2023]

Status
Not open for further replies.
  • Starfield abuses a dx12 feature called ExecuteIndirect. One of the things that this wants is some hints from the game so that the graphics driver knows what to expect. Since Starfield sends in bogus hints, the graphics drivers get caught off gaurd trying to process the data and end up making bubbles in the command queue. These bubbles mean the GPU has to stop what it's doing, double check the assumptions it made about the indirect execute and start over again.
  • Starfield creates multiple `ExecuteIndirect` calls back to back instead of batchi
Only had a brief chance to look at this but my initial impression is this is the community digging into stuff they don't understand and looking for blood. It is extremely common to have indirect execution with 0 counts/draws because that's how the APIs and hardware work right now. This is how you do GPU-driven rendering. Similarly in the Nanite materials (base pass shading) step there's a lot of indirect draws that end up drawing nothing because the APIs do not allow you to set up sufficient state on the GPU side, so you are forced to set up any *possible* rendering that might happen on the CPU, then zero it out on the GPU if you don't actually need it. Similar things again in GPU instance culling of non-Nanite geometry for virtual shadow maps.

This has been a fundamental limitation of these APIs from day one and everyone (IHVs, OSVs, ISVs, etc) understands it thoroughly. On consoles there are some tricks you can play with fixed hardware but on PC, despite various efforts, the industry has so far been unable to evolve the APIs in a portable way that significantly improves the situation. The linked PR seems that it is an attempt to implement vendor-specific paths in Vulkan using extensions to try and reduce some of the impact. These sorts of optimizations are things that drivers are expected to be doing, but are often behind various heuristics that may need to be adjusted for Starfield (the sorts of things that day 1 driver updates tend to tweak). Even if a performance improvement is demonstrated (which as I understand it, has yet to even happen), these are not things you can do portably in DirectX, or even Vulkan at the API user level. I suspect if this turns out to actually be a decent part of the performance issues NVIDIA will tweak their drivers and life will move on.
 
Last edited:
PS5 when it came out was ahead of everything else and still is in many areas of tech.

PS5 released in 2020 and had a GPU that matches a mid-range PC GPU from 2018.

It has a CPU architecture that was already a year old at launch.

There is no area where PS5 is a head of PC in terms of hardware.
 
Last edited:
That the PC version loads 1/3 of the time it takes to load the SX version is a bit crazy, especially when Microsoft was hyping velocity architecture with the nvme drive, directstorage, sfs, and hardware accelerated decompression.
It's almost like there is something more going on other than moving data from the storage device to system memory.
- No AF and forcing AF causes issues
Perhaps those are related. If AF cause issues, why would they allow you to enable AF in the game? Making you rely on driver level settings means it's an unsupported feature.
 
Only had a brief chance to look at this but my initial impression is this is the community digging into stuff they don't understand and looking for blood. It is extremely common to have indirect execution with 0 counts/draws because that's how the APIs and hardware work right now. This is how you do GPU-driven rendering. Similarly in the Nanite materials (base pass shading) step there's a lot of indirect draws that end up drawing nothing because the APIs do not allow you to set up sufficient state on the GPU side, so you are forced to set up any *possible* rendering that might happen on the CPU, then zero it out on the GPU if you don't actually need it. Similar things again in GPU instance culling of non-Nanite geometry for virtual shadow maps.

This has been a fundamental limitation of these APIs from day one and everyone (IHVs, OSVs, ISVs, etc) understands it thoroughly. On consoles there are some tricks you can play with fixed hardware but on PC, despite various efforts, the industry has so far been unable to evolve the APIs in a portable way that significantly improves the situation. The linked PR seems that it is an attempt to implement vendor-specific paths in Vulkan using extensions to try and reduce some of the impact. These sorts of optimizations are things that drivers are expected to be doing, but are often behind various heuristics that may need to be adjusted for Starfield (the sorts of things that day 1 driver updates tend to tweak). Even if a performance improvement is demonstrated (which as I understand it, has yet to even happen), these are not things you can do portably in DirectX, or even Vulkan at the API user level. I suspect if this turns out to actually be a decent part of the performance issues NVIDIA will tweak their drivers and life will move on.
Thank you for the insight!
It’s so easy to get caught up looking for blood because everyone is convinced there is no way it could run so poorly relative to its graphical output, everyone is looking for thst gotcha.

The public has a general lack of trust for corporations a developers when they think they understand the performance of their hardware better than the people doing the actual work.

On the note of optimization, Bethseda had the Xbox ATG team on this title for a long time to ensure it ran well on Series consoles, I have a hard time believing massive oversights would exist universally across PC and Xbox.
 
@iroboto The problem with starfield is people don’t think the performance matches the graphics or the gameplay. There may be technical underpinnings that limit performance, but people are only going to judge from what they can see or play. I’m in the camp where I don’t get it. Spawning 10000 watermelons or building an unnecessarily large ship aren’t interesting. My 5600x cpu won’t maintain 60 fps so even though I have game pass it’s instantly crossed off my list. I just can’t understand from the gameplay I’ve watched why the game is so heavy. I can live with some daytime outdoor scenes looking flat, but not the performance.
 
@iroboto The problem with starfield is people don’t think the performance matches the graphics or the gameplay. There may be technical underpinnings that limit performance, but people are only going to judge from what they can see or play. I’m in the camp where I don’t get it. Spawning 10000 watermelons or building an unnecessarily large ship aren’t interesting. My 5600x cpu won’t maintain 60 fps so even though I have game pass it’s instantly crossed off my list. I just can’t understand from the gameplay I’ve watched why the game is so heavy. I can live with some daytime outdoor scenes looking flat, but not the performance.
Which is nothing new to be honest. Look at how many people complain and/or are disappointed with UE5. Again same arguments. People don’t feel that gfx upgrade justify performance hit.
 
Yea, you need to go.

The WAY OF POWER with PS5!!

Screenshot-2023-09-10-164326.png
Perfection.gif
That you really think that PS5 is used in a proper way here if we have proof that it can load even more demanding games in less than a second shows your angle alot.
And Larian is not a big studio so they for sure could not Invest in heavy optimisation on PS5. Lol especially if they had so much headache with series s ...
That piece of crap for sure bound alot of resources...

But yeah entertain that ridiculous stance further.
But be sure that i go nowhere just because you don't like my arguments..
 
Perfection.gif
That you really think that PS5 is used in a proper way here if we have proof that it can load even more demanding games in less than a second shows your angle alot.
And Larian is not a big studio so they for sure could not Invest in heavy optimisation on PS5. Lol especially if they had so much headache with series s ...
That piece of crap for sure bound alot of resources...

But yeah entertain that ridiculous stance further.
But be sure that i go nowhere just because you don't like my arguments..

Do you think PC MVME drives are being used in a proper way?
 
That quote is taken completely out of context. The author is referring to the raw throughput of the PS5 drive (5.5GB/s) which we know is faster than the Xbox's 2.4GB/s. The context of the above statement is that the Xbox will mitigate it's throughput disadvantage via software solutions like SFS. I don't agree with the statement, but that's the correct context.

And I believe @iroboto's original statement that they are interchangeable was referring to the general architecture, not the actual throughput.



Some games load faster on the PS5, others load faster on PC (e.g. Forspoken). And in those instances where the game loads faster on PS5, I don't believe it has ever been shown to be down to IO throughput. In R&C for example is doesn;t matter if you have a 3.5GB/s drive or a 10GB/s drive, the loading times are the same.

CPU setup time is going to be the bottleneck in the overwhelming majority of cases, and here the PS5 can leverage a few console specific advantages (which would also apply to the Xbox) such as the ability to load BVH structures from disk rather than calculate them at run time, the lack of need to do any shader compilation, and of course, the ability to offload decompression work to a dedicated chip (which PC's now have an answer to in the form of Direct Storage GPU decompression.



No, there were 7GB/s drives available in the PC space before the PS5 launched.

Some games load faster on the PS5, others load faster on PC (e.g. Forspoken). And in those instances where the game loads faster on PS5, I don't believe it has ever been shown to be down to IO throughput. In R&C for example is doesn;t matter if you have a 3.5GB/s drive or a 10GB/s drive, the loading times are the same.
That quote is taken completely out of context. The author is referring to the raw throughput of the PS5 drive (5.5GB/s)...

where did the author claim hes talking about throughput, he specifically said raw hardware?

And I believe @iroboto's original statement that they are interchangeable was referring to the general architecture, not the actual throughput.

Your statements are not constant how is the general architecture interchangeable when one console has cache scrubbers one has none, 2 io co processors vs 1 on the other, and 512mb of ram thats missing on the other throughput aside what exactly is interchangeable here?

Some games load faster on the PS5, others load faster on PC (e.g. Forspoken). And in those instances where the game loads faster on PS5, I don't believe it has ever been shown to be down to IO throughput. In R&C for example is doesn;t matter if you have a 3.5GB/s drive or a 10GB/s drive, the loading times are the same.

Exactly the point the bottleneck still remains on pc despite higher throughput ssd's and direct storage it fails to beat the ps5 in ratchet meaning the io block in ps5 has to be the reason for this..
 
Perfection.gif
That you really think that PS5 is used in a proper way here if we have proof that it can load even more demanding games in less than a second shows your angle alot.
And Larian is not a big studio so they for sure could not Invest in heavy optimisation on PS5. Lol especially if they had so much headache with series s ...
That piece of crap for sure bound alot of resources...

But yeah entertain that ridiculous stance further.
But be sure that i go nowhere just because you don't like my arguments..
There's a bunch of low-intellect posts, not supported by evidence, infecting the forum, notably with claims about PS5 from new members that aren't being discussed but are just being broadcast. Discuss. If others don't agree, agree to disagree. But no-one should just be making assertions without following a proper logic debate of point > evidence > conclusion and counters.

Posts like this with all that school-yard bickering language - inappropriate. I'm just going to start issuing temp bans up front now as I'm too busy to moderate and everyone in violation knows how they are suppoed to behave here.
 
@iroboto The problem with starfield is people don’t think the performance matches the graphics or the gameplay. There may be technical underpinnings that limit performance, but people are only going to judge from what they can see or play. I’m in the camp where I don’t get it. Spawning 10000 watermelons or building an unnecessarily large ship aren’t interesting. My 5600x cpu won’t maintain 60 fps so even though I have game pass it’s instantly crossed off my list. I just can’t understand from the gameplay I’ve watched why the game is so heavy. I can live with some daytime outdoor scenes looking flat, but not the performance.
Myself included, I mean, who wouldn’t want another 40% more fps. But dropping the settings away from ultra and using Alex’s optimized settings can get most PCs pretty close to the mark. Cities tend to be the only consistent low performer, but everywhere else so far has been generally good.

if this is a trend that continues, then it’s not that developers are poor at their job, it’s just that baked technology is just that effective at producing that visual performance trade off and we’ve been used to it for so long that most people won’t accept less.

I saw similar arguments when ray tracing was released and people couldn’t see or understand getting performance hosed for negligible improvement in image quality.
 
Your statements are not constant how is the general architecture interchangeable when one console has cache scrubbers one has none, 2 io co processors vs 1 on the other, and 512mb of ram thats missing on the other throughput aside what exactly is interchangeable here?
The architecture diagrams are the same is what I was trying to point at. The data flow from black box to black box doesn’t change between consoles. The only changes from last generation to this generation are the black box themselves in terms of specification and performance but not in terms of functionality.

Cache scrubbers are inside the GPU not the IO.

We have a full 100+ page thread where this was debated back and forth a lot here:

While it may not be fair to you, who is just coming in now, but many of the responses you are seeing are the eventual conclusions and agreements that the community formed after years of discussing it. It may seem to you that we are just asking new members to just accept it, but you can literally see how much it was debated and furiously to get to this point.

I stopped responding because I didn’t want to go through this loop again in a DF thread as it’s OT and I just didn’t have the patience. If you want to call us wrong go for it. It doesn’t bother me. But they’re a whole thread out there dedicated to this exact argument.
 
It's almost like there is something more going on other than moving data from the storage device to system memory.
Not only is this post rude but also utterly pointless and offers no insight whatsoever. There is no mention of DirectStorage anywhere whether it's on console or PC. Can you actually provide a reasoning or you'd just rather do sarcastic drive-by posts?
 
Not only is this post rude but also utterly pointless and offers no insight whatsoever. There is no mention of DirectStorage anywhere whether it's on console or PC. Can you actually provide a reasoning or you'd just rather do sarcastic drive-by posts?
He’s making mention that loading assets is not necessarily always the bottleneck for loading time.

In this case it is likely cpu bound level loading. For instance for Starfield, every object in the world, a good percentage of them can be picked up. They made environment design heavily interactavle, where most games would have had things like playing cards and tweezers static items built into the level, Starfield has them as objects with their own physics, weight, size, and each of them can be affected separately by the dynamic systems.

Because of this, loading levels with more densely packed objects would take longer because we are doing significantly more than just loading textures.
 
Status
Not open for further replies.
Back
Top