RADV ACO Lands NGG Geometry Shader Support
Adding to the growing list of Mesa 20.3 features is now RADV ACO supporting NGG GS. Or rather, the Radeon Vulkan driver with the ACO back-end now supports geometry shaders with Next-Gen Geometry (NGG) as found on newer AMD GPUs.
The NGG GS ACO support merged on Friday and is enabled by default. Along the way of wiring up this support new NIR capabilities were also introduced like the ability to count emitted primitives, filter out incomplete GS primitives, and other bits. There were also some ACO improvements too along the way aside from the actual NGG GS. There are also optimizations to reduce LDS bank conflicts and early GS space allocation.
There still are future improvements planned for this code and NGG Stream-Out isn't wired up yet, but at least is in good enough shape for merging.
Initially the NGG support in both RADV and RadeonSI seemed to be rather buggy based on commit history but good to see it finally getting squared away ahead of RDNA 2 graphics. More details on the NGG GS ACO support via this merge request.