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.
10/04/2025
Three demos. One stand. From end-to-end HDR and a brand-new SoC running PanVK, to NVK and WebGPU out of the box — discover how Collabora…
09/04/2025
Collabora once again played a key role in the latest release of GStreamer, contributing enhancements such as improved hardware efficiency,…
26/03/2025
The kernel release emphasizes the continuing growth and maturity of the Linux ecosystem and delivers new features, improvements, and optimizations…
Comments (2)
Dimitrios Anogiatis:
Mar 13, 2025 at 07:13 AM
Thank you for all your hard work
I own a laptop that has an Intel Integrated/Geforce GT740M graphics chipset (Optimus setup). The laptop is still pretty usable and I hate to retire it because of drivers that don't support hardware acceleration... and it's one of the models that won't have legacy drivers for very long on my chosen daily-driver distribution (Debian).
Is there a path forward for a driver that supports Nvidia architectures older than Turing with Zink + NVK? or will owners of older hardware like me, will have to use proprietary legacy drivers?
Thank you in advance for your answer.
Reply to this comment
Reply to this comment
Violet Stone:
Mar 24, 2025 at 04:14 AM
NVK is planned to support all the way back to Kepler, isn't it?
Reply to this comment
Reply to this comment
Add a Comment