Current Generation Games Analysis Technical Discussion [2020-2021] [XBSX|S, PS5, PC]

Status
Not open for further replies.
Have we had an update on whether NGG is even exposed yet on XSX? Would probably take months after that before we saw it in a game (or longer?).

Mesh shaders look great and all, but they ideally need changes right back to the content creation point. Hard to see it being a priority for most developers while it's so new on PC and not supported on last gen platforms.
no updates. We're lucky to even have as much insight as we did.

I think it's fair to give them 6 months from launch to have that sorted out, there is still a transitory period to move GDK versions. You're unlikely to change GDKs a month or 2 before launch if there is a possibility of delaying launch.
 
It's from the github leak and was taken from this.

34aHuVv.jpg

Pro GPU has the NGG fastpath from Vega tech (but never activated in those cards). PS5 geometry engine is an evolution of NGG (next generation geometry).

Maybe all those performance problems on XSX (compared to PS5) could be explained by Pro (and PS5) already using the primitive shaders (and primitive culling) in some games while it's not yet used on Xbox Series X (we know it couldn't be used on One X).

See page 6 of https://www.techpowerup.com/gpu-specs/docs/amd-vega-architecture.pdf

YzyzIkO.png
[/spoiler]

There is no need to reach for exotic explanations for the early struggles of the Series X. MS rushed their console to market so that Sony does not end up with one year's worth of mindshare. What this meant was that developers had zero time to familiarize themselves with the particulars of the console's development environment. Microsoft has likely managed to get away with this due to Gamecore, which suggest that this was likely planned. Is there evidence for this hypothesis? I would say yes, considering that MS is throwing its sort of coming out party with its partners (Nvidia, AMD and select gamedevs) where it will precisely explain how to take advantage of new features. Yea, the infamous tools have arrived: https://developer.microsoft.com/en-us/games/events/game-stack-live/
 
It's a bit odd if that's the case considering the Series systems have Primitive Shaders alongside the Mesh Shaders, but we also know that Sony did some customizations with their Primitive Shaders and those might not be present in Microsoft's ones. Also IIRC, one of the reasons (actually the biggest reason) AMD shifted to Mesh Shaders is because that was the new spec set for DX12U support, since AMD couldn't get the Primitive Shaders functioning correctly on Vega.

So going by this it'd be logical to conclude 4 Pro games were already leveraging NGG and PS5 is basically allowing them to further that work with whatever customziations Sony and the AMD team they worked with added to it, whereas One X and cross-gen games on the Series platforms won't have access to that sort of equivalent until Mesh Shaders are utilized (but this will require a retooling of the dev pipeline and rebuilding parts of the engine to support it)?

People here have been throwing the terms primitive and mesh shaders around without a clear definition of what they really are. As per AMD patents, primitives shaders provides the ability for deferred vertex attribute shading until culling has been performed, thus achieving massive gains in efficiency. The express purpose of primitive shaders is largely that. Mesh shaders are an answer to the old problem of the 3d pipeline not matching the massively parallelized nature of GPUs. They achieve this by fusing different shader stages into a single combined one, thus simplifying the 3d pipeline to a single shader (the mesh shader) running concurrently in threadgroups over many SIMD units unrestricted by fixed function block acting as chokepoints. The ability for early culling is a welcome side-effect of the fact that a mesh shader is basically code arbitrarily defined by the developer such that he can implement any variety of culling methods he is familliar with or is yet to think of in any way and at any moment he wants to.
Does the series X has mesh shaders as defined by AMD? Yes, MS has been shouting about it from rooftops for a year now.
Does the series X has primitive shaders? No, since mesh shaders has all their advantages with none of their limitations.
Does the PS5 has primitive shaders? Yes, Epic specifically explained how something referred to as "primitive shaders" were used to enable software rasterization.
Does the PS5 has primitive shaders as defined by AMD's patent? This is where things get murky as Cerny has a patent about the use of compute shaders for culling before the vertex shader stage. This particular design seems to be more than primitive shaders (especially in its restriction of cache behaviour) while being not exactly mesh shaders. Until Sony comes out and explain what is the exact implementation, we will likely never know.
And before someone say it yet again....No, mesh shaders is not a term exclusive to DX12 and was in fact first named years before in academic papers just like it was the case for variable-rate shading (check out the non-patent citations of the relevant patents).
 
