What Drivers to Install

On Linux, there are multiple drivers that one can install. Choosing the one you need can be difficult if you do not know what drivers are for what vendor and the perks and downsides of each option. This section explains all of that to better help you decide what you want or need.

AMD

There are 3 AMD GPU drivers: AMDGPU (Radeon Southern Islands and later), ATI (r300 and r600), and AMDGPU PRO (proprietary AMDGPU driver).

AMDGPU: this driver is for AMD GPUs that are Southern Island Cards or later. It is open source and is the most standard AMD GPU driver. This driver is in the Linux kernel and has two Mesa dri drivers: Gallium driver - radeonsi and Vulkan driver - amd.

ATI: this driver is for the ATI AMD GPUs which precede GCN GPUs. It is open source and targets older GPUs. The driver is in the Linux kernel and has three Mesa dri drivers: Gallium drivers - r300 and r600; and Vulkan driver - amd.

AMDGPU PRO: this driver is proprietary. Most users don't install this driver as the open source drivers are already well off. However, it is needed for hardware acceleration encoding, useful for those who wish to record and edit videos. Performance in games varies between the open source and proprietary drivers so the ending factor is if you record and edit videos or not. You will need the firmware and open source kernel driver for this driver.

Summary: If you are a regular user with a modern AMD GPU, use AMDGPU. If you have an older card, go with ATI. Use AMDGPU PRO if you want an improvement with hardware acceleration encoding.

Intel

Intel provides open source drivers, but for sake of simplicity, all the relevant open source drivers will be classified as one - i915. There is another driver called uvesafb.

i915: this driver, or rather collection of drivers, is for most Intel integrated and discrete GPUs. It is a single option in the Linux kernel but has various Mesa Gallium3D and Vulkan dri drivers. There is a good list on the MESA page under Command Explanations that will explain what Gallium3D and Vulkan driver you will need.

uvesafb: this driver is for the Intel GMA 3600 series, a family of integrated video adapters based on the PowerVR SGX 545 graphics core. This driver was in the kernel since 3.5 but no longer since 4.15. This driver is not included in the book because of its lack of use by most people, but has a good Arch Linux wiki page at https://wiki.archlinux.org/title/Intel_GMA_3600.

NVIDIA

The situation revolving around NVIDIA is more unfortunate than the two vendors listed above and more complicated. NVIDIA does not support open source drivers besides their own open source kernel modules. Therefore performance with the open source drivers, Nouveau and NVK, are worse than NVIDIA's proprietary driver, although installing the proprietary driver is easier and doesn't require installing lib32-mesa for multilib. There is another driver called Zink which translates Vulkan calls to OpenGL calls.

Nouveau: this driver is open source and has worse performance than NVIDIA. It is technically all a kernel driver, a Mesa Gallium3D driver, and Mesa Vulkan driver, although they have different parts and the Vulkan driver is often referred to as NVK, depsite being referred to as nouveau in Mesa's -D vulkan-drivers= option.

NVK: this driver is a new Mesa dri driver and in its production, involved several kernel patches. It is a Vulkan driver targetting Turing and later NVIDIA GPUs. It does provide better performance than Nouveau and is still improving. If you want to compile this driver, you are going to need Rust, and if you are doing multilib, are going to need the i686-unknown-linux-gnu target. Also make sure to install Nouveau if you want to install this driver.

Zink: this driver is a Gallium3D driver in Mesa-24.2.7, converting OpenGL calls to Vulkan calls, drastically improving performance. It isn't specifically related to Nouveau but as performance with Nouveau is not the best, using the Zink driver with NVK is a great idea.

NVIDIA: This is the proprietary driver and the most often recommended for NVIDIA GPU owners using Linux. The performance of this driver exceeds the open source alternatives and allows the use of NVIDIA's CUDA project, useful for hardware acceleration, improving performance of games and workstation applications. This driver has a lot of issues to this day but still provides better performance, thus its installation is provided in this book. Installing this driver also prevents the need to install lib32-Mesa and lib32-LLVM if you are doing multilib. Firmware also isn't needed as it is provided by this driver.

Summary: if you want good performance and care about workstation use cases, install NVIDIA. If you only use OpenGL applications and don't want the proprietary NVIDIA driver, use Nouveau. If you use a variety of applications and play games that utilize Direct3D and Vulkan, install both Nouveau and NVK. Installing Zink is a good idea, too.