AMDGPU vs. Radeon DRM On Linux 4.13 For AMD GCN 1.0/1.1 GPUs

Written by Michael Larabel in Display Drivers on 20 July 2017. Page 1 of 5. 53 Comments

With the Linux 4.13 kernel currently under development there are new module parameters that can make it easier switching from the Radeon DRM default on GCN 1.0 and GCN 1.1 GPUs to instead using the newer AMDGPU DRM driver, but Radeon remains the default. Here's my test experiences and benchmark results of AMDGPU vs. Radeon for GCN 1.0/1.1 GPUs.

As a quick reminder for those not following the space closely, the AMDGPU Direct Rendering Manager driver in the Linux kernel is used by GCN 1.2 GPUs and newer generations. Meanwhile, GCN 1.0/1.1 and pre-GCN hardware is using the "Radeon" DRM driver. But there is experimental support for using GCN 1.0/1.1 GPUs on AMDGPU the past few kernel releases.

Some users have been after using AMDGPU DRM with the older Graphics Core Next GPUs due to AMDGPU being the newer driver and that's where AMD's focus is, possible Vulkan support as RADV/AMDGPU-PRO is only implemented along the AMDGPU interfaces, improved memory management, and other possible benefits. With past kernels, using AMDGPU for GCN 1.0/1.1 required building the Linux kernel with special Kconfig options enabled for this experimental support followed by either blacklisting the Radeon DRM driver or not building the Radeon DRM code at all.

Beginning with Linux 4.13, AMDGPU and Radeon GCN 1.0/1.1 support can co-exist nicer thanks to some new module options added. Even if blacklisting the Radeon DRM, AMDGPU doesn't have GCN 1.0/1.1 support by default but requires setting amdgpu.cik_support=1 for GCN 1.1 support and amdgpu.si_support=1 for GCN 1.0 support. To get Radeon DRM to not bind to these generations of GPUs, radeon.si_support=0 and radeon.cik_support=0 must be set. So basically if you want to get AMDGPU working for Sea Islands and Southern Islands GPUs on Linux 4.13+, you need to append "radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1" to your kernel command line when booting the system.

In terms of the experience of using AMDGPU from Linux 4.13 on these older generations of AMD hardware, it was a decent experience. There are still regressions for DisplayPort on some of the GCN 1.0 GPUs I tested where using a DP connection to a 4K display did not work but it did when using Radeon DRM driver, but with AMDGPU the display did light up fine using a dual-link DVI cable instead. With regards to the RADV Vulkan experience, it was working for me with the GCN 1.1 R7 260X and R9 290, but wasn't working properly with the tested GCN 1.0 GPUs.

The graphics cards tested were the Radeon HD 7950, R7 260X, R9 270X, R9 290, and R7 370 based upon my available GCN 1.0/1.1 hardware. Due to the Vulkan GCN 1.0 problems, the tests were focused on a variety of OpenGL Linux games run via the Phoronix Test Suite.

Related Articles