There’s no doubt about it: AMD’s Linux graphics drivers are behind Nvidia’s, something that will start mattering a lot more when Valve’s first Linux-based Steam Machines start hitting the market this November.
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.
Nvidia is still maintaining its lead over AMD on Linux, and new games still target Nvidia hardware. Middle-earth: Shadow of Mordor recently launched on Linux thanks to Feral Interactive, but it only officially supports Nvidia graphics cards. The official FAQ says you’ll experience poor performance if you attempt to run it on an AMD graphics card.
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.
AMD’s new graphics driver architecture
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.
Further reading: Linux gaming rising: 25 killer games for Steam Machines and Linux
While AMD isn’t going completely open-source as Intel did with its graphics drivers, it’s much more open-source-friendly than Nvidia’s strategy of going it alone. Linux developers have wanted closed-source kernel modules to go away for a long time, too. For more details, read Phoronix’s report on AMD’s new Linux driver strategy.
This driver should appear over 2015, and the “AMDGPU” kernel driver is set to debut in Linux 4.2. (Yes, we’re already past Linux 4.0 !) However, the driver is in a very early state and has a long way to go. Don’t expect to be using it any time soon.
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.