radv: Configure implicit VS primitive ID to be a per-primitive output.
Based on !32220 (merged)
GFX10.3 and newer GPUs support per-primitive outputs, which thus far we've only used for implementing per-primitive mesh shader outputs. However, these can be also very useful to implement the implicit VS primitive ID.
Benefits of this approach:
- We don't have to disable provoking vertex reuse, which results in more efficient vertex processing.
- There is no LDS access needed to export the primitive ID, because it is already available to GS threads.
- As a consequence of not needing LDS, we can use this together with NGG passthrough mode.
Edited by Timur Kristóf