Mesa 23.1 Zink Change Further Lowers CPU Overhead, Less vRAM Utilization
Yet another Zink OpenGL-on-Vulkan driver optimization has landed in Mesa 23.1 ahead of its official release next quarter.
As of this week in Mesa Git, the Zink driver has enabled the "db" descriptor mode by default (ZINK_DESCRIPTOR_MODE=db). While previously being an opt-in feature, it has stabilized enough and proven worthwhile to engage it by default for Mesa 23.1.
ZINK_DESCRIPTOR_MODE=db helps reduce CPU overhead and enables pre-compilation for separate shader objects. So all in this change is certainly welcomed.
Zink lead developer Mike Blumenkrantz with Valve also blogged to share some of the benefits of this change:
One nicety of descriptor buffers is performance. By swapping out descriptor templates for buffers, it removes a layer of indirection from the descriptor update path, which reduces CPU overhead by a small amount. By avoiding the need to bind different descriptor sets, GPU synchronization can also be reduced.
In zink terms, you’ll likely notice a small FPS increase in cases that were extremely CPU-bound (e.g., Tomb Raider).
Now it’s a little over a 10% reduction in peak VRAM utilization.
There’s still some ways to go with VRAM utilization in zink considering RadeonSI peaks at 1221MiB for the same benchmark, but a 6% gap is much more reasonable than a 16% one.
It's great seeing all the continued work into Zink as it strives to be a performant and viable replacement to dedicated hardware OpenGL drivers by leveraging modern Vulkan drivers instead.