Not quite.The link you have shared demonstrates nothing which contradicts my original post or information, it's just a deep dive on how Primitive Shaders function and is based on information which is now outdated.
Both Primitive and Mesh Shaders are set up in the GPU's geometry engine and command processors, the hardware changes made to these components was done in AMD's Vega architecture and up until and including RDNA 2 there have been absolutely zero changes made to either these components according to AMD documentation.
Here's a link to AMD's Vega white paper and on page 6 it highlights the "NGG fast path" (Next Generation Geometry). Both RDNA 1 and RDNA 2 documentation show there was zero changes made to the hardware to accommodate Mesh Shaders.
In fact all AMD RDNA 2 GPU's are converting Mesh Shaders into Primitive Shaders in code, this includes the Series X/S as well as the discrete GPU's.
It has nothing to do with what I "believe" lol it's literally on paper if you know where to look.
LeviathanGamer2 has done an excellent job on covering this topic.
At the definition level of the problem they seek to solve, we could say that they seek to solve the same problem, but these are two different solutions.
First of all, the Primitive Shader retains the use of the teselation unit for the amplification of geometry.
While the 3D pipeline with the Mesh Shader completely eliminates that part.
However, one might think that if Primitive Shader= Mesh Shader then Amplification Shader = Surface Shader. Right? The AMD patent of the Primitive Shaders is clear about this.
On the other hand, if we look at Microsoft documentation on the Shaders Ampliplification, we are told:The Shader Surface is active when the teselation is. When the teselation is active, the shaer surface implements the functionality of the vertex and hull shader stages. The teselation stage is still implemented in fixed-function hardware. The Shader Surface is disable when the teselation is deactivated. The Shader Surface is implemented both both partial and totally as a shader program.
When the teselation is active, the Primitive Shader implements the functionality of the Domain Shaer and Geometry Shader Stage, but if the latter is active when the teselation is active, the Primitive Shader implements the functions of the Vertex Shader stage.
In short, the Shader Amplification allows to indicate the volume of geometry with which we want the Mesh Shaders to work. It is therefore thanks to them that the teselation unit is not necessary in this approach, being this the main change between the Primitive Shaders' approach and the Mesh Shaders.While the Mesh Shaders are a rather flexible tool, they do not allow all teselation scenarios and are not always the most efficient way to implement selective selection per instance. To do so, we have the Shader Ampliplification. What they do is simple: send groups of subprocesses from Mesh Shaders. Each Mesh Shader has access to the data from the main Shader Amplification and does not return anything. The Shader Amplification is optional and also has access to group shared memory, making it a powerful tool to allow Mesh Shader to replace any current channelling scenario.
So in short Mesh Shaders and Primitive shaders are doing the same job, just that the Mesh Shader pipeline is less than the Primitive pipeline.