AMDs word on that slide were:
Primitive Shaders
New hardware shader stage combining vertex and primitive phases
Enables early primitive culling in shaders
Faster processing of content with high culling potential
Faster rendering of depth pass
Speed up for vertex shaderswith attribute computations
A world of potential uses
Shadow maps
Multi-view and multi-resolution rendering
Particles
Hm, they explicitly say „hardware shader stage“. But given how much you needed to put words on a fine scale lately... Maybe it's just worded this way because it made sense to enable this, because the geometry engines could share data via L2 cache now.
Vertex shader is a hardware shader stage. So is a fragment shader stage. And so on...
It's "hardware" because the GPU is cognisant of the type of shader and can use that, as well as the data associated with each thread for that shader type, as inputs into load-balancing. The hardware also knows how to connect a source of data for a stage with the stage itself and then how to connect the results from that stage with the next stage (or the buffer for that stage).
When you look at how they actually work, all these types of shader are just code. You populate a buffer and/or some registers with the right data, you optionally put some other data into LDS and voila, you have all the data that a "hardware stage" shader requires.
When a game developer writes a compute shader to do the same job as the primitive shader, they are responsible for setting up the data connections and working out how it should be load balanced.
So the hardware aspect here is controlling how to start and feed the type of shader (vertex, fragment, primitive etc.) and what to do with the data it produces. The shader itself is just code.
A primitive shader accepts data just like a vertex shader does. It outputs data just like a geometry shader does (if there is one defined by the programmer when setting up the pipeline, otherwise, just like a vertex shader does).
The white paper also refers to a surface shader. A surface shader accepts data in the same way as a vertex shader and outputs data just like a hull shader does.
Both of these are examples of a type of shader that already fits into the model of the graphics pipeline that the hardware has been designed to process. Vertices, patches and triangles are well defined already. So these new shader types are really just a re-configuration of the hardware, working with geometry-related data types that the GPU already knows how to handle.