RADV Driver Sees Dramatic Improvement To Reduce CPU Overhead For Draw Calls
As noted recently he's been working on vkoverhead as a Vulkan overhead benchmark. From there he noticed that the RADV driver was slower than the AMDGPU-PRO driver for the very basic "draw" test. For that most basic Vulkan test, RADV was only achieving around 28.3 million draws per second while AMDGPU-PRO was getting around 32.8 million draws per second.
Well, with profiling the RADV execution for this very simple Vulkan test and finding the bottlenecks to address, he ended his little adventure hitting 44 million draws per second on RADV! Yes, a 55% increase in the RADV draw throughput compared to the current RADV code in mainline Mesa and around a 30% lead over the AMDGPU-PRO proprietary Vulkan driver from AMD.
This merge request is pending for Mesa 22.3 to reduce the CPU overhead and achieve this mighty improvement. It took 20 patches touching just around 200 lines of RADV driver code for this latest optimization work from Blumenkrantz.
Mike Blumenkrantz posted another creative blog entry today outlining his draw overhead optimization crusade.
He didn't comment though in his blog post if/what sort of improvement this translates to for any real-world Vulkan workloads / Linux gaming. In any event, a nice boost to RADV performance for the basic draw throughput.