Few Lines Of Code Increases Intel's Vulkan Driver Draw Throughput By 60%+
You may recall a few days ago how Valve contractor Mike Blumenkrantz boosted the Radeon Vulkan "RADV" driver draw throughput by +55%. Well, he now had a go at optimizing the Intel open-source "ANV" Vulkan driver and has squeezed out a 60% improvement to the draw throughput. Even more interesting is that it was just a few lines of code.
Mike Blumenkrantz, known for his work on the Zink OpenGL-on-Vulkan code and various Mesa Vulkan optimizations, published another creative blog post where he shares the news of his latest feat. Long story short, when testing with Intel Icelake (Gen11) graphics, he managed to further optimize the ANV driver's Vulkan draw throughput. After profiling the Intel driver while running his new "vkoverhead" simple Vulkan overhead benchmark, Mike found areas to focus on and was able to hit a 60%+ draw throughput boost.
Those wishing to read his creative post with pictures can find it here. The code to make this 60% improvement can be found via this new merge request. The exciting part beyond the performance improvement is that it's just a few lines of code changed. The changes force inlining more pipe flush functions and eliminating redundant pipe flushes for draw command recording. Together it's just 7 lines of new code, 9 lines of existing code removed yielding this big speed-up. Not bad!
Mike Blumenkrantz, known for his work on the Zink OpenGL-on-Vulkan code and various Mesa Vulkan optimizations, published another creative blog post where he shares the news of his latest feat. Long story short, when testing with Intel Icelake (Gen11) graphics, he managed to further optimize the ANV driver's Vulkan draw throughput. After profiling the Intel driver while running his new "vkoverhead" simple Vulkan overhead benchmark, Mike found areas to focus on and was able to hit a 60%+ draw throughput boost.
Those wishing to read his creative post with pictures can find it here. The code to make this 60% improvement can be found via this new merge request. The exciting part beyond the performance improvement is that it's just a few lines of code changed. The changes force inlining more pipe flush functions and eliminating redundant pipe flushes for draw command recording. Together it's just 7 lines of new code, 9 lines of existing code removed yielding this big speed-up. Not bad!
23 Comments