Ex windows user here. I really like my Linux installation, but I don’t know where the drivers are at, or if I should worry about it.
It feels great to have one less thing to worry about (I use an AMD GPU), but GPU drivers in Windows seem to have their own release cycle, fixing game compatibility and bugs, while in Linux it also feels like we have to wait for a next kernel release to get that fix.
Or maybe it’s mesa? I don’t really understand that.
TL;DR: where are the open source drivers at? Mesa or the kernel? And also, is the release cycle the same or close to Windows counterpart? Or it just doesn’t matter?
I will try to put it simply
- the linux kernel provides the hardware compatibility in a general sense.
- Then the driver for your specific card is coming as a kernel module, in your case amdgpu, which is the open-source driver that works very well, but amdgpu-pro is the proprietary driver from AMD and most NVidia users will also install the proprietary module.
- Finally you have libraries implementing APIs to OpenGL, Vulkan, video decoding, etc. All of those are bundled in software packages, that depend on your distro. In your case you can most certainly install a MESA package that will give you everything you need, compatible with the Kernel you have.
In summary, drivers come in 3 parts: Linux kernel, kernel module, libraries. Usually you install a driver that provide you the module and libraries compatible with the kernel. You rarely have to worry where they exist on the filesystem, and nowdays most distro will automatically detect and install what you need.
Ok, no that simple in the end 😅
Refer to the other comment for where it is. The release cycle depends on your distro. If you use arch, you’ll always get the latest stuff as it releases. That’s the thing that makes arch a good choice for gaming.
Other distros are generally more delayed or only release major versions that don’t break anything.
For nvidia this means you have specialized distros created for the sole purpose of having a working nvidia driver that come in different versions because even the ‘stable’ versions aren’t very stable. With AMD, you basically don’t need to worry.
The second part is bonkers. Most distro ship with the non free Nvidia driver and work well with it. Shit starts hitting the fan if you try to use the setup from nvidias website, which is not a problem of any distro but a user error
My Tipp: don’t use niche distros: arch, debian, fedora, mint…all of them work well with the non free Nvidia kernel module. For fedora you have to add an additional repository if I remember correctly but that’s it
Ok, I think I get it. But let’s say that AMD releases a windows driver with a fix for a new game. How much should I wait for that same fix to arrive in arch? Will it arrive as a new kernel? As a new mesa version? Or something else?
That fix for the windows game won’t necessarily be a fix for your distro. What distro are you running and what do you want to do with your system?
Arch (btw), and gaming mostly.
I don’t get why you’re mentioning the distro, though.
To give you an example, the latest Windows driver says it adds support for some games: https://www.amd.com/en/support/kb/release-notes/rn-rad-win-23-11-1
But for Linux…
- Linux drivers don’t seem to have game related fixes in their release notes: https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-23-10-2
- I’ve never installed these drivers in Arch, nor needed to do so. I install them, I think, using AMDGPU + vulkan-radeon, right?
I could be wrong here, but perhaps those game “updates” are just adding profiles specific for those games into GeForce Experience/Adrenalin. I’ve never needed a game specific update driver for Nvidia, and from what I’ve heard on the AMD side of things - generally you don’t either. Every now and then a new Mesa build might make things work for a game better however, which is why they mentioned the distro (although I think the Steam Flatpak tends to include the newest Mesa anyways).
Since neither manufacturer has a dashboard for Linux, there are no updates needed.
Most game support related updates come from Proton/WINE/etc on the Linux side of things, not the drivers in my experience. Have a look at the Proton release notes, and you’ll see game specific updates generally landing there
I’m mentioning the distro as Arch has a very different update path than Debian. Different package managers handle drivers differently. Also there are different Security decisions between say Rocky and Mandriva. All of this will affect drivers. Linux is just the kernel your distro is your OS it’s not just a DE there are a lot of decisions being made that aren’t just GUI.
Valve uses Arch for a reason keep to that. Stay up with Proton reporting and update your whole system regularly and read patch notes. However if you want the latest and most stable experience just mirror whatever Valve is calling Steam OS these days
For Arch and AMD you can just use the AUR as it’ll grab whatever is best for your setup. Most linux games and bug fixes are focused on the community drivers. However if you’re seeing somewhere that the proprietary drivers will give you benefit you can install the amdgpu_pro driver.
It’s a mix of mostly (using Arch Linux package names here) mesa, vulkan-radeon, linux-firmware and linux (in particular the amdgpu module). Your package manager should update all of these for you when prompted and updates are available.
I personally use an Nvidia card, so someone more knowledgeable can correct me.
For the open source drivers, Its a combination of both an AMDGPU (newer cards) or ATI (older cards) kernel module, alongside the
mesa
package, which provides 3D acceleration and OpenGL support. There is a separate package for Vulkan support too, eithervulkan-radeon
oramdvlk
. For hardware video decoding, there islibva-mesa
for VA-API, andmesa-vdpau
for VDPAU support.So yeah, Windows has one monolithic drivers .exe, and Linux has it all split out into separate chunks. How quickly you get updates depends on your choice of linux distro.
Thanks! I think this pretty much answers my question. I installed all those packages but wasn’t sure why they all weren’t in one package.