Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
We do often include affiliate links to earn us some pennies. See more here.

A really small change to the Zink driver, that gives OpenGL support on top of Vulkan, has given an ~10x speed boost for DOOM (2016). Other games are likely to benefit from this change too but DOOM was the one where an issue was noticed.

Writing on their blog last week, developer Mike Blumenkrantz noted that a really odd issue was found where "Even as early as the title screen, framerate would struggle to hit 30fps for a while before rocketing up to whatever maximum it could reach. In-game was the same, soaring to the 200fps maximum after enough time standing stationary without moving the camera. As soon as the camera shifted however, back to 20fps we went.".

After investigating they found the problem and a merge request that was accepted for Mesa that's only around 4 lines has fixed the issue to allow DOOM to run at full-speed on the Zink driver.

Makes me often wonder how many things can be fixed up by such small changes.

What's the point of the Zink driver? As the Mesa documentation states: "The Zink driver is a Gallium driver that emits Vulkan API calls instead of targeting a specific GPU architecture. This can be used to get full desktop OpenGL support on devices that only support Vulkan.".

Article taken from GamingOnLinux.com.
27 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
11 comments

PinballWizard Feb 15, 2023
  • Supporter Plus
This is a big deal for me; the multiplayer for that is literally my favorite game at the moment and it's sub-par Linux performance has left me booting into Windows to play! Thanks for sharing this, looking into how to leverage it.
Pecisk Feb 15, 2023
Really happy to see Zink making strides, as I feel long term goal of all of it will be moving all major OpenGL implementations to Vulkan translation and ensure long term support of OpenGL apps and games.
Liam Dawe Feb 15, 2023
This is a big deal for me; the multiplayer for that is literally my favorite game at the moment and it's sub-par Linux performance has left me booting into Windows to play! Thanks for sharing this, looking into how to leverage it.

I think you are misreading this: DOOM 2016 already has Vulkan support, and the Vulkan renderer has always performed better than OpenGL. I doubt running OpenGL-atop-of-Vulkan would be better than running Vulkan directly.
This is only useful on OpenGL-only games and devices that *only* support Vulkan.
Not entirely true. DOOM does have a few crash bugs with their own Vulkan implementation and for some OpenGL has been more stable so this can also help there too.
slaapliedje Feb 15, 2023
Ha, at this point there are too many wrappers with various names. For some reason I was thinking Zink was a macOS thing, and was surprised to see the article here initially. Since macOS doesn't actually have Vulkan support directly, I was thinking translating Vulkan to OpenGL makes more sense there.

https://www.phoronix.com/news/Zink-macOS-OpenGL-Vulkan
That's likely where I got that idea.
scaine Feb 15, 2023
View PC info
  • Contributing Editor
  • Mega Supporter
He specifically mentioned performance... anyway, if he has a problem with Vulkan crashing, he should just use the OpenGL renderer!

I think the point was that if their card doesn't support OpenGL (which... we don't know - PinballWizard doesn't share any PC info), then Zink is the only way to use the OpenGL renderer. I think?
Liam Dawe Feb 15, 2023
This is a big deal for me; the multiplayer for that is literally my favorite game at the moment and it's sub-par Linux performance has left me booting into Windows to play! Thanks for sharing this, looking into how to leverage it.

I think you are misreading this: DOOM 2016 already has Vulkan support, and the Vulkan renderer has always performed better than OpenGL. I doubt running OpenGL-atop-of-Vulkan would be better than running Vulkan directly.
This is only useful on OpenGL-only games and devices that *only* support Vulkan.
Not entirely true. DOOM does have a few crash bugs with their own Vulkan implementation and for some OpenGL has been more stable so this can also help there too.

He specifically mentioned performance... anyway, if he has a problem with Vulkan crashing, he should just use the OpenGL renderer!
I know you love your translation layers Liam, but there is no need to add yet another one in this case.
I honestly think you're missing the point. Performance is an issue, yes. DOOM has Vulkan and OpenGL and while Vulkan performs better, for a lot of people it has numerous crash bugs that OpenGL in DOOM does not. So by using Zink, they could potentially see better performance than plain OpenGL in DOOM without the crashing of the Vulkan implementation in DOOM directly.


Last edited by Liam Dawe on 15 February 2023 at 8:55 pm UTC
edo Feb 16, 2023
Is there a game that runs better through this than on opengl directly? I would want to try this eventually on overgrowth to see if i get a better performance
Marlock Feb 16, 2023
Ha, at this point there are too many wrappers with various names. For some reason I was thinking Zink was a macOS thing, and was surprised to see the article here initially. Since macOS doesn't actually have Vulkan support directly, I was thinking translating Vulkan to OpenGL makes more sense there.

https://www.phoronix.com/news/Zink-macOS-OpenGL-Vulkan
That's likely where I got that idea.

Native OpenGL support on MacOSX and iOS has been deprecated years ago (meaning they won't outright remove it but they won't improve it nor fix it when it breaks)

Vulkan over OpenGL is very hard because it's a more flexible API that more closely resembles how a modern GPU works internally, while OpenGL is more abstracted and high-level, so it does a lot of stuff in the background for each command... easier to ask it to do X but harder to optimize (and damn hard to make it do exactly each thing you can do in vulkan without crazy wasteful workarounds). OpenGL over Vulkan isn't easy, but it sure is much much easier than that.

MacOSX and iOS also have no Vulkan support, but their Metal API is quite similar to Vulkan so there is MoltenVK to translate Vulkan to Metal... and this works quite cleanly with mostly zero overhead, the entire vulkan featureset and no big quirks.

It works so well that using Zync to provide OpenGL over Vulkan over MoltenVK over Metal works pretty much as expected when Zync is just running over Vulkan... and it is something pretty useful to have there because of OpenGL being deprecated.

For continuously developed apps like an Office Suite Apple's pressure over app devs seems reasonable (eg: making every app use the best APIs available and etc), but for gaming it's an impossible long-term proposition (because old games frequently don't even get simple updates, much less entirely rewritten).

What makes it a bit less impossible are exactly the efforts of 3rd-party opensource devs like the ones behing Zync, MoltenVK and etc.

In that realm it's hard to not admire the stuff that's modular, stackable, fully compliant to open standards, cross-platform, open to new maintainers so the torch is passed along and almost never goes out, etc.


Last edited by Marlock on 16 February 2023 at 2:13 am UTC
fenglengshun Feb 16, 2023
I hope this also helps nw.js games as well. Even with native nw.js, some RPG Maker MV/MZ games still runs awfully depending on what's going on in the screen.
TheRiddick Feb 18, 2023
Is Zink doing performance fixing on a per Game basis? if so it may take them a few hundred years to catch up. lol
Marlock Feb 18, 2023
Is Zink doing performance fixing on a per Game basis? if so it may take them a few hundred years to catch up. lol
They are, but most often than not it's not really for 1 game, just a more general improvement noticed because it affects 1 game more so that is what is noticed and triggers the effort to fix/improve it

Same thing as happens with WINE, where fixed bugs are even listed in changelogs in the version they notice a reported issue was fixed, not in the version that actually fixed it (because they often only notice a change helps game Y much later than it was made to help another issue in game X)
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.