Upgrade to kernel 4.8.17 | Switched from RADEON to AMDGPU

This week -- over Monday 15-Jan-2018 -- I upgraded my Linux kernel from 4.4 serie to 4.8 serie. It was the occasion to switch from Radeon module kernel to AMGGPU module kernel.

Some notes to keep in mind

  • Kernel 4.8.17 is an outdated kernel. At the date of writing this ticket, the most recent/stable kernel is 4.14
  • AMDGPU module is quite experimental
For those wondering my rig is a Linux 32 bit. (Yes it is even in 2018!). It is used
  • as multimedia workstation (Youtube, Mail)
  • for gaming -- only for small games, not AAA games --.
  • my own tests with Wine but on Linux 32 Bits for retro-compatibilty with some old libraries
AMDGPU module was built within kernel 4.8.17
root@amdgaming:~# grep -i AMDGPU /boot/config-4.8.17
CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_CIK=y
CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_AMDGPU_GART_DEBUGFS=y
I had to blacklist RADEON
  • root@amdgaming:~# cat /etc/modprobe.d/blacklist-radeon.conf
    blacklist radeon
    
  • Once booted on this kernel, files used by kernel 4.8.17 were refreshed
    update-initramfs -u -k $(uname -r) && reboot
This is the command line I am currently using
root@amdgaming:~# cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-4.8.17 root=UUID=8092ec20-bb12-4e08-9863-8ab86481aced ro \
amdgpu.dpm=1 amdgpu.deep_color=1 amdgpu.pcie_gen2=1 amdgpu.powerplay=1 amdgpu.exp_hw_support=1 amdgpu.smc_load_fw=1 amdgpu.audio=0 \
radeon.modeset=0 radeon.pcie_gen2=0 radeon.audio=0 radeon.dpm=0 nouveau.pstate=1 kvm.ignore_msrs=1 intel_iommu=on,igfx_off vfio_iommu_type1.allow_unsafe_interrupts=1 \
i915.enable_hd_vgaarb=1 quiet splash nomdmonddf nomdmonisw vt.handoff=7
It implies to build xf86-video-amdgpu -- for Xorg Server as driver--. Refer to https://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu/
mkdir -pv /opt/Sources
cd /opt/Sources
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-amdgpu
mkdir -pv /opt/Builds/xf86-video-amdgpu_build
cd  /opt/Builds/xf86-video-amdgpu_build
/opt/Sources/xf86-video-amdgpu/autogen.sh --enable-maintainer-mode --prefix=/usr/ --enable-glamor --enable-udev
make -j4 && make install

Is it worth switching from RADEON to AMDGPU?

That was my main concern for this week...

But my Linux systems works perfectly for the past days. No real issue with this kernel and this driver.

The only solution is to run some benchmarks tests through Wine and natively on Linux. This way I should be able to discriminate

For the tests shown below I had to switch ShadowPrimary to Off. -- Its default value is "Off --. But since I used this parameter explicitly in my configuration file, this is a personal reminder for myself

david@amdgaming:~$ cat /etc/X11/xorg.conf.d/01-amdgpu-glamor-dri3.conf
Section "Screen"
       Identifier     "Screen"
       DefaultDepth    24
       SubSection      "Display"
               Depth   24
       EndSubSection
EndSection

Section "Device"
	Identifier "AMDGPU"
	Driver "amdgpu"
	Option "Accel" "on"
	Option "AccelMethod" "glamor"
	Option "DRI" "3"
	Option "TearFree" "on"
	Option "ShadowPrimary" "off"	
EndSection

Test 1: Unigine Valley: Wine-Staging 2.21 | Gallium-Nine | Mesa 17.3.1 | AMDGPU | Kernel 4.8.17 | RX 290X

Back in 2015, Gallium Nine performed pretty well. Here I am doing the same test but for
  • Quality = High
  • Vsync = Off
To be honest I keep it mind that performances depends on 4 metrics
  • 3D Engine used for the game
  • Your 3D Drivers
  • The GPU
  • Wine features for 3D Rendering
But this quick test should be useful compared to the test I did 2 years ago

Test 2: Unigine Heaven 4.0: Natively on Linux | Mesa 17.3.1 | AMDGPU | Kernel 4.8.17 | RX 290X

  • Quailty = Ultra
  • Tessellation = Extreme
  • Anti-aliasing = x8
Compared to a few videos I watched on youtube, I came to the conclusion that it works pretty well

Conclusion: Yes AMDGPU runs pretty well!!!

Bye RADEON!!!