Linux Gaming Performance With Radeon Vulkan NGG Culling
The newest performance optimization merged this week for Mesa's "RADV" Radeon Vulkan open-source driver is NGG culling for Navi 1x/2x graphics cards. NGG Culling "NGGC" isn't enabled by default at this time but can be easily activated and depending upon the software under test can provide some minor performance gains on top of all the other optimizations seen in recent times for RADV.
This culling using the Next-Gen Geometry (NGG) block with RADV works for Navi graphics cards but is namely beneficial for newer Radeon RX 6000 series (Navi 2x) graphics cards. For this initial NGGC benchmarking the Radeon RX 6700 XT and Radeon RX 6800 XT were benchmarked (sadly still without any Radeon RX 6900 XT for testing at Phoronix) plus also tossing in a Radeon RX 5600 XT even though the performance benefit for Navi 1x is expected to be smaller.
On an AMD Ryzen 9 5900X desktop, the graphics cards were tested while the system was running Ubuntu 21.04 with the Linux 5.13 kernel and using Mesa 21.2-devel this week after the NGG Culling support was merged. Those wanting to easily try out NGGC without having to build Mesa yourself can fetch the latest Git code via the Oibaf PPA on Ubuntu systems.
Enabling NGG culling on Navi graphics cards can be achieved via setting the RADV_PERFTEST=nggc environment variable. In my initial testing the past two days it has worked out well for RDNA2 graphics cards with some performance gains. There hasn't been any rendering issues or other problems besides with the RX 5600 XT hitting a hang for Shadow of the Tomb Raider when NGGC was enabled in the most demanding configuration tested -- it was fine with the default (NGGC disabled) and in both configurations for the Radeon RX 6000 series graphics cards.