RADV Driver Drops NGG Stream-Out Code For RDNA1/RDNA2 GPUs
While the original AMD Navi GPUs featured Next-Gen Geometry (NGG) support, it was borked for some GPUs and initially didn't work out quite as well as planned for vertex and geometry processing. The Mesa Radeon Vulkan driver "RADV" has worked on the NGG code for years and with RDNA3 GPUs it's finally been working out very well from the start and better than their legacy pipeline. All the while the RDNA1/RDNA2 experimental NGG stream-out support has continued to exist but hidden behind a feature/debug flag. That code is now being removed.
Similar to AMD having ripped out NGG stream-out support from their Navi 1x and Navi 2x driver code in RadeonSI, RADV is now doing the same. Valve's Samuel Pitoiset wrote in the merge:
So due to the early NGG hardware issues, it's better to just drop that code for the Radeon RX 5000/6000 series while at least now Next-Gen Geometry continues working out well on RDNA3 GPUs with the Radeon RX 7000 series graphics processors.
The RADV_PERFTEST=ngg_streamout option for RDNA1/RDNA2 GPUs was originally added to RADV last year with Mesa 22.3. This removal was merged for what will be Mesa 24.0 when released in Q1.
Similar to AMD having ripped out NGG stream-out support from their Navi 1x and Navi 2x driver code in RadeonSI, RADV is now doing the same. Valve's Samuel Pitoiset wrote in the merge:
No longer useful to have RADV_PERFTEST=ngg_streamout and NGG streamout on RDNA3 is rock solid now!
...
Yes, NGG streamout on RDNA1-2 is unused and unstable, while RDNA3 has been designed with it. RadeonSI also dropped support for it.
Removing legacy pipelines on GFX10+ isn't possible anyways, NGG itself can't be always enabled due to hw bugs.
So due to the early NGG hardware issues, it's better to just drop that code for the Radeon RX 5000/6000 series while at least now Next-Gen Geometry continues working out well on RDNA3 GPUs with the Radeon RX 7000 series graphics processors.
The RADV_PERFTEST=ngg_streamout option for RDNA1/RDNA2 GPUs was originally added to RADV last year with Mesa 22.3. This removal was merged for what will be Mesa 24.0 when released in Q1.
12 Comments