Difference between revisions of "Graphic drivers on Linux"
(→Via) |
m (→Further Reading: Rename section and remove outdated link) |
||
(One intermediate revision by the same user not shown) | |||
Line 61: | Line 61: | ||
VIA onboard graphics hardware isn't officially supported anymore. There is a reverse engineered open source driver called [http://www.freedesktop.org/wiki/Openchrome OpenChrome] but it's not maintained either<ref>https://wiki.archlinux.org/title/Via_Technologies</ref>. Video acceleration support is also limited<ref>http://www.freedesktop.org/wiki/Openchrome/SupportedHardware/</ref> so stay clear of motherboards with VIA onboard graphics for almost anything Linux related. | VIA onboard graphics hardware isn't officially supported anymore. There is a reverse engineered open source driver called [http://www.freedesktop.org/wiki/Openchrome OpenChrome] but it's not maintained either<ref>https://wiki.archlinux.org/title/Via_Technologies</ref>. Video acceleration support is also limited<ref>http://www.freedesktop.org/wiki/Openchrome/SupportedHardware/</ref> so stay clear of motherboards with VIA onboard graphics for almost anything Linux related. | ||
== | == S3 Texture Compression support == | ||
[https://en.wikipedia.org/wiki/S3_Texture_Compression S3 Texture Compression] is an algorithm commonly used in games. It was patented until October 2017<ref>https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent</ref>, and so support was often not included by default in a number of distributions nor within [https://mesa3d.org/ 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 <code>libtxc-dxtn</code> or <code>libtxc-dxtn-s2tc</code> in most distributions). S3TC support was added with Mesa 17.3.0<ref>https://docs.mesa3d.org/relnotes/17.3.0.html</ref><ref>https://docs.mesa3d.org/faq.html#why-isn-t-gl-ext-texture-compression-s3tc-implemented-in-mesa</ref>, making <code>libtxc-dxtn</code> no longer needed. Any distribution released from that point should include a version of Mesa with built-in support for S3TC. | |||
== | == See also == | ||
* [http://mesa3d.org/ Mesa Project] - Official site of the Mesa project, the overarching project for open source OpenGL drivers (including Intel, AMD and unofficial NVIDIA) on Linux. | |||
* [http://www.x.org/wiki/ X.org Wiki] - Wiki for the X.org project (X server, drivers and various parts of the graphics stack) | |||
* [http://mesa3d.org/ Mesa Project] - Official site of the Mesa project, the overarching project for open source OpenGL drivers (including Intel, AMD and | * [http://www.freedesktop.org/wiki/ Freedesktop.org Wiki] - Information on graphics drivers and desktop standards on Linux | ||
* [http://www.x.org/wiki/ X.org Wiki] - Wiki for the X.org project | * [http://wayland.freedesktop.org/ Wayland Wiki] - Information on Wayland, the successor to the X server | ||
* [http://www.freedesktop.org/wiki/ Freedesktop.org Wiki] - | |||
* [http://wayland.freedesktop.org/ Wayland Wiki] - Information on Wayland, the successor to the X server |
Latest revision as of 09:23, 17 May 2025
Graphic Drivers
To play games on Linux, you'll need to use the correct graphics card drivers. Ordinarily, Linux should "just work" and detect the correct drivers for your hardware. However, there are notable exceptions, and graphics cards are one of them. Below is an overview of each major hardware vendors stance on Linux support, as well as where to find the appropriate drivers. For example, if you want to play the very latest, graphically intensive games Nvidia users will probably need the proprietary drivers while AMD users are recommended to use the open source drivers. Generally speaking, most distributions should correctly detect and use the appropriate open source driver for your hardware by default.
Intel
On-board Intel graphics have already been officially supported by Intel and Linux for a number of years, with the i965 driver (part of the Mesa project) covering most Intel hardware for the past 10 years. Your distribution will almost certainly carry and use these drivers by default. Some distributions may offer a means to install more recent versions of the driver, which may have improved performance or better OpenGL support. Check your distribution specific documentation. These drivers currently support OpenGL 3.3 for all capable hardware with some hardware supporting up to OpenGL 4.6.
Vulkan is also officially supported with the driver called ANV that is part of the Mesa project, Intel (U)HD Graphics shipped with Broadwell CPUs and later are targeted, with experimental support for Ivy Bridge integrated graphics.
The notable exception is Intel hardware based on the PowerVR chips produced by Imagination Technologies, particularly the GMA 500, GMA 600, GMA 3600 and GMA 3650, which serve as the integrated graphics for some Intel Atom Z5XX and Z6XX processors. There are no drivers for 3D accelaration and drivers for 2D acceleration have been unmaintained for several years. Avoid these whenever possible. More information on this topic can be found at these links:
- https://en.wikipedia.org/wiki/Intel_Graphics_Media_Accelerator#GMA_500
- https://wiki.archlinux.org/index.php/Poulsbo and https://wiki.archlinux.org/index.php/Intel_GMA_3600
- http://web.archive.org/web/20170202103150/http://powervr.gnu.org.ve/doku.php
AMD
AMD on Linux officially supports both open source drivers and closed source drivers. The open source drivers as a whole currently support OpenGL 4.6 and Vulkan (with some complications, see below) on almost all capable hardware, with older hardware still supporting up to OpenGL 3.3 core profile. Most distributions should support and use the open source drivers by default, without any further configuration needed.
What follows is a more thorough description of the various drivers for AMD hardware.
AMD HD 7xxx and Newer
AMD cards produced since 2012 are supported by the RadeonSI driver that is part of the Mesa project. This driver provides support for OpenGL 4.6 for all hardware capable of it. This driver is likely to be installed and used by default for all current distributions. No further configuration is usually needed unless your distribution does not provide a means to install newer versions of Mesa for bugfixes or new features.
Vulkan support is also available. Most distributions will install and use the radv driver (also part of Mesa) by default, which is capable of Vulkan 1.2 support on most hardware.
An important caveat is that for older hardware, Vulkan support depends on using the AMDGPU kernel driver. Older hardware, known collectively by the codename "Southern Islands", 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. Check your distribution specific documentation for how to do this. The Arch Linux wiki contains a more in-depth explanation on how to do this.
There is an alternative Vulkan driver provided by AMD, called AMDVLK. 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 professional use cases (such as applications requiring OpenCL) and does not provide significant advantages for most users.
AMDVLK can be downloaded here:
https://github.com/GPUOpen-Drivers/AMDVLK/releases
And AMDGPU-PRO packaged with AMDVLK can be downloaded here:
https://www.amd.com/en/support/kb/release-notes/rn-rad-lin-19-50-unified
AMD HD6xxx and Older
Older cards are supported by the r600g driver from the Mesa project. The r600g driver supports hardware codenamed r600 up to "Northern Islands", providing OpenGL 4.1 core profile support for hardware that is capable of it. Hardware that is supported by r600g should work great for general desktop usage and provide at least acceptable performance for gaming. Most Linux distributions should use these open source drivers by default with no further configuration required.
For information on what hardware features are supported by the latest open source drivers, as well as which specific driver supports your card. see the official feature matrix at the following links:
- http://www.x.org/wiki/RadeonFeature - General overview of supported hardware
- http://mesamatrix.net/ - Information on OpenGL support in the open source drivers
NVIDIA
NVIDIA has 2 officially supported drivers, both proprietary, one of which is for "legacy" hardware and one for more recent hardware. There is a project for open source drivers named "nouveau", but these are mostly unofficial - the vast majority of development is carried out via reverse engineering. The only cases where NVIDIA has contributed to Nouveau has been for ARM related graphics support (e.g. for GPU's aimed at phones, tablets etc.) and some infrastructural work e.g. to provide support for GPU switching/offloading between integrated graphics and dedicated graphics chips often seen in laptops. The proprietary drivers have better 3D performance, video acceleration support, better power management and better OpenGL support, but doesn't integrate with the rest of the graphics stack as well.
As of the release of "Maxwell" hardware (GTX 900 series) in April 2015, NVIDIA now require signed firmware to use their hardware[1]. In practice, this has meant long delays of up to 2 years for new hardware support[2] 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.
For more information on feature and hardware support in the nouveau drivers, see the official feature matrix (might be slightly out of date). Make sure to cross reference the code names listed with this index of code names and marketing names.
If you wish to contribute to the nouveau project, you can find information on how to do so here. If you want to help but do not have any development expertise, you can donate hardware to the project to help with their reverse engineering efforts.
For the proprietary drivers, you can get the latest version of NVIDIA's driver here.
Once again, it's recommended to use the version that is provided by your distro (if it provides them).
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[3]. Video acceleration support is also limited[4] so stay clear of motherboards with VIA onboard graphics for almost anything Linux related.
S3 Texture Compression support
S3 Texture Compression is an algorithm commonly used in games. It was patented until October 2017[5], 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[6][7], 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
- ↑ 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