This statement doesn't make any sense in terms of modern AMD GPU architectures. AMD GPUs ever since the introduction of GCN doesn't have a dedicated input assembler stage and instead exclusively
featured a "pull model" where fetching vertex attributes gets compiled into shader binaries as
opposed to the "push model" where fetching vertex attributes is done with a fixed function hardware input assembler. The
implications of this design can be seen in the Mantle API where "vertex buffers" simply don't exist like we see on many other graphics APIs ...
Primitive shaders as a topic are entirely adjacent to the input assembler ...
Both primitive shaders and mesh shaders are alternative programmable geometry pipelines to the traditional programmable geometry pipeline involving vertex shaders and it's extensions. Most of the techniques you mentioned at the end can be done with geometry shaders too and the older geometry pipeline!
That is not true since both can operate on 'meshlets' which is understood to be a collection vertices and primitives. That's not how I'd rate them in terms of '
flexibility' so below is my assessment ...
RDNA2 primitive shaders > mesh shaders/RDNA1 primitive shaders
RDNA1 primitive shaders > old geometry pipeline
Mesh shaders ≯ RDNA1 primitive shaders
RDNA1 primitive shaders ≯ mesh shader
Mesh shaders ≯ old geometry pipeline(!!!)
In fact mesh shaders can be less flexible than our traditional geometry pipeline since they lack the functionality to do transform feedback or stream out. RDNA1 primitive shaders are a perfectly strict superset of our old geometry pipeline since the former contains all functionality of latter. Both falls short of each other in various disjoint ways. Primitive shaders on RDNA1 can't support amplification/task shaders while mesh shaders can't do transform feedback/stream out and doesn't offer us any other pre-mesh shading stage besides the default amplification/task shader stage ...
@Bold No, specifically with Nvidia's case they came about simultaneously together as another separate geometry pipeline. In AMD's case, primitive shaders came about in their attempts to
unify mesh shading with the known traditional geometry pipeline ...
It's more accurate to describe primitive shaders as a direct precursor to the mesh shading stage and no primitive shaders did not lead to task shaders as they had no similar hardware stage for it. How task shaders came about on AMD HW is that they extended their hardware
compute shader stage to support that functionality ...