AMDGPU PRO

From ArchWiki
Jump to navigation Jump to search


Note: For Users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might no work as expected due to different MESA implementations(see #Intel + AMD hybrid graphics and this developer response)

The amdgpu-pro-installer contains proprietary components for AMDGPU (a.k.a. Radeon Software for Linux).

For proprietary OpenGL implementation, install amdgpu-pro-libglAUR. See AMDGPU#AMDGPU PRO for more details.

For proprietary OpenCL implementation, install opencl-amdAUR. See GPGPU#AMD/ATI for more details.

For proprietary Vulkan implementation, install vulkan-amdgpu-proAUR. See Vulkan for more details.

For Advanced Media Framework implementation, install amf-amdgpu-proAUR. See FFmpeg#AMD AMF for more details.

Troubleshooting

Intel + AMD hybrid graphics

Currently (as of version 19.30) there is a problem when using the AMDGPU Pro OpenGL driver alongside with an Intel GPU. It is a common configuration for laptops, but also applies to desktop users in case you set your Intel GPU as primary. When you boot your machine, you will get a black screen, but with your mouse cursor moving normally. If you have a suggestion, please edit this Wiki page. Reverse PRIME could probably be a solution, but PRIME#Reverse PRIME lacks this information.

If you are affected, please upvote this bug report.

Uninstalling packages

If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to amdgpu pro. Switch to the tty2 (ctrl+alt+f2), login to the system and run pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ") and reboot.

Southern Islands (SI) or Sea Islands (CIK) GPUs

If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running clinfo, you get:

amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.

then ensure you are using amdgpu driver, but not radeon. Check which driver is currently in use with lspci -k:

03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]
        Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265
        Kernel driver in use: radeon
        Kernel modules: radeon, amdgpu

See AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support for more information.

How to ensure you are using AMDGPU-PRO driver

Run the following command:

$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs

If it returns AMD, then you are running open source driver. If it returns Advanced Micro Devices, Inc., then you are running proprietary driver.

Alternatively, run glmark2. When using open driver, in OpenGL Information you will see:

   GL_VENDOR:     AMD
   GL_RENDERER:   Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)
   GL_VERSION:    4.6 (Compatibility Profile) Mesa 20.3.3

But when using closed driver, you will see:

   GL_VENDOR:     ATI Technologies Inc.
   GL_RENDERER:   Radeon RX 580 Series
   GL_VERSION:    4.6.14756 Compatibility Profile Context

Workaround for using proprietary OpenGL

As of version 20.20_1098277-1 you can use proprietary OpenGL with workaround. You need to install amdgpu-pro-libglAUR only before launching application that requires it (DaVinci Resolve in most cases). Remove it, after your are done. Otherwise, your Display Manager (sddm, for example) could not be loaded at next system boot. In case you are already in such situation, just switch to the tty2 (Crtl+Alt+F2), login to the system and remove amdgpu-pro-libglAUR. Then run systemctl restart sddm.service, then switch to tty1.

Alternatively, you can extract the amdgpu-pro-libglAUR package to a non-root location, then launch the program that requires the drivers with the following environment variables:

$ LD_LIBRARY_PATH="$PACKAGEPATH/opt/amdgpu-pro/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}" LIBGL_DRIVERS_PATH="$PACKAGEPATH/usr/lib/x86_64-linux-gnu/dri/" dri_driver="amdgpu" command

As of 20.45_1188099-5, you do not need to use workaround. Just launch your application with progl prefix, for example:

$ progl glmark2