There is no need to reach for exotic explanations for the early struggles of the Series X. MS rushed their console to market so that Sony does not end up with one year's worth of mindshare. What this meant was that developers had zero time to familiarize themselves with the particulars of the console's development environment. Microsoft has likely managed to get away with this due to Gamecore, which suggest that this was likely planned. Is there evidence for this hypothesis? I would say yes, considering that MS is throwing its sort of coming out party with its partners (Nvidia, AMD and select gamedevs) where it will precisely explain how to take advantage of new features. Yea, the infamous tools have arrived: https://developer.microsoft.com/en-us/games/events/game-stack-live/

Or this is par the course for MS who doesn't believe that it needs anything close to a perfect XDK at the onset of a hardware release. This practically happened last gen with the Xbox One.

https://www.eurogamer.net/articles/...its-really-like-to-make-a-multi-platform-game

"But Microsoft is not sleeping, really. Each XDK that has been released both before and after the Xbox One launch has brought faster and faster draw-calls to the table. They added tons of features just to work around limitations of the DX11 API model. They even made a DX12/GNM style do-it-yourself API available - although we didn't ship with it on Redux due to time constraints."
 
Or this is par the course for MS who doesn't believe that it needs anything close to a perfect XDK at the onset of a hardware release. This practically happened last gen with the Xbox One.

https://www.eurogamer.net/articles/...its-really-like-to-make-a-multi-platform-game

"But Microsoft is not sleeping, really. Each XDK that has been released both before and after the Xbox One launch has brought faster and faster draw-calls to the table. They added tons of features just to work around limitations of the DX11 API model. They even made a DX12/GNM style do-it-yourself API available - although we didn't ship with it on Redux due to time constraints."

And Sony devkits didn't improved also? Dont devkits improve constantly during the consoles live cycle?
 
There is no need to reach for exotic explanations for the early struggles of the Series X. MS rushed their console to market so that Sony does not end up with one year's worth of mindshare. What this meant was that developers had zero time to familiarize themselves with the particulars of the console's development environment. Microsoft has likely managed to get away with this due to Gamecore, which suggest that this was likely planned. Is there evidence for this hypothesis? I would say yes, considering that MS is throwing its sort of coming out party with its partners (Nvidia, AMD and select gamedevs) where it will precisely explain how to take advantage of new features. Yea, the infamous tools have arrived: https://developer.microsoft.com/en-us/games/events/game-stack-live/

I found this session description interesting:

"Tips & Tricks: How the Pros Use PIX to Make Their Games Better on Xbox and Windows
  • PIX is the essential performance tuning and debugging tool for DirectX 12 applications on Xbox and Windows. As the game industry pushes the boundaries of what is possible on the latest generation hardware, we are building the tools you need to get detailed information about how those games are running. In this talk you will learn how AAA studios use PIX in their development process to make their games better. You'll hear about the latest features in both Timing Captures and GPU Captures, as well as what's coming up in 2021 and beyond."
The site for Pix for PC is here: https://devblogs.microsoft.com/pix/introduction/

Just browsing around on there I noticed that there was a big update in August 2020, and another update in Jan 2021 that added/updated quite a few things. Clearly they have new features and improvements coming "in 2021 and beyond".

A couple of things that stood out were that they no longer support Tier 1 VRS, and that until August 2020 you couldn't reliably open a capture without closing your app. Sounds like it would be a bit of a ballache.

Does the series X has primitive shaders? No, since mesh shaders has all their advantages with none of their limitations.

Not so sure about this. Primitive shaders (like mesh shaders) are an integral part of RDNA2, and present on Navi 21. Seems unlikely to me that MS have removed this deeply embedded capability from their "full RDNA2" GPU - it would require work, take time they probably didn't have, limit options for performance gains, and give them pretty much nothing in return.

