Faith Ekstrand
March 11, 2025
Reading time:
Starting with Mesa 25.1, Nouveau users will no longer get the old Nouveau OpenGL driver by default and will instead get Zink+NVK. Unlike most OpenGL drivers which are written to target the underlying hardware directly, Zink is an OpenGL implementation written on top of Vulkan. We've been talking about this for a while but we finally landed the MR today. If we did this right, most users wouldn't even notice beyond getting a slightly more stable experience with better performance.
Zink has matured a lot since the initial blog post in 2018. It has grown to support OpenGL 4.6 and is a conformant implementation on top of multiple hardware drivers. It's also improved significantly in performance and stability over the last few years. At this point, we're fairly confident that Zink+NVK will be an improvement over Nouveau GL across the board.
Compatibility layers are fairly common in Graphics. Around 10 years ago, Keith Packard developed Glamor, which implements X rendering in OpenGL. Glamor, combined with the Modesetting driver, has allowed us to delete nearly all the hardware-specific X11 back-ends, and X11 now uses the same kernel and userspace APIs as a Wayland compositor. This has allowed driver teams to focus on the OpenGL and Vulkan drivers and stop worrying about X rendering. Microsoft has done similar things with Direct3D. No hardware vendor has shipped a hardware D3D8 driver in a long time and they've released layers implementing D3D9 and D3D11 on top of D3D12, paving the way for hardware vendors to drop everything before D3D12 entirely.
Often, it takes some time before the switch over to a compatibility layer is complete. The old drivers are battle-tested and the fear is always that the compatibility layer may introduce performance regressions or application issues. Nouveau is the first Mesa driver stack to make this change so we've been finding and fixing a lot of issues ahead of the rest of Mesa. Part of what makes Nouveau a good trailblazer here is that the old Nouveau GL driver is actually pretty bad, so "Don't be worse than the hardware driver" isn't as high a bar for us as for other drivers. NVK, on the other hand, is proving to be pretty solid and Zink+NVK seems to be working well.
Eventually, I hope to see other driver teams follow suit and sunset their hardware GL drivers in favor of Zink. This process will most likely take several years as Zink likely still has bugs that need fixing. One day, though, Zink will hopefully be good enough and the effort of maintaining two complete userspace driver stacks won't be worth the tiny performance benefits of avoiding the layer.
11/03/2025
Using Mesa 25.1, Nouveau users will default to Zink+NVK instead of the old OpenGL driver, shifting towards an OpenGL on Vulkan.
10/03/2025
Towards the end of 2024, MediaTek and Collabora started on a journey to improve upstream support for MediaTek Genio devices. Here's where…
07/03/2025
Apertis v2025 has landed with all the updates from Debian 12.9. This release has a variety of updates including new supported boards, improved…
Comments (0)
Add a Comment