SDB:AMDGPU

Jump to: navigation, search

AMD portal edit

AMD Hardware

Drivers

  • Open source:
AMDGPU
Radeon
  • Proprietary:
AMDGPU-PRO
AMD fglrx


Version: Leap 42.2 and newer The AMDGPU driver provided for openSUSE Leap 42.2+.

Intro

AMDGPU is the next generation family of open source graphics drivers for newer AMD Radeon graphics cards based on the Graphics Core Next chips, ranging from GCN1 (Radeon HD 7730+) up to the latest graphics cards. Check which chip you have with this wikipage. GCN3 and newer architectures use AMDGPU driver by default. For older chips (Terascale 1, 2, 3) use radeon and r600 drivers, because they are incompatible with amdgpu driver.

This guide is to help you install the AMDGPU open source AMD drivers for video cards from GCN1 to most recent chips only.

Check HCL:AMD video cards to select the driver that best suits your hardware first before proceeding.

Installation

The kernel driver (AMDGPU) should be used because it provides better performance, compatibility, and advanced features for AMD Radeon GPUs. It is integrated into the Linux kernel and handles low-level functions like memory management and power management.

The xf86-video-amdgpu package should be installed when specific features or functionality related to Xorg are required. This could include fine-tuning display settings, enabling hardware acceleration for X-based applications, or dealing with compatibility issues that may arise with older AMD GPUs.

To install the kernel-firmware-amdgpu package, use the following command:

sudo zypper install kernel-firmware-amdgpu

This package includes firmware files necessary for the proper functioning of AMD Radeon GPUs with the amdgpu kernel driver.

You can install the xf86-video-amdgpu package. This package provides the Xorg display driver for AMD Radeon-based graphics cards. Command:

sudo zypper install xf86-video-amdgpu


Hybrid Graphics Configuration

For laptops with discrete AMD GPUs, the primary graphics will be handled by the integrated Intel GPU to optimize battery life. However, the AMD GPU can be activated when necessary for specific applications through a process called "offloading".

To configure this, you'll need to add kernel parameter to the Boot Loader settings. You need these kernel parameters only for GCN1 & GCN2. With these kernel parameters VGA output might not work.

Here's how:

Open YaST and go to the Boot Loader configuration.

Select the Kernel Parameters Tab and add the following parameters:

Use this if you have a Southern Islands GPU (HD 7000 Series, SI, GCN 1).

radeon.si_support=0 amdgpu.si_support=1

Use this if you have a Sea Islands GPU (HD 8000 Series, CIK, GCN 2).

radeon.cik_support=0 amdgpu.cik_support=1

If you are unsure about the type of your GPU, you can add both sets of parameters to cover both possibilities.

Save the changes and proceed to reboot your machine for the new settings to take effect.

By specifying these parameters, you inform the kernel to use the amdgpu driver instead of the radeon driver, ensuring proper utilization of the AMD GPU. This configuration allows for efficient power management and dynamic switching between GPUs as needed.

To check which kernel driver is currently loaded, you can run the following command:

lspci -k | grep -A 3 -E "(VGA|3D)"

This command will display information about the VGA or 3D controller, including the loaded kernel driver and its associated modules. You'll be able to verify if the amdgpu or radeon driver is being used for your AMD GPU.

To test that the AMD GPU is available, open a terminal and run

xrandr --listproviders

The output should be similar to this:

Providers: number : 2
Provider 0: id: 0x69; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 7; 
associated providers: 1; name: modesetting
output eDP-1
output VGA-1
output HDMI-1
output DP-1
output HDMI-2
output DP-2
output HDMI-3
Provider 1: id: 0x3f; cap: 0xd (Source Output, Source Offload, Sink Offload); crtcs: 0; outputs: 0; associated 
providers: 1; name: AMD Radeon HD 8600M Series @ pci:0000:01:00.0

Take notice of two key points: First, that there are 2 providers. Provider 0, is the Intel GPU, the second, Provider 1, is the AMD. Take note that Provider 1 is AMD.

To test that the AMD GPU is properly usable run the following in termrinal:

DRI_PRIME=1 glxinfo | grep “OpenGL renderer”

The output should be similar to this:

OpenGL renderer string: AMD Radeon HD 8600M Series (HAINAN / DRM 3.23.0 / 4.16.8-1-default, LLVM 6.0.0)

In order to offload the graphics processing to the AMD GPU for more graphic intensive applications, prepend any application with DRI_PRIME=1

For example, to run all Steam games using the AMD GPU not the Intel, from terminal:

DRI_PRIME=1 steam

This can also be added in the menu for executing an application. Through your menu editor or .desktop file, DRI_PRIME=1 can be prepended to any application you want to be offloaded to the AMD GPU. This should work for applications such as games, emulators, engineering applications like FreeCAD and so forth.


See also

Related articles

External links