Graphic drivers on Linux
To play games on Linux, you'll need to use the right graphics drivers. Linux hardware detection should just work but there are notable exceptions.
Gettings drivers
Don't download drivers from official websites. Even if it's the recommended way by some hardware vendors like AMD, that's not how it works on Linux. Most distributions should correctly detect and use appropriate open source drivers for your hardware by default (except for Nvidia). Follow your distribution official instructions to install graphics drivers if you aren't sure.
Linux Mint
Go to the "Driver Manager" from the launch menu, in the "Administration" tab to list available drivers[1]. Select the driver and click on "Apply Changes" to install them and reboot.
Ubuntu
Open the "Software & Updates", go to the "Additional Drivers" tab, select the driver and click on "Apply Changes" to install them. If you prefer to use a terminal emulator, you can run sudo ubuntu-drivers install
(it will choose the driver version automatically) and reboot your PC. If you want to install a specific version, run sudo ubuntu-drivers list
then sudo ubuntu-drivers install nvidia:535
for example[2].
Arch Linux
For Nvidia hardware, install the driver you need depending on your card and kernel[3]. Enable multilib[4] to install 32-bit libraries required by 32-bit games, update all your packages with sudo pacman -Syu
, install Nvidia 32-bit support[5] and reboot. If you want to use Archinstall to set up your system, there's a menu to install graphics drivers from different vendors[6].
Hardware vendors
Intel
On-board Intel graphics have already been officially supported by Intel and Linux for a number of years by the Mesa project which provides multiple open-source drivers. Your distribution will almost certainly use these drivers by default. Vulkan is also officially supported by a driver called "ANV" that is part of Mesa. Intel UHD Graphics shipped with Broadwell CPUs and later are targeted, with experimental support for Ivy Bridge integrated graphics[7].
The notable exception is Intel hardware based on the PowerVR chips (GMA 500, GMA 600, GMA 3600 and GMA 3650)[8][9][10]. There are no drivers for 3D acceleration and drivers for 2D acceleration have been unmaintained for several years.
AMD
AMD on Linux officially supports both open source drivers and closed source drivers. Most distributions should support and use the open source drivers by default (which are usually recommended) without any further configuration needed.
Radeon HD 7000 and newer
AMD cards produced since 2012 are supported by the RadeonSI driver that is part of the Mesa project. This driver supports OpenGL 4.6[11][12] for all hardware capable of it. This driver is likely to be installed and used by default by all major distributions. Vulkan support is also available and most distributions will install and use the RADV driver (also part of Mesa) by default, which is capable of Vulkan 1.4 support on most hardware[13].
For older hardware known as "Southern Islands" and "Sea Islands", Vulkan support depends on using the AMDGPU kernel driver and uses the kernel driver called Radeon by default. To switch to AMDGPU on these cards and get Vulkan support, you need to add amdgpu.si_support=1
and radeon.si_support=0
to your boot options[14].
There is an alternative Vulkan driver provided by AMD called AMDVLK[15]. There is generally not much advantage for using this driver for most users. This driver can also be used with the AMDGPU-PRO kernel driver but this is not required outside of specific use cases such as applications requiring OpenCL and does not provide significant advantages for most users.
Radeon HD 6000 and older
Radeon HD 6000 cards and older are supported by various drivers from the Mesa project. The r600g driver supports hardware codenamed R600 up to "Northern Islands"[16][17] and provides OpenGL 4.2 support to some card starting from "Evergreen"[18][19]. Hardware supported by r600g should work great for general desktop usage and provide acceptable performance for gaming.
Nvidia
Official drivers
Nvidia officially supports two drivers, both proprietary. One is completely closed and the other one only has its kernel modules open sourced. If you have a newer graphics card, you should use drivers with the open-source kernel modules and proprietary drivers if you have an older one[20]. Both drivers have better 3D performance, video acceleration support, better power management and better OpenGL support but they don't integrate with the rest of the graphics stack as well. If you want to play the latest and graphically intensive games, they're the drivers you should use.
Nouveau project
Nouveau is an open source drivers project. These ones are mostly unofficial as the vast majority of development is carried out via reverse engineering and Nvida only contributed a few times[21][22].
As of the release of "Maxwell" hardware (GTX 900 series), NVIDIA now require signed firmware to use their hardware[23]. In practice, this has meant long delays of up to 2 years for new hardware support[24] in Nouveau as NVIDIA has to provide the firmware to the Nouveau project themselves for the open source drivers to be able to work. With older hardware, Nouveau could automatically generate and extract the firmware.
VIA
VIA onboard graphics hardware isn't officially supported anymore. There is a reverse engineered open source driver called OpenChrome but it's not maintained either[25]. Video acceleration support is also limited[26] so stay clear of motherboards with VIA onboard graphics for almost anything Linux related.
Troubleshooting
S3 Texture Compression support
S3 Texture Compression is an algorithm commonly used in games. It was patented until October 2017[27], and so support was often not included by default in a number of distributions nor within Mesa.
A common visual artefact of missing S3TC support is black textures, assuming the game starts at all. If you see that issue, check if you're using a Mesa version earlier than 17.3.0 and if you have the S3TC support library installed (called libtxc-dxtn
or libtxc-dxtn-s2tc
in most distributions). S3TC support was added with Mesa 17.3.0[28][29], making libtxc-dxtn
no longer needed. Any distribution released from that point should include a version of Mesa with built-in support for S3TC.
See also
- Mesa Project - Official site of the Mesa project, the overarching project for open source OpenGL drivers (including Intel, AMD and unofficial NVIDIA) on Linux.
- X.org Wiki - Wiki for the X.org project (X server, drivers and various parts of the graphics stack)
- Freedesktop.org Wiki - Information on graphics drivers and desktop standards on Linux
- Wayland Wiki - Information on Wayland, the successor to the X server
- ↑ https://linuxmint-installation-guide.readthedocs.io/en/latest/drivers.html
- ↑ https://documentation.ubuntu.com/server/how-to/graphics/install-nvidia-drivers/index.html
- ↑ https://wiki.archlinux.org/title/NVIDIA#Installation
- ↑ https://wiki.archlinux.org/title/Official_repositories#Enabling_multilib
- ↑ https://www.gamingonlinux.com/guides/view/how-to-install-update-and-see-what-graphics-driver-you-have-on-linux-and-steamos/
- ↑ https://github.com/archlinux/archinstall/blob/master/archinstall/lib/hardware.py#L58
- ↑ https://wiki.archlinux.org/title/Intel_graphics#Installation
- ↑ https://en.wikipedia.org/wiki/Intel_Graphics_Media_Accelerator#PowerVR_GPU_series
- ↑ https://wiki.archlinux.org/title/Intel_graphics
- ↑ https://wiki.archlinux.org/index.php/Intel_GMA_3600
- ↑ https://www.phoronix.com/news/RadeonSI-GL-4.6-NIR-Lands
- ↑ https://www.x.org/wiki/RadeonFeature/#note_18
- ↑ https://docs.mesa3d.org/drivers/radv.html
- ↑ https://wiki.archlinux.org/title/AMDGPU#Enable_Southern_Islands_(SI)_and_Sea_Islands_(CIK)_support
- ↑ https://wiki.archlinux.org/title/AMDGPU#Installation
- ↑ https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units#Features_overview
- ↑ https://www.x.org/wiki/RadeonFeature
- ↑ https://www.x.org/wiki/RadeonFeature/#note_19
- ↑ https://www.phoronix.com/news/R600g-Rats-OpenGL-4.2
- ↑ https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/
- ↑ https://www.phoronix.com/news/NVIDIA-Open-GPU-Docs
- ↑ https://www.phoronix.com/news/MTQ0NzI
- ↑ http://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-Unfriendly-OSS-Hardware
- ↑ http://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-Releases-Signed-Blobs
- ↑ https://wiki.archlinux.org/title/Via_Technologies
- ↑ http://www.freedesktop.org/wiki/Openchrome/SupportedHardware/
- ↑ https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
- ↑ https://docs.mesa3d.org/relnotes/17.3.0.html
- ↑ https://docs.mesa3d.org/faq.html#why-isn-t-gl-ext-texture-compression-s3tc-implemented-in-mesa