Linux Arch : Switching From radeon to amdgpu Driver and Vulkan

Switching from Radeon driver to AMDGPU driver and setting up Vulkan support on Arch Linux can significantly boost Performance of your AMD graphics card, especially for gaming and GPU-intensive tasks. Below is a step-by-step guide on how to make the transition and ensure Vulkan is working smoothly.

Linux Arch : Switching From radeon to amdgpu Driver and Vulkan

Check Your Hardware Compatibility

First, you need to confirm if your AMD GPU is compatible with the AMDGPU driver. The AMDGPU driver generally supports newer GPUs (GCN 1.2 and later). To check your GPU model:

sudo lspci -k | grep -EA3 'VGA|3D|Display'

Look for a line that mentions VGA compatible controller And check which Radeon series you have. The AMDGPU driver supports the following:

  • Sea Islands (Volcanic Islands) and later are fully supported.
  • Older GPUs might still require the Radeon driver, or you can try using the experimental support in AMDGPU.

Identify Your GPU Code Name

If your GPU uses the radeon driver, you’ll want to find out whether it’s a Southern Islands GPU.

sudo inxi -Gazy
Check the output for your GPU's code name. If it belongs to Southern Islands you can switch to the amdgpu driver

Blacklisting the Radeon Driver

To switch to the AMDGPU driver, you need to disable the Radeon driver. Here's how you can do it:

  1. Open the terminal and create a new configuration file for the blacklist.
sudo nano /etc/modprobe.d/radeon.conf
  1. Add the following line to prevent the Radeon driver from loading:
blacklist radeon
  1. Save and close the file.

  2. Update your initramfs to apply the changes:

sudo mkinitcpio -P
  1. Reboot your system to apply the changes.

Enabling the AMDGPU Driver

By default, the AMDGPU driver may already be installed on Arch Linux. To confirm, run:

lsmod | grep amdgpu

If the AMDGPU driver isn't loaded, you might need to force it. Open a new configuration file for the AMDGPU driver:

sudo nano /etc/modprobe.d/amdgpu.conf

Add the following options to enable the AMDGPU driver:

options amdgpu si_support=1 cik_support=1

Save and close the file.

Once again, update your initramfs:

sudo mkinitcpio -P

Reboot your system.

Verify the AMDGPU Driver is in Use

After rebooting, verify that your system is using the AMDGPU driver:

sudo lspci -k | grep -EA3 'VGA|3D|Display'

You should now see the amdgpu module loaded for your graphics card.

Update the Arch Keyring and System

Ensure your system is up-to-date by refreshing the Arch keyring and performing a full system upgrade:

sudo pacman -Sy archlinux-keyring
sudo pacman -Syu

Installing Vulkan Support and Mesa for OpenGL Support

Vulkan is a modern graphics API that provides low-level access to your GPU. For AMD cards using the AMDGPU driver, Vulkan can drastically improve gaming performance. To install Vulkan on Arch Linux:

sudo pacman -S --needed mesa-utils vulkan-tools mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader

This installs the Vulkan drivers for both 64-bit and 32-bit applications. The 32-bit version is required if you're running any 32-bit games or software.

Testing Vulkan Support

Once Vulkan is installed, you can test if it’s working by running the vulkaninfo command:

vulkaninfo | less

If Vulkan is correctly installed, this command will print out detailed information about your Vulkan setup. Alternatively, you can use a graphical tool like vkcube to test Vulkan:

vkcube

If a spinning cube appears, Vulkan is working!

Additional Tweaks and Troubleshooting

  • AMDGPU Power Management:
    You can enable power-saving features in the AMDGPU driver by adding these options to your kernel parameters:

    options amdgpu.dpm=1 options amdgpu.dc=1

    Add the following options to enable power-saving features edit /etc/modprobe.d/amdgpu.conf

    sudo nano /etc/modprobe.d/amdgpu.conf

    update configuration 

    sudo mkinitcpio -P
  • Performance Optimizations:
    For gaming, you can also tweak the AMDGPU driver  by enabling performance flags such as:

    sudo nano /etc/modprobe.d/amdgpu.conf Add the following options to enable options amdgpu si_support=1 cik_support=1 deep_color=1

    This enables deep color support and additional features for better performance.

  • Switching Back to Radeon (Optional):
    If, for any reason, the AMDGPU driver doesn’t work well with your system, you can revert back to the Radeon driver by removing the blacklist file:

    sudo rm /etc/modprobe.d/radeon.conf

    And reboot your system again.

Conclusion

Switching from the Radeon driver to the AMDGPU driver on Arch Linux is relatively straightforward and can unlock additional features and better performance for your AMD GPU. With Vulkan support enabled, you'll be able to run the latest games and applications that benefit from low-level GPU access.

Feel free to test your new setup with games or benchmarking tools to see the improvements in action!