Erik Faye-Lund
July 25, 2019
Reading time:
Here's an overview of the recent changes in Zink since the previous post, as well as an exciting announcement!
OK, so I haven't been as good at making frequent updates on as I was hoping, but let's try to make up for it:
Since last time, there's quite a lot of things that has been resolved:
gl_FrontFacing has been implemented.glPointSize() to gl_PointSize has been implemented. This means you can use glPointSize() to specify sizes instead of having to write the gl_PointSize-output from the vertex shader.gl_FragDepth has been implemented.glShadeModel(GL_FLAT) to flat interpolation qualifiers. This still doesn't give us the right result, because Vulkan only supports the first vertex as the provoking vertex, and OpenGL defaults to the last one. To resolve this in a reasonable way, we need to inject a geometry shader that reorders the vertices, but this hasn't been implemented yet. You can read more about this in this ticket.In addition to this, there's been a pretty significant rewrite, changing the overall design of Zink. The reason for this, was that I made some early design-mistakes, and after having piled a bit too many features on top of this, I decided that it would be better to get the fundamentals right first.
Sadly, not all features have been brought forward since the rewrite, so we're currently back to OpenGL 2.1 support. Fixing this is on my list of things I want to do, but I suspect that cleaning things up and upstreaming will take presedence over OpenGL 3.0 support.
And just to give you something neat to look at, here's Blender running using Zink:

Khronos has been nice enough to give me a slot in their Vulkan Sessions at the Khronos BoFs during SIGGRAPH 2019!
The talk will be a slightly less tech-heavy introduction to Zink, what it does and what the future holds. It will focus more on the motivation and use cases than the underlying technical difficulties compared to my previous talks.
So, if you're in the area please drop by! A conference pass is not required to attend the BoF, as it's not part of the official SIGGRAPH program
Visit Erik's blog.
02/12/2025
As an active member of the freedesktop community, Collabora was busy at XDC 2025. Our graphics team delivered five talks, helped out in…
24/11/2025
LE Audio introduces a modern, low-power, low-latency Bluetooth® audio architecture that overcomes the limitations of classic Bluetooth®…
17/11/2025
Collabora’s long-term leadership in KernelCI has delivered a completely revamped architecture, new tooling, stronger infrastructure, and…
11/11/2025
Collabora extended the AdobeVFR dataset and trained a FasterViT-2 font recognition model on millions of samples. The result is a state-of-the-art…
31/10/2025
Collabora has advanced Monado's accessibility by making the OpenXR runtime supported by Google Cardboard and similar mobile VR viewers so…
27/10/2025
By resolving critical synchronization bugs in Zink’s Vulkan–OpenGL interop, Faith Ekstrand paved the way for Zink+NVK to become the default…
Comments (2)
QwertyChouskie:
Jul 26, 2019 at 11:18 PM
I'm curious to know if SuperTuxKart still runs properly after the re-write. It would be pretty cool to have STK running on next-gen consoles using Zink :)
Reply to this comment
Reply to this comment
Erik Faye-Lund:
Aug 08, 2019 at 06:57 PM
Hi, sorry for not noticing this post before! Yeah, SuperTuxKart works like a charm for me, even faster than before :)
Reply to this comment
Reply to this comment
Add a Comment