AMDGPU

AMDGPU is Article description:: the next generation family of open source graphics drivers using the new Display Code (DC) framework for Vega GPUs and Raven Ridge APUs. It is however also capable of handling newer AMD/ATI Radeon graphics cards based on GCN1.1+, namely the Southern Islands, Sea Islands, Volcanic Islands, and Arctic Islands chipsets.

If the card in question does not appear in the Feature support section below, it is not supported by. In that case check the radeon article, which contains instructions for older open-source AMD/ATI Radeon graphics card drivers.

Prior to Kernel 4.15 DC (formerly DAL) was not included in the vanilla kernel sources, thus AMDGPU was not able to provide graphics output to a monitor.

Installation
Setting up a system to use requires identifying the proper card, installing the corresponding firmware, configuring the kernel, and installing the X11 driver.

Hardware detection
To choose the right driver, first detect the graphics card. Use for this task:

Check the output for one of the product names listed in the table below.

Feature support

 * 1 Support is optional in the kernel.
 * 2 Since kernel 4.7-rc6
 * 3 Experimental, optional support added since kernel 4.9-rc1
 * 4 usable for graphics output since kernel 4.15

Firmware
It is necessary to install the proper firmware (or microcode) for your card. Firmware files are provided by.

The firmware files installed this way will be incorporated into the kernel.

Kernel
Set the following kernel options for the graphic chipsets mentioned above:

The options from the menu need only to be set if the card supports HDMI or DisplayPort audio and you want to use it. On newer kernels where appears, that should also be set.

with works primarily for VEGA10 and RAVEN (with ) GPUs/APUs. Older cards can be activated in the kernel or using the kernel command line option amdgpu.dc=1 and provide better (but experimental) support than the older kernel module.

See the radeon article for more details about using HDMI/DisplayPort audio.

Incorporating firmware
The firmware package installed in an earlier section provides files in (for Volcanic Islands and Arctic Islands cards) and/or  (for Southern Islands and Sea Islands cards). Configure the kernel to use the correct firmware files by setting the following options:

should be replaced with the full list of filenames given with the chipset's name in the table below, separated by spaces. Use  to expand the filenames. E.g. for Volcanic Islands/TONGA, run

Then  is the string that should be put into the kernel configuration.

After expanding the firmware file names from the following table and copying them into the kernel configuration, save the configuration, then compile and install the new kernel and modules.

USE flags
Set the USE flags for the  driver as needed.

The package will be automatically emerged as a dependency of after setting VIDEO_CARDS following the instructions in the next section.

Emerge
Portage uses the VIDEO_CARDS variable for enabling support for various graphics cards in packages. Setting VIDEO_CARDS to  (see the feature matrix section above) and asking Portage to update changed  flags in the @world set will pull in the correct driver:

The system should now be prepared to use after the next reboot.

dpm
In most cases since Linux 3.13 is the default power management method. Unlike with and  methods enabling or disabling  must be done via kernel command line. Users who have GPUs older than HD5000 -series may need to add  on kernel command line to enable.

In most cases just enabling dpm is enough but there are some tunable settings. has three main modes of operating: battery, balanced and performance. The names are quite self-explanatory. To set the GPU to most performant mode the following command is needed to run:

Even if GPU is set to -mode it does not mean that the GPU is running with highest clockspeeds at all the time. This is the normal and intended way how dpm works. If it is desirable to run the GPU at the highest speeds all the time, even if there is no actual load, users can then run following command:

This manually overrides dpm's own bahaviour. This is however mainly intended for testing purposes but may also be useful when doing GPU benchmanks.

To give control back to dpm following command is needed to run:

Kernel
Older kernels which do not support the driver will not provide the  option. If this is the case, try emerging an unstable (denoted by a ) kernel.

SME
Currently, does not work with AMD Secure Memory Encryption (SME) enabled, so you need to disable its use either in the kernel configuration or on the kernel command line (i.e. in  as part of GRUB_CMDLINE_LINUX ).

AMD_MEM_ENCRYPT may remain enabled, but either AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT must not be set or the kernel command line option mem_encrypt=off must be used. With mem_encrypt=on doesn't load.

AMDGPU/RadeonSI drivers do not work
If the graphics card is not supported by including  and   alone in VIDEO_CARDS, try adding   to 's VIDEO_CARDS definition. For example:

After the values have been set update the system so the changes take effect:

Full-screen windows perform poorly
The installed version of may be too old. Try emerging an unstable version.

Pixel-wide line on left side of screen when X server is started when using a Southern Island card
Those using a Southern Island card may notice a pixel-wide line on the left of the screen in both the X server and console environments after having started a X server (This issue doesn't exist when using Linux 4.13 or newer). This is a known bug. Disabling audio through HDMI for that display resolves this issue. This may be done via:

where  should be replaced by the name of the output, obtained by running.

For more information please see https://bugs.freedesktop.org/show_bug.cgi?id=97861.

External resources

 * A list of RadeonSI articles on the Phoronix site.