AMD hasn’t turned the ship around yet, and big-name games are still only supporting Nvidia hardware when they launch on Linux. But AMD hasn’t been sitting on its hands. AMD’s developers are working on a new Linux driver architecture that will result in better open-source drivers, too—eventually.
How has AMD been doing?
Before we dive into that, though, let’s recap what’s happened since out last look at the subject of Linux graphics drivers.
Phoronix recently discovered you can boost the performance of Counter-Strike: Global Offensive on Linux when you’re using an AMD graphics card just by renaming the “csgo_linux” binary to “hl2_linux”. This will give you as much as a 40 percent graphics boost. The AMD Catalyst driver has application profiles designed for Source engine games, but AMD’s developers haven’t bothered adding csgo_linux to the application profiles—despite Counter-Strike: Global Offensive having been out for a year at this point.
Application profiles are commonly used across operating systems and drivers, so this is normal. What looks bad for AMD here is how slow it’s been to maintain these application profiles when compared to Nvidia on Linux and even AMD’s own profiles on Windows.
It’s not all bad for AMD users. AMD released Catalyst 15.5 Linux in early June. Phoronix ran some benchmarks and put it bluntly: “Metro Last Light Redux and Metro 2033 Redux no longer run like garbage on AMD Linux.” That’s an improvement, but the AMD Catalyst graphics drivers are still behind Nvidia’s. And that was the only game that noticeably improved in performance with the new drivers.
Currently, there are two main AMD graphics drivers on Linux. There’s the open-source “Radeon” driver and the closed-source “Catalyst” driver. As with Nvidia’s drivers, the open-source driver is fine for just using a graphical desktop with AMD graphics cards, but you’ll want the closed-source driver to get maximum gaming performance.
AMD has now been pursuing a “unified” Linux driver strategy and writing an entirely new driver. This driver, known as “AMDGPU,” will have a single Linux kernel module, which will be open-source. The closed-source Catalyst code will continue to exist, but it will be a smaller “binary blob” that runs in userspace. Open-source fans who don’t need maximum gaming performance can skip the Catalyst blob and use an entirely open-source driver.
This driver will only be used for new AMD graphics cards. It will only support the very latest GPUs and future AMD graphics hardware.
The new structure could help a lot. Rather than two entirely separate drivers with separate kernel modules, there will be a single open-source kernel driver. The closed-source Catalyst part of the driver becomes much smaller and confined to userspace. AMD won’t have to update the Catalyst driver whenever there’s a new Linux kernel or X.org X server release. It will automatically be compatible because the Catalyst driver is a smaller piece of code that hooks into the open-source AMD driver included in the projects themselves.
In the long run, this could be what helps AMD close the gap with Nvidia when it comes to Linux graphics drivers. We should all hope so, anyway—it would be best for Steam Machines if AMD and Nvidia were competitive.