On the Collabora blog, developer Mike Blumenkrantz has given an exciting update to Zink, an open source Mesa Gallium driver for Linux that provides OpenGL on top of Vulkan.
Announced two years ago last month, the point of it is for providing hardware accelerated OpenGL when only a Vulkan driver is available. Not really a situation we're going to see right now but perhaps an important project for some time in the future and perhaps if it can eventually provide better performance - an option to pick later on.
Blumenkrantz mentioned how they've been mentored by hackers at Collabora on their work, and that if a Mesa update shipped now it would come with OpenGL 3.3 support, macOS support and even RaspberryPi 4 support, which curiously was done with the help of Igalia to help test the RPi 4 V3DV Vulkan driver as they have a lack of Vulkan apps to test on the RPi 4 so this can help bridge the gap.
Coming up next, Blumenkrantz mentioned numerous areas that will see improvements with hundreds of patches waiting to be upstreamed to add in more advanced features and bring up OpenGL 4 support and then keep going from their advancing it onwards.
Pictured - Unigine Heaven running with Zink with an Intel GPU, credit: Mike Blumenkrantz
Feature support is one thing but what about performance? Looking at Unigine Heaven running with Zink, the driver has come a long way there too. From failing to render textures, to 14FPS (compared with 50FPS on normal OpenGL drivers) up to around 95% of native OpenGL performance which is seriously impressive. Through 2021 Blumenkrantz is hoping to improve that even further.
Of course a fully open driver stack would be preferable, but it is not only Nvidia that isn't willing to go down that path.
Id be even optimistic to say, that OpenGL code on top of vulkan can potentially be better than code from driver writers, who knows. That means, potentially can be more performant that original GL drivers from said driver writers.
Hopefully it will kill openGL development without killing OpenGL usability.
I can dream, right?
Last edited by torbido on 7 November 2020 at 2:12 pm UTC
Can I run native OpenGL games as Vulkan games through Zink, and use vkBasalt with them?Zink doesn't use Vulkan swap chains for presentation, which all these layers (Mangohud, vkBasalt, ...) rely on, so no, that's not going to work.
See more from me