Free Linux driver for Nvidia GPU will support OpenGL via Vulkan in future

With newer GeForce GPUs, Linux distributions will use a driver for OpenGL applications that hands over the actual work to a Vulkan driver.

listen Print view
A penguin looks, in front of water

(Image: heise online / dmk)

4 min. read
By
  • Thorsten Leemhuis
Contents

In future, Linux distributions will rely on the "Zink" driver for Nvidia's modern graphics chips for 3D acceleration of OpenGL applications. The universal driver supports OpenGL 4.6 and does not address the graphics hardware directly, but delegates the actual work to a Vulkan driver. For GeForce GPUs, this is "NVK", a driver that a Collabora developer Faith Ekstrand has been driving forward for around three years, ever since Nvidia published an open-source kernel driver for its modern graphics chips.

Apart from this, NVK has nothing to do with Nvidia's own driver, as NVK addresses GeForce GPUs via other drivers. For older GPU generations, this is the "Nouveau" driver, which has been included in the Linux kernel for a long time, and for the latest generations, the newer "Nova" driver.

The latter is not written in C, but in Rust. The main driving force here is Red Hat developer Danilo Krummrich, who submitted the first components of the driver for inclusion in the official kernel on Sunday. It is therefore still quite possible that these will be included in Linux 6.15, which should be released in the second half of June. However, it is more likely that it will be a later version. In any case, we are only talking about the first parts, so there is still a long way to go to achieve extensive practical suitability and good performance.

Nvidia's own kernel driver will probably never be included in the Linux kernel. This is partly because Nvidia changes the interfaces to userspace drivers for Vulkan, video acceleration, OpenGL, etc. with every major revision –, which is taboo for Linux.

Videos by heise

However, the change in OpenGL support only affects graphics chips since the Turing generation –, i.e. GeForce cards since the GTX 16 and RTX 20 generations introduced in 2018. For older GPUs, the OpenGL driver "Nouveau" remains, which, like NVK and Zink, belongs to the Mesa graphics driver library and driver collection and, confusingly, has the same name as the kernel driver on which it is based.

Common Linux distributions install Mesa and its drivers by default, which means that the change to the OpenGL driver now made for version 25.1 affects all users with corresponding new Nvidia GPUs. According to an accompanying blog post by lead NVIDIA developer Ekstrand, this should slightly improve stability and performance for users. Version 25.1 should be released in around three to four months.

Most owners of such cards are likely to use Nvidia's own proprietary driver stack, as the kernel and OpenGL drivers included in Linux and Mesa do not support the modern chips particularly well. With NVK and Nova, however, the situation should improve significantly in the medium term.

The Mesa driver Zink, which has been developed since 2018, saves developers a lot of work as they can concentrate fully on their Vukan driver for 3D acceleration. It is therefore already becoming apparent that other developers will also want to rely on Zink in the future in order to save themselves the work on a hardware-specific OpenGL driver.

Thanks to many optimizations made to Zink in recent years, 3D performance with Zink should reach approximately the level of native OpenGL drivers. To achieve this, however, developers must also coordinate them with each other. With the change now, Zink should also reach new user groups, so it is quite likely that there will still be bugs in the driver – just like with any other new graphics driver.

(vbr)

Don't miss any news – follow us on Facebook, LinkedIn or Mastodon.

This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.