Difference between revisions of "User:LinixTree/Sandbox"
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | ===Graphics=== |
− | + | {{mm}} [https://wiki.archlinux.org/index.php/ATI ArchLinux Wiki's ATI] article | |
+ | {{mm}} [https://wiki.archlinux.org/index.php/AMDGPU ArchLinux Wiki's AMDGPU/AMDGPU Pro] article | ||
+ | {{mm}} [https://wiki.archlinux.org/index.php/NVIDIA ArchLinux Wiki's NVIDIA] and [https://wiki.archlinux.org/index.php/Nouveau Nouveau] articles | ||
+ | {{mm}} [https://wiki.archlinux.org/index.php/Intel_graphics ArchLinux Wiki's Intel Graphics] article | ||
− | + | The following table describe drivers which support different GPUs under Linux. | |
− | |||
− | |||
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Brand !! License !! Driver !! Library !! Supported GPUs !! Wayland Support | |
− | + | |- | |
− | + | | style="background: red; color: white;" rowspan="3" | '''AMD/ATI''' ||rowspan="2" | Open Source || AMDGPU || rowspan="2"| MESA (GLX and DRI) || GCN 1 to GCN 4 and newer architecture<sup>1</sup> || rowspan="3" | Yes | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | ATI || GCN 2 and older architecture | |
|- | |- | ||
− | | | + | |Proprietary || AMDGPU || AMDGPU Pro || GCN 3 to newer architecture |
|- | |- | ||
− | | style="background: #84DE02;" | ''' | + | | style="background: #84DE02;" rowspan="5"| '''NVIDIA''' || Open Source || Xorg Nouveau || Mesa (GLX and DRI) || Any NVIDIA GPU || Yes |
|- | |- | ||
− | | | + | |rowspan="4"| Proprietary || Nvidia 418 || NVIDIA 418 GLX || From Kepler based GPUs to recent || rowspan="2"| Yes<sup>2</sup> |
|- | |- | ||
− | | | + | | Nvidia 390 || Nvidia 390 GLX || Fermi architecture |
− | |||
|- | |- | ||
− | | | + | | Nvidia 340 || Nvidia 340 GLX || Tesla architecture ||rowspan="2"| No |
− | |||
− | |||
|- | |- | ||
− | | | + | | Nvidia 304 || Nvidia 304 GLX || From GeForce 6 series to Tesla architecture |
|- | |- | ||
− | | style="background: # | + | | style="background: #21ABCD; color: white;" rowspan="2" | '''Intel''' ||rowspan="2" | Open Source || Xorg Intel<sup>3</sup> || rowspan="2"| Mesa (GLX and DRI) || rowspan="2" | Any Intel HD Graphics GPU || rowspan="2"| Yes |
|- | |- | ||
− | | | + | |Xorg Modesetting |
|- | |- | ||
− | |||
|} | |} | ||
+ | <sup>1</sup> <small>- GCN 1 and 2 architecture support in AMDGPU is experimental.</small><br /> | ||
+ | |||
+ | <sup>2</sup> <small>- The proprietary one started to support Wayland since 364.12 version, however it uses the EGLStreams API.</small><br /> | ||
+ | |||
+ | <sup>3</sup> <small>- Do not use it on Intel HD 4000 series and newer GPU.</small><br /> | ||
+ | |||
+ | |||
+ | AMD/ATI GPU must use the open source driver as they provide the best performance than the proprietary ones, while NVIDIA users should stick to the proprietary ones. However there are some things to remember: | ||
+ | * '''Never install drivers from the respective GPU brand's website unless you are forced to!'''{{cn|date=Feb 2019|note=why not?}}. Installing them from the distro's repo is enough. | ||
+ | * Both AMD and Intel GPUs have a support for GBM API when it comes to Wayland, NVIDIA uses only EGLStreams which limits your Wayland usage to GNOME desktop only (Nouveau being and exception as it uses GBM) | ||
+ | * If forced to use Catalyst, Nvidia 173 or Nvidia 96 drivers, you must downgrade XOrg to the version it got the last support. | ||
+ | * Enable early KMS once you have installed the driver. | ||
+ | * Currently the open source driver for AMDGPU don't have some of the features from AMDGPU Pro (Such as HDMI audio), however the upcoming 4.15 version of Linux kernel will include DC/DAL features present in the former driver. It will be enabled by default for Vega cards and newer. But for the older ones you need to add <code>amdgpu.dc=1</code> into the kernel parameter after the release.<ref>https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-DC-Cleaning-Pre-4.15></ref> | ||
+ | * Before using the open source driver '''you must install LLVM and Linux Firmware''' (In case of Nouveau, it's Firmware as well) '''before installing the driver itself!''' | ||
+ | * As always when using the 64 bit system, install the 32 bit version of the drivers if possible. | ||
+ | |||
+ | ====List of 3rd-party repositories==== | ||
+ | '''Ubuntu/Linux Mint/Zorin OS/Pop! OS/Linux Lite/KDE Neon'''<br /> | ||
+ | |||
+ | Use <code>sudo add-apt-repository <PPA repository></code> to add one. Make sure to run <code>sudo apt update</code> in order to update the repository list after adding one. | ||
+ | {{Standard table|Repository|Description|content= | ||
+ | {{Standard table/row|ppa:paulo-miguel-dias/pkppa|[https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/pkppa/ Padoka Stable Mesa]. For AMD/Intel/Nouveau GPU drivers, also contains Wayland.}} | ||
+ | {{Standard table/row|ppa:paulo-miguel-dias/mesa|[https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/mesa Padoka Unstable Mesa]. Same as the previous, however it is the developer version. Mind the issues you may encounter. }} | ||
+ | {{Standard table/row|ppa:graphics-drivers/ppa|[https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa "Graphics Drivers" Teams' PPA]. Contains the recent proprietary NVIDIA drivers and the Vulkan drivers for that GPU. }} | ||
+ | {{Standard table/row|ppa:ubuntu-x-swat/updates|[https://launchpad.net/~ubuntu-x-swat/+archive/ubuntu/updates Ubuntu X Team's Stable Mesa]. For AMD/Intel/Nouveau GPU drivers, also contains Wayland.}} | ||
+ | }} | ||
+ | |||
+ | '''OpenSUSE'''<br /> | ||
+ | |||
+ | |||
+ | As of 10 August 2017, OpenSUSE Tumbleweed has an official NVIDIA RPM [https://www.reddit.com/r/openSUSE/comments/6slnlv/tumbleweed_gets_an_official_rpm_from_nvidia/], you can manually add the repository with this command | ||
+ | <pre> | ||
+ | zypper ar https://download.nvidia.com/opensuse/tumbleweed nvidia-tumbleweed | ||
+ | zypper inr (For installing) | ||
+ | </pre> | ||
+ | |||
+ | ====Vulkan support==== | ||
+ | {{ii}} [https://wiki.archlinux.org/index.php/Vulkan ArchLinux's Wiki Vulkan Article] | ||
+ | If your graphics card supports Vulkan API, you need to install additional driver package in order to enable the support, with the exception of Nvidia ones as they are already included and then install the Vulkan ICD Loader to let your GPU to use it on an application which supports it. These drivers are: | ||
+ | * ANV for Intel HD GPUs Vulkan driver | ||
+ | * RadV for community Open source AMD/ATI (Recommended) or AMDVLK for official open source AMD/ATI Vulkan driver | ||
+ | |||
+ | Depending on the distro you may have to install Mesa Vulkan Driver. As for the NVIDIA's proprietary drivers, you also need to install the Vulkan package or in case of other linux distributions (such as Antergos) it's already included with the main driver. | ||
− | + | ====Optimus Support==== | |
+ | {{ii}} [https://www.reddit.com/r/linux_gaming/comments/6ftq10/the_ultimate_guide_to_setting_up_nvidia_optimus/ NVIDIA Optimus Linux Guide] | ||
+ | {{--}} To this day the Optimus support in NVIDIA GPUs is still considered to be troublesome. It is recommended to use fixed release distributions for this case. | ||
+ | In case of laptops which contains NVIDIA Optimus support it is recommended to have PRIME enabled, which can be done by installing additional package, follow the distro’s documentation to learn which one. The alternative to it can be NVIDIA XRun package and Bumblebee's optirun/primusrun (Not recommended as it is no longer in development), but then the manual intervention is required (With the exception of the former). The linked guide will explain in detail the differences between them, as well as how to use them.<br> | ||
− | === | + | AMD users have a much easier time with that feature as it only requires running the game with the <code>DRI_PRIME=1</code> command. |
− | {{ | + | ====Xorg==== |
− | + | {{ii}} [https://www.x.org/wiki/ Main Page] | |
− | + | Xorg/X11 is the 1st display server released in 1986 which became a standard of creating Graphical user interface (GUI) for Linux. It received a major change during the popularity of Linux in 2000s. Despite the long support and being commonly used it has major issues which are still present today such as focus stealing, client and server separation which may lead to delays depending on the application it was made, tearing issues or even security ones which other user may capture key inputs from the keyboard. Depending on the desktop environment it also has accessibility issue for disabled users. Despite the release of its successor, Wayland, it is still maintained by Xorg Foundation and Free-Desktop.org. | |
− | |||
− | |||
− | |||
− | + | ====Wayland==== | |
− | + | {{ii}} [https://wayland.freedesktop.org/ Main Page] | |
− | + | Wayland is a successor to the Xorg/X11 server which allows to simplify the whole graphics stack without creating a Client while using a 3rd party compositor. It is only available for GPUs which have a Kernel Mode Setting support. Intel, ATI and AMDGPU, Nouveau have KMS enabled automatically by default albeit late, however when it comes to NVIDIA you must enable it manually.<br /> | |
− | + | ||
− | + | ||
− | + | The main benefit of the Wayland is a much faster response to programs compared to Xorg/X11 due to the simple communication between APIs. Keep in mind that you may need to add a command to inform you are running in that session to avoid using XWayland, which may affect the performance even if it has a support implemented. Such as games based on SDL2 like Team Fortress 2.<br /> | |
− | + | ||
− | + | ||
− | + | Bear in mind that if you want to use XWayland on NVIDIA GPU then you may be out of luck as the NVIDIA themselves stated that they have no plans for supporting XWayland, which pretty much forces you to use Xorg/X11 as a default GUI manager. [https://devtalk.nvidia.com/default/topic/925605/linux/nvidia-364-12-release-vulkan-glvnd-drm-kms-and-eglstreams/post/5188874/#5188874]<br /> | |
− | + | ||
− | + | ||
− | + | Here are the following GUI libraries with Wayland support: | |
− | + | * GTK3 - Supported and enabled by default since 3.20, if not, use the <code>GDK_BACKEND=wayland</code> command at the beginning. | |
− | + | * Qt5 - Requires the Qt5 Wayland package. After that you can run the Qt 5 application with the <code>-platform wayland</code> command prompt. | |
− | + | * SDL2 - Added in 2.0.2 enabled by default since 2.0.4. If not, use <code>SDL_VIDEODRIVER=wayland</code> command before running the application. | |
− | + | * GLFW - Install the Wayland version package of GLFW instead of X11, support added in 3.2. | |
− | + | * EFL - Enabled by default. | |
− | + | * Clutter - Included with clutter package | |
− | + | * FreeGLUT - Has initial support. | |
− | + | ||
− | + | <references group="rr note" /> | |
<references /> | <references /> |
Latest revision as of 17:37, 5 March 2019
Graphics
- ArchLinux Wiki's ATI article
- ArchLinux Wiki's AMDGPU/AMDGPU Pro article
- ArchLinux Wiki's NVIDIA and Nouveau articles
- ArchLinux Wiki's Intel Graphics article
The following table describe drivers which support different GPUs under Linux.
Brand | License | Driver | Library | Supported GPUs | Wayland Support |
---|---|---|---|---|---|
AMD/ATI | Open Source | AMDGPU | MESA (GLX and DRI) | GCN 1 to GCN 4 and newer architecture1 | Yes |
ATI | GCN 2 and older architecture | ||||
Proprietary | AMDGPU | AMDGPU Pro | GCN 3 to newer architecture | ||
NVIDIA | Open Source | Xorg Nouveau | Mesa (GLX and DRI) | Any NVIDIA GPU | Yes |
Proprietary | Nvidia 418 | NVIDIA 418 GLX | From Kepler based GPUs to recent | Yes2 | |
Nvidia 390 | Nvidia 390 GLX | Fermi architecture | |||
Nvidia 340 | Nvidia 340 GLX | Tesla architecture | No | ||
Nvidia 304 | Nvidia 304 GLX | From GeForce 6 series to Tesla architecture | |||
Intel | Open Source | Xorg Intel3 | Mesa (GLX and DRI) | Any Intel HD Graphics GPU | Yes |
Xorg Modesetting |
1 - GCN 1 and 2 architecture support in AMDGPU is experimental.
2 - The proprietary one started to support Wayland since 364.12 version, however it uses the EGLStreams API.
3 - Do not use it on Intel HD 4000 series and newer GPU.
AMD/ATI GPU must use the open source driver as they provide the best performance than the proprietary ones, while NVIDIA users should stick to the proprietary ones. However there are some things to remember:
- Never install drivers from the respective GPU brand's website unless you are forced to![citation needed]. Installing them from the distro's repo is enough.
- Both AMD and Intel GPUs have a support for GBM API when it comes to Wayland, NVIDIA uses only EGLStreams which limits your Wayland usage to GNOME desktop only (Nouveau being and exception as it uses GBM)
- If forced to use Catalyst, Nvidia 173 or Nvidia 96 drivers, you must downgrade XOrg to the version it got the last support.
- Enable early KMS once you have installed the driver.
- Currently the open source driver for AMDGPU don't have some of the features from AMDGPU Pro (Such as HDMI audio), however the upcoming 4.15 version of Linux kernel will include DC/DAL features present in the former driver. It will be enabled by default for Vega cards and newer. But for the older ones you need to add
amdgpu.dc=1
into the kernel parameter after the release.[1] - Before using the open source driver you must install LLVM and Linux Firmware (In case of Nouveau, it's Firmware as well) before installing the driver itself!
- As always when using the 64 bit system, install the 32 bit version of the drivers if possible.
List of 3rd-party repositories
Ubuntu/Linux Mint/Zorin OS/Pop! OS/Linux Lite/KDE Neon
Use sudo add-apt-repository <PPA repository>
to add one. Make sure to run sudo apt update
in order to update the repository list after adding one.
Repository | Description |
---|---|
ppa:paulo-miguel-dias/pkppa | Padoka Stable Mesa. For AMD/Intel/Nouveau GPU drivers, also contains Wayland. |
ppa:paulo-miguel-dias/mesa | Padoka Unstable Mesa. Same as the previous, however it is the developer version. Mind the issues you may encounter. |
ppa:graphics-drivers/ppa | "Graphics Drivers" Teams' PPA. Contains the recent proprietary NVIDIA drivers and the Vulkan drivers for that GPU. |
ppa:ubuntu-x-swat/updates | Ubuntu X Team's Stable Mesa. For AMD/Intel/Nouveau GPU drivers, also contains Wayland. |
OpenSUSE
As of 10 August 2017, OpenSUSE Tumbleweed has an official NVIDIA RPM [1], you can manually add the repository with this command
zypper ar https://download.nvidia.com/opensuse/tumbleweed nvidia-tumbleweed zypper inr (For installing)
Vulkan support
If your graphics card supports Vulkan API, you need to install additional driver package in order to enable the support, with the exception of Nvidia ones as they are already included and then install the Vulkan ICD Loader to let your GPU to use it on an application which supports it. These drivers are:
- ANV for Intel HD GPUs Vulkan driver
- RadV for community Open source AMD/ATI (Recommended) or AMDVLK for official open source AMD/ATI Vulkan driver
Depending on the distro you may have to install Mesa Vulkan Driver. As for the NVIDIA's proprietary drivers, you also need to install the Vulkan package or in case of other linux distributions (such as Antergos) it's already included with the main driver.
Optimus Support
- NVIDIA Optimus Linux Guide
- To this day the Optimus support in NVIDIA GPUs is still considered to be troublesome. It is recommended to use fixed release distributions for this case.
In case of laptops which contains NVIDIA Optimus support it is recommended to have PRIME enabled, which can be done by installing additional package, follow the distro’s documentation to learn which one. The alternative to it can be NVIDIA XRun package and Bumblebee's optirun/primusrun (Not recommended as it is no longer in development), but then the manual intervention is required (With the exception of the former). The linked guide will explain in detail the differences between them, as well as how to use them.
AMD users have a much easier time with that feature as it only requires running the game with the DRI_PRIME=1
command.
Xorg
Xorg/X11 is the 1st display server released in 1986 which became a standard of creating Graphical user interface (GUI) for Linux. It received a major change during the popularity of Linux in 2000s. Despite the long support and being commonly used it has major issues which are still present today such as focus stealing, client and server separation which may lead to delays depending on the application it was made, tearing issues or even security ones which other user may capture key inputs from the keyboard. Depending on the desktop environment it also has accessibility issue for disabled users. Despite the release of its successor, Wayland, it is still maintained by Xorg Foundation and Free-Desktop.org.
Wayland
Wayland is a successor to the Xorg/X11 server which allows to simplify the whole graphics stack without creating a Client while using a 3rd party compositor. It is only available for GPUs which have a Kernel Mode Setting support. Intel, ATI and AMDGPU, Nouveau have KMS enabled automatically by default albeit late, however when it comes to NVIDIA you must enable it manually.
The main benefit of the Wayland is a much faster response to programs compared to Xorg/X11 due to the simple communication between APIs. Keep in mind that you may need to add a command to inform you are running in that session to avoid using XWayland, which may affect the performance even if it has a support implemented. Such as games based on SDL2 like Team Fortress 2.
Bear in mind that if you want to use XWayland on NVIDIA GPU then you may be out of luck as the NVIDIA themselves stated that they have no plans for supporting XWayland, which pretty much forces you to use Xorg/X11 as a default GUI manager. [2]
Here are the following GUI libraries with Wayland support:
- GTK3 - Supported and enabled by default since 3.20, if not, use the
GDK_BACKEND=wayland
command at the beginning. - Qt5 - Requires the Qt5 Wayland package. After that you can run the Qt 5 application with the
-platform wayland
command prompt. - SDL2 - Added in 2.0.2 enabled by default since 2.0.4. If not, use
SDL_VIDEODRIVER=wayland
command before running the application. - GLFW - Install the Wayland version package of GLFW instead of X11, support added in 3.2.
- EFL - Enabled by default.
- Clutter - Included with clutter package
- FreeGLUT - Has initial support.