Ronaldo8 said:
Does the PS5 has primitive shaders? Yes, Epic specifically explained how something referred to as "primitive shaders" were used to enable software rasterization.

I don't think they did. I think Epic were saying they use primitive shaders when they move from their software rasteriser back to hardware. AFAIK your primitive shaders replace vertex shaders and still feed into your hardware rasteriser.

"We can't beat hardware rasterisers in all cases though so we'll use hardware when we've determined it's the faster path. On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."

I wouldn't be surprised if Epic are hoping to do the same thing on Xbox and PS5. It would seem a bit dumb to force none mesh shader games using UE5 to run a much slower path on XSX than PS5 for no discernable reason. They said they were using primitive shaders on PS5, but they didn't say anything about that being unique to PS5.
 
Have we had an update on whether NGG is even exposed yet on XSX? Would probably take months after that before we saw it in a game (or longer?).

Mesh shaders look great and all, but they ideally need changes right back to the content creation point. Hard to see it being a priority for most developers while it's so new on PC and not supported on last gen platforms.

To clarify, mesh shaders absolutely do not need changes at content creation -- but meshes must be processed when or before making a build, and shaders have to be written. So, too late to be likely in a quick update, but not something you need at the start of a project.
 
And Sony devkits didn't improved also? Dont devkits improve constantly during the consoles live cycle?

They will, but it doesn't MS can't have further to go, or there's as much of a learning curve for developers to go through. Of course it could be Sony who have further to go ... but I doubt it.

Last gen Xbox was behind in a number of ways early on.
 
To clarify, mesh shaders absolutely do not need changes at content creation -- but meshes must be processed when or before making a build, and shaders have to be written. So, too late to be likely in a quick update, but not something you need at the start of a project.

Yeah, I was thinking of "baking" (to perhaps misuse the word) - so when you take your model and turn it into an asset ready to be used by the game. In the presentations I've seen they say that's the best time to do it. I consider that part of content creation, but I'm not a content creator so maybe that's the wrong terminology and would piss some people off. :)

In principle I know you could convert an asset at runtime, but that was very strongly advised against.

(You can also generate meshlets algorithmically inside the shader and consume them without them ever seeing main memory. Not that that's got anything to do with what you said, I just thought it's cool!).
 
