Zink OpenGL-On-Vulkan Implements Front-End Shader Caching

Written by Michael Larabel in Mesa on 1 November 2022 at 05:21 AM EDT. Add A Comment
Adding to the long list of Zink OpenGL-on-Vulkan driver improvements coming with Mesa 22.3 this quarter is now a working Mesa front-end shader caching implementation.

This front-end shader caching support for the Mesa state tracker saves on GLSL to NIR re-compiles. In turn this can help with Zink performance on subsequent loads of games to save on otherwise recompiling of GLSL shaders to the common NIR representation.

The lack of front-end shader caching was spotted a few weeks ago by Emma Anholt when noticing that with a trace there was a lot of CPU time spent compiling shaders even on a second run of the same trace.

Anholt went ahead and implemented this front-end shader caching so it's properly working with Zink. In the Asphalt trace used for testing, this helped improve the performance by just over 3%. A three percent bump may be small compared to some of Zink's other massive wins this summer and autumn, but every bit certainly helps in getting this compelling OpenGL on Vulkan implementation even more competitive.

More details on this Zink front-end shader caching addition via this merge that arrived in time for the imminent Mesa 22.3 branching. Meanwhile Zink lead developer Mike Blumenkrantz is now on holiday for the remainder of the calendar year so it may be a bit quieter than usual on the Zink front.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week