Zink, the OpenGL implementation on top of Vulkan continues to be an exciting development for Linux open source graphics drivers, with some new code landing in Mesa to improve its performance.
The code in question relates to a Suballocator, something that developer Mike Blumenkrantz who has been contracted by Valve blogged about that we covered back in June. Even back then, Blumenkrantz showed how Tomb Raider running on Zink with this new code went from 9FPS to 91FPS (those are the last specific numbers given).
Only recently this code actually landed in Mesa, so it should appear in the next major release being 21.3 due later this year. In the commit message, Blumenkrantz mentioned how "performance in games like Tomb Raider has been observed to increase by over 1000%".
Keep in mind this is not an increase compared with running the game normally, but between the original Zink code and Zink with the Suballocator. Not all games are going to see such a dramatic increase either. Still, the point is that Zink as a driver is starting to really mature and eventually you may be able to run many more OpenGL games with Vulkan instead by just using the Zink driver on Linux.
Additionally, Zink also now supports OpenGL compatibility contexts which some games use, so running even more with Zink should now be possible.
There must be a good practical reason for this project if Valve puts their money in it. Upcoming Steam Deck doesn't need it so it must be something else. Well, Vulkan is supported by Android and there's no OpenGL there, but x86 emulation on ARM should be expensive... or maybe not that expensive?I suspect partly because they want everyone to go all in on Vulkan, but they still have legacy OpenGL stuff in their store, and partly for Steam on Chromebooks. I think that things like Fex are doing well for translating x86 to run on Arm.
With Valve contributing RADV, ACO, the Zink translation layer and DXVK, their reliance on third-party drivers is very limited. It gives them more control, and the ability to fix things more quickly.
Just my opinion though...
There must be a good practical reason for this project if Valve puts their money in it. Upcoming Steam Deck doesn't need it so it must be something else. Well, Vulkan is supported by Android and there's no OpenGL there, but x86 emulation on ARM should be expensive... or maybe not that expensive?
I don't think that Deck is totaly unrelated. If it can get you better performance, you can limit max framerate and get more battery life on Deck.
Last edited by Arten on 18 August 2021 at 8:15 pm UTC
There must be a good practical reason for this project if Valve puts their money in it. Upcoming Steam Deck doesn't need it so it must be something else. Well, Vulkan is supported by Android and there's no OpenGL there, but x86 emulation on ARM should be expensive... or maybe not that expensive?The Steam Deck needs it because it contains AMDGPU.
There is no fast opensource opengl implementation for AMD. And the closed ones suck.
So doing this opens up 20 years of opengl applications on any vulkan hardware.
To be clear: anything of GCN 1.0 and higher has a superb vulkan performance, but opengl performance in opensource is "lagging", and you don't want proprietary if you already have everything open. And I think the proprietary opengl implementation is also not that great.
Valve is actively fixing Vulkan drivers. So if they can fix the OpenGL legacy and make the implementation open, or even keep OpenGL as an easy interface to Vulkan layer, they will still have all access to all layers.
And for me personally it means that opengl will be coming to arm hardware :-).
There must be a good practical reason for this project if Valve puts their money in it. Upcoming Steam Deck doesn't need it so it must be something else. Well, Vulkan is supported by Android and there's no OpenGL there, but x86 emulation on ARM should be expensive... or maybe not that expensive?The Steam Deck needs it because it contains AMDGPU.
There is no fast opensource opengl implementation for AMD. And the closed ones suck.
So doing this opens up 20 years of opengl applications on any vulkan hardware.
To be clear: anything of GCN 1.0 and higher has a superb vulkan performance, but opengl performance in opensource is "lagging", and you don't want proprietary if you already have everything open. And I think the proprietary opengl implementation is also not that great.
Valve is actively fixing Vulkan drivers. So if they can fix the OpenGL legacy and make the implementation open, or even keep OpenGL as an easy interface to Vulkan layer, they will still have all access to all layers.
And for me personally it means that opengl will be coming to arm hardware :-).
AMD GPUs have superb open source OpenGL implementation in Mesa. Nothing is "lagging" there for many years. One of the most heaviest OpenGL games — Deus Ex: Mankind Divided — works fine with it.
I don't think that Deck is totaly unrelated. If it can get you better performance, you can limit max framerate and get more battery life on Deck.
How can you get more performance by adding extra translation layer between hardware and userspace application? Well, you won't ;-)
Last edited by chelobaka on 18 August 2021 at 9:15 pm UTC
There is no fast opensource opengl implementation for AMD. And the closed ones suck.You may want to take a look on some benchs before saying such thing: https://www.phoronix.com/scan.php?page=article&item=gpus-feb-2021&num=2 https://www.phoronix.com/scan.php?page=article&item=gpus-feb-2021&num=3
Deus Ex & Hitman are both OpenGL titles. If this isn't fast, then I'm not sure what you define as "fast" for OpenGL.
I don't think that Deck is totaly unrelated. If it can get you better performance, you can limit max framerate and get more battery life on Deck.
How can you get more performance by adding extra translation layer between hardware and userspace application? Well, you won't ;-)
Because translation is not 1:1. For example with this, machine code of shaders is created by ACO in the end.
Similar situation is with Proton/DXVK. In some cases it is better then Windows.
It also already helps in another scenario (though I'm not sure Valve has plans to leverage this or if it's just an unintentional positive side-effect)... OpenGL is deprecated in OSX, but Zinc allows for OpenGL >> Zink >> Vulkan >> MoltenVK >> Metal... which has already been tested in more than one occasion IIRC and actually works!
Valve has decided to work with AMD for making a fast lane way to get Steam Deck setup with windows. I suspect valve took a closer look at the EAC and BE situation and was like, HOLY F$%K we not going to fix this.. hope I'm wrong.Being able to install Windows on the device is a security blanket for all those Windows gamers that they're trying to persuade to buy the thing. Saying, "nah, fuck M$, we're not gonna let you install their OS," is just going to make people not buy the device. Which means they won't get to see how awesome Linux is, and Linux won't get up to the, say, 30-40% gaming marketshare where Valve are safe from Microsoft.
Valve are OK with gamers using Windows, as long as Linux is a viable and visible alternative, so they get their escape hatch and deterrent.
Nice...There is no fast opensource opengl implementation for AMD. And the closed ones suck.You may want to take a look on some benchs before saying such thing: https://www.phoronix.com/scan.php?page=article&item=gpus-feb-2021&num=2 https://www.phoronix.com/scan.php?page=article&item=gpus-feb-2021&num=3
Deus Ex & Hitman are both OpenGL titles. If this isn't fast, then I'm not sure what you define as "fast" for OpenGL.
It sounds like high end hardware vs high end hardware and open source vs proprietary vendor lock in.
This wasn't the case 2..3 years ago.
Not that I cared, because in all other respects, open source drivers had so much more benefits than that proprietary vendor lock in beast.
But I am glad to be proven wrong, that currently open source can outperform proprietary. And that everyone wins with that: from hardware manufactures, to game publishers to game distributors to 3d designers.
See more from me