They will, but it doesn't MS can't have further to go, or there's as much of a learning curve for developers to go through. Of course it could be Sony who have further to go ... but I doubt it.
I think performance gap will be similar as now (so very close) but further in generation multiplatforms should show advantage of ps5 io at least in loading times (I don't think current multiplatform fully utilize ps5 io yet) or more profound in ue5
 
Last edited:
MS never spoked about primitive shaders and they have openly talked in length about pretty much every tech they have in their machine: Mesh shaders, VRS, SFS, you name it.

What I think is that Xbox Series X actually doesn't have primitive shaders (not enabled or not there at all) in their machine. From some commits it has being activated by defaut (and notably the important primitive culling) only in RDNA2 starting from gfx10.3 and Navi1x Pro cards 4 months ago. AFAIK they never completely activated it in RDNA1 desktop GPUs.

  • NGG culling is fixed for gfx10.3
  • NGG culling is enabled by default on gfx10.3 dGPUs
  • the culling shader is optimized leading to slightly better culling performance in some cases
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172
They talk more about this here:
https://www.phoronix.com/scan.php?page=news_item&px=NGG-Culling-Enabled-GFX-10.3

And we know that Xbox Series X (like PS5) is some kind of hybrid between pure RDNA1 and RDNA2 and is actually gfx10.2 according to @Locuza


I think the NGG legacy features in Pro are actually the NGG never activated (or fixed) in Vega or even Navi 10 and were only fully activated (by fixing it), with modest results, in RDNA2 4 months ago. Finally what's inside the PS5 is an improved version of primitive shaders (we know this from the github leak with 3 new lines after Pro BC legacy), some kind of primitive shaders 2:

1qEtY5l.png
 
And Sony devkits didn't improved also? Dont devkits improve constantly during the consoles live cycle?

Not saying they don't but seeing the current state of the XSX especially given the past history of MS with its consoles, doesn't lead me to believe that MS rushed the XSX.
 
Last edited:
Yes I was thinking about that and it's maybe not I/O related. Now I think it could be due to some polygon culling done more efficiently on Pro (and PS5 via BC). Pro GPU has actually advantages here against One X: it has the next-generation geometry (NGG) path taken from AMD Vega (while One X hasn't AFAIK as it's based on Polaris). The 2 lines: Peak NGG Vertex legacy and Peak NGG Prim legacy are Pro BC stuff tested on PS5 (so still available on PS5).

oqICcF3.png
What in this snippet of regression testing for the PS5 has to do with the PS4? There are columns specific to the 911MHz Pro mode, I don't think I see them in this selection, and I think they say NA or not supported for the rows with NGG.


Also from the Cerny interview about Pro (done by DF, too bad they don't remember it):
I think the Pro may have taken on the primitive discard accelerator from Polaris and later, which helped discard degenerate triangles with no size. There was mention of the Pro getting some of the workload distribution from Vega, but not any of the more substantial changes. NGG involves a restructuring and merging of internal shader stages, which I don't recall being discussed for the Pro.


It's from the github leak and was taken from this.

34aHuVv.jpg

Pro GPU has the NGG fastpath from Vega tech (but never activated in those cards). PS5 geometry engine is an evolution of NGG (next generation geometry).
What in that screenshot indicates the PS4 Pro has NGG?
 
Not saying they don't but seeing the current state of the XSX especially given the past history of MS with its consoles, doesn't lead me to believe that MS rushed the XSX.

At the time people were talking that Sony rushed it's console and that it was meant to be released in 2019. They even claimed the speeds were overclocking to match SX. So if the SX was rushed it is very strange, and goes against all that.
Besides the X presentation and release date was given first. Why would Microsoft rush its console when the competition had not even talked about its product?
And why would a dev kit, a piece of software, created for a console on development for several yeats, comming from the biggest software company in the world, be delayed and in worst condition than the one from a small company like Sony?
If that happened wouldn't it be a slate of incompetence Microsoft was giving itself?
 
At the time people were talking that Sony rushed it's console and that it was meant to be released in 2019. They even claimed the speeds were overclocking to match SX. So if the SX was rushed it is very strange, and goes against all that.
Besides the X presentation and release date was given first. Why would Microsoft rush its console when the competition had not even talked about its product?
And why would a dev kit, a piece of software, created for a console on development for several yeats, comming from the biggest software company in the world, be delayed and in worst condition than the one from a small company like Sony?
If that happened wouldn't it be a slate of incompetence Microsoft was giving itself?

No. not really. Sony gaming efforts are totally dedicated to one ecosystem on a narrow set of hardware. MS efforts are not.

Plus, we are not talking about a huge disparity, and it's at a time where it's the least relevant. Launch software tends to be the least expressive in terms of showing off the capabilities and performance of the hardware. By the time we get to real next-gen level type games on consoles, most of the issues will have been worked out.
 
Last edited:
So Series X uses mesh shaders and PS5 uses primitive shaders?
Whats the difference between the two?
 
Probably both. I think it's oodle textures + getting rid of redundant assets. That way they can still load the game the PC / Xbox way (with the CPU).

How do we get to that assumption?

The given sizes were for vanilla PS4 and Xbox One Control (not ultimate).

If RAD tech was used I would assume it would be on both systems given neither have any acceleration for it.
 
How do we get to that assumption?

The given sizes were for vanilla PS4 and Xbox One Control (not ultimate).

If RAD tech was used I would assume it would be on both systems given neither have any acceleration for it.
But they would had to re-test completely the PS4 (XB1) version with such big changes. PS5 is a native version and only this version can have deduplication of assets. As they made the PS5 version from the ground up (maybe with new assets structures), using oodle texture for that version makes sense as they'd spend the same amount of time for their test anyways and it would be a good training for them to start using that tech.

Why would they lose development time on re-testing completely the 7 years old consoles versions?
 
Status
Not open for further replies.
Back
Top