The AMD proprietary driver on Linux is fast but buggy, and the open source driver has now become awesome – here’s how to get the open source driver with the new performance improvements.
Why Use Open Source Graphics Drivers?
Users of non-Intel graphics have historically had to use the proprietary graphics drivers provided by AMD and Nvidia to get the performance they’d expect. This is still the case for Nvidia users, as the open source “Nouveau” driver is severely limited; however, AMD users now actually have a choice. Recent releases of the Linux kernel plus the AMD open source graphics driver have improved performance by quite a bit – to the point where using the proprietary driver is no longer a requirement.
While the open source AMD graphics drivers still aren’t on par to the performance of the proprietary “Catalyst” graphics driver, they’ve certainly improved to a point where most games have beyond playable frame rates. This can be advantageous for a few reasons, including the fact that most other software (sans games) tends to work better with the open source drivers – their use is expected and their capabilities are known.
It’s also the open source drivers that always work with the latest kernel version, and they’re the only drivers that work with the Wayland-enabled Gnome Shell desktop. In other words, by using the open source drivers you’re saving yourself a lot of grief and hassle.
The downside to using them is that you’re not getting true performance out of the hardware, and you don’t have full OpenGL support (3.0 instead of 4.3). If you’re playing the latest and greatest games on Linux, don’t be surprised if some of them require that you use the proprietary drivers.
Don’t believe me that performance has significantly improved? Take a look at these benchmarks performed by Phoronix; you’ll see that performance has improved substantially over a short time period. Certain workloads provide an even bigger boost. Thankfully, there’s not much that you need to do to take advantage of these benefits.
Use the Latest Kernel
Ideally, you should be running the latest Linux kernel: version 3.13 (at time of writing) or newer. Many distributions aren’t quite that bleeding edge, so you might need to wait until the next distribution release before you receive the improvements via stable channels. If you don’t want to wait, you can find out ways to upgrade to the latest Linux kernel on your own.
Ubuntu users can do this by downloading the kernel and related header files from the kernel mainline page, as this helpful post describes. Fedora users can upgrade by temporarily enabling the rawhide repository, or by simply waiting a little while – Fedora users usually receive the next kernel iteration within a month of release.
If you’re not running on Linux kernel 3.13, then you should at least try to get your hands on 3.12. While this version of the kernel doesn’t have all of the improvements that 3.13 does, it still has the main features that offer the bulk of the performance improvements.
To enable this, you’ll need to go to your GRUB configuration file (located at /etc/default/grub), and add the following to the kernel arguments: radeon.dpm=1.
This enables dynamic power management, which allows your graphics chip to scale up its frequency so it can perform better. Before this, your graphics chip would always be stuck at the lowest operating frequency, providing subpar performance.
Update the Graphics Backend
If you can, it’s also a good idea to update Mesa to the latest version. Mesa is a framework which allows the drivers to communicate with the system, and it also offers OpenGL support. If you’re unable to do so, as updating Mesa could be somewhat complicated, it’s not a big deal – updating the kernel is the most important thing to do.
If you’re using Ubuntu you can add the Oibaf and Xorg-Edgers repositories. Then you’ll be running on the latest X.org X server, the latest Mesa build, and the latest graphics drivers. All three of these parts take some of the responsibility for your graphics performance (you can find a longer explanation here), so for the maximum boost you’ll want to look at updating all three.
Be sure to read the instructions for both repositories before adding them. If you’re running a different distribution, you’ll have to look this up yourself to see whether it’s possible besides resorting to compiling the code yourself.
Here’s a bonus tip for you: Linux kernel 3.13 now offers audio through HDMI by default, something that previously had to be enabled manually. If you’re running the latest release of your favorite distribution, then the included kernel should be modern enough to offer good enough support for audio through HDMI, even if it isn’t enabled by default.
If you’d like to enable it, head to your GRUB configuration file again, and this time add the following to the kernel arguments: radeon.audio=1. Restart your computer and you should be able to play audio through your HDMI cable.
It’s great to see how quickly open source drivers have been improving, and there’s still plenty of room to improve even more. If you’d like to enjoy these performance increases and any future ones, be sure to keep all of your software packages as up to date as possible. With these improvements, you can make use of some awesome AMD APU builds.
Do you use open source graphics drivers? Why or why not? Let us know in the comments!
Image Credit: Phoronix