Mesa 22.3 RADV Driver Now Allows Enabling NGG Stream-Out Functionality
Samuel Pitoiset with Valve's open-source Linux graphics driver team landed the patches today for introducing the RADV_PERFTEST=ngg_streamout environment variable option for flipping it on. The patches also allow NGG Stream-Out to be enabled for upcoming RDNA3 / GFX11 hardware, but in this case it's known to be "untested" on the yet-to-be-released AMD GPUs.
At least with GFX10.3 RDNA2 GPUs, the RADV_PERFTEST=ngg_streamout option is working well for enabling stream-out / transform feedback with this NGG geometry engine.
The code today now flips on the geometryStreams, transformFeedbackQueries, and transformFeedbackStreamsLinesTriangles features that were previously disabled if trying the experimental NGG Stream-Out code path. The changes today also include enabling VK_EXT_transform_feedback with GFX11 hardware. RADV and the ACO compiler back-end have been seeing a lot of prep work for RDNA3 "GFX11" IP based on changes being made in the public to the AMDGPU LLVM compiler back-end, RadeonSI, and any breadcrumbs being shared by AMD with the open-source team at Valve. So it's looking like RADV may be in decent shape when RDNA3 GPUs begin shipping and hopefully any issues will be quickly addressed.
It was just this summer on the RadeonSI side with that official Gallium3D OpenGL driver that AMD stabilized the RDNA/GFX10 NGG Stream-Out code in preparation for RDNA3/GFX11. This NGG work has been of much attention this year since RDNA3 has NGG always-enabled.
More details in this merge request that is now merged for Mesa 22.3 due out in a few weeks.