Trying Out a full AMD Build on Linux
I recently changed my computer, going from a 17'’ laptop with relatively mid-tier specs, to a beefier desktop PC. Since I was making a change, I thought I could also switch from team blue/green to team red, so I opted for a full AMD build. AMD on Linux has often been praised for the quality of its open source drivers and the ease of use and installation, so I was expecting perfectly smooth sailing.
While almost everything went great, there have been a few disappointments along the way. Let’s take a look.
Installing on the machine
This PC is an upper-mid range computer. I went for a Ryzen 5 2600, so 6 cores at 3.4ghz, able to turbo boost up to 3.9Ghz. Compare this to my previous core i5 7300HQ, and you get a nice boost in performance and core count. It came with an hybrid disk of 1Tb, which I’ll make sure to supplement with a big SSD, as well as 16Gb of DDR4 memory, which is double the amount I used to work with.
The graphics card is an AMD Radeon RX580, compared to my previous 1050TI mobile. I get double the VRAM (8gb vs 4Gb) and a huge boost in performance, on paper.
All in all, the experience should have been a lot smoother and more responsive than my older laptop, which was no slob either. And it was !
I installed my trusty elementary OS Juno on it, which was fast and painless. Every single piece of hardware in that tower was recognized immediately, once I figured I should plug the monitor in the HDMI port of the graphics card (duh). So far, so good !
I then plugged in the usb wifi adapter that came with the machine, and the first problem arose: apparently, Linux still doesn’t have access to drivers for all of these little dongles, and even though this one detected my network, it was unable to connect to it. It’s based on a realtek chipset, and I still have to find a reliable tutorial to enable it to work correctly. That’s not a problem with AMD or the desktop build, so I’ll leave it at that.
Gaming
Now comes the interesting part: one of the main aspects of this machine is to enable higher framerate while gaming at 1080p, which the 1050Ti was barely able to provide at mid settings. With an RX580, I thought I was golden, and that’s kind of the case. First, to make sure I had the latest drivers, I had to take heed of the AMD driver situation on Linux. And boy is it weird.
See, with Nvidia, you have the “nouveau” driver, which is good for basic acceleration, but not powerful enough for gaming, or the proprietary Nvidia driver, which is a breeze to install, and delivers great performance, and Vulkan support, at the price of some screen tearing.
On AMD, you have the radeon driver, for older cards, the amdgpu driver, and the amdgpu-pro driver. There also is the proprietary fglrx / Catalyst driver, which seems deprecated. The radeon driver is a standalone, the amdgpu needs mesa to work, and the amdgpu-pro doesn’t use mesa, but some proprietary blobs instead. Frankly, this is a mess, and there is no easy, graphical way to determine which driver is currently in use (you can use a command line to figure that out, but this is in now way obvious to a regular user). I’m not even sure I got all that right.
Thing is, I already had the AMDGPU driver, which, apparently, is the one you want. I decided to make sure I had the latest version, so I added a PPA to update everything. After a reboot, everything was still working, and I installed Steam.
Native games ran fine, for the most part. Counter Strike Go, and older game, was around 120FPS with maxed out settings, which was to be expected. Total War Warhammer 2, with max settings, ran at 60fps, on the map and in a battle, which was nice as well, since it was not reaching these framerates even in medium on the previous GTX 1050Ti.
Dawn of War 3, though, was another problem entirely. I ran its graphics test, and was surprised it didn’t reach an average of 60Fps. This is an RTS game, with good graphics, but nothing stellar, and it just didn’t run well. Lowering the settings helped a little, but not too much. Then I tried to run it with Vulkan, and it simply crashed.
Turns out I had to install Libvulkan AND the mesa vulkan drivers, which apparently are not installed with the AMDGPU driver. Still, that allowed me to launch the game with Vulkan, only to find that performance was even lower than without it. It might be a case of poor optimization on Linux and AMD, but this was a bit underwhelming.
I then moved on to Windows games. I could run a variety of games through Steamplay and proton thanks to the recent advancement on the Steam front, and my GTX 1050Ti supported proton and DXVK pretty well. Not so with AMD, apparently, even though Vulkan was, at the beginning, an AMD project.
I could not run Warhammer: End Times — Vermintide without switching it to use WineD3D11, which is basically the regular implementation of Direct X 11 from Wine, and performance was terrible, in the low 20s, even at medium detail. My laptop could run this game through DXVK at 60fps at the same level of detail, so that was a bummer.
I then moved on to Space Hulk — Deathwing (not a great game, but I enjoy 40K, and there are not a lot of other options). This one had the same issue than on my laptop, which is opening it fullscreen breaks it. Once started in windowed mode, it ran perfectly with DXVK, at 60fps on maximum settings.
I have to try more games yet, but this first run was a mixed bag. Some games ran fine, as good as expected, and some others were noticeably worse than on my lower specced machine. I must admit I’m a bit disappointed, but that’s the gaming situation on Linux as of now: it kinda works, but it’s patchy.
Video rendering
Now here is the second usage I was planning to use that computer for. And on this front, it didn’t disappoint. Kdenlive (flatpak version) ran like a charm. I got fantastic framerates even in the preview monitor, though it still tanks when previewing a wipe or when compositing a lot of video or image tracks.
Rendering times were cut down significantly: while using 6 threads instead of the previous 4, my most complex video took a full 6 minutes less to render: 52 minutes versus the 58 it took on the laptop. This difference might seem small on paper, but that’s a full 10% reduction in rendering time, and I could push the rendering to use 12 threads for a potential higher gain. That specific video is a KDE and GNOME comparison, here for reference:
This was to be expected, but it still blew me away. The processor runs hot, though, very hot, and the cooler is very noisy on that build, you can hear it from the other room of my (allegedly small) flat.
All in all, this build is powerful, and runs Linux very nicely. I had to do absolutely zero tweaks to get any of the default hardware working, I only updated the drivers, but that was not necessary to use the machine. Now, if I could find a solution to get that USB Wifi adapter working, and solve my Vermintide problem, I’ll be set for a few years.
PS : if you want to check out this build on video, here it is !