2014-01-09



I have a brand new AMD graphics card and I assume someone might be interested in how it works in Fedora 20. This post summarizes my experiences with it.

A week ago I’ve bough MSI Radeon R9 270 GAMING 2G. It’s an upper mid-range card and most new games should run on it reasonably well on high details. In Fedora there are two choices – you can either use the default open-source radeonsi driver, or you can install proprietary catalyst driver. I have tried general system functionality and also a lot of games (through Steam) on both drivers.

RadeonSI driver

The GNOME desktop itself works without a glitch. Everything is fluent and I haven’t noticed any problems whatsoever. However, there are some other issues:

You need to enable dynamic power management manually. Without DPM, the card runs at the lowest speed profile all the time. Enabling it is really simple, you just add radeon.dpm=1 to the kernel command line. From kernel 3.13 this should be enabled automatically. With DPM, the card automatically switches between low and high speed profiles depending on its utilization. DPM worked without problems for me. More information.

GTK primitives rendering is extra slow. I stumbled upon this when I ran gtkperf test, gtk primitives (like lines and circles rendering) is 4 or 5 orders of magnitude (!!) slower than with catalyst (or the integrated Intel graphics card). Fortunately, these primitives are not used much. They were used in old GUI frameworks like Motif. However, you can still find it here and there, for example in some old software installers or in game settings dialogs (like Amnesia: The Dark Descent). Operating such interfaces is really slow. Unfortunately, there is one further example where GTK primitives are used, which is LibreOffice Calc. Even medium-sized spreadsheets are unusable with radeonsi driver I might still find some other problematic software, but up to date, I’ve found only the LibreOffice Calc to be a quite show-stopper. Freedesktop bug 68524, freedesktop bug 71813.

Fan speed is higher than with Catalyst. It seems that there are three ways how to affect graphics card fan speed – there is a profile in its vbios, there is another profile in the driver and then there can be a user defined profile. The vbios profile kicks in during computer start and boot, the driver profile kicks in during operating system video initialization (setting graphical mode) and user profile can be enabled by a custom application. Radeonsi doesn’t currently support driver or user defined profiles, so only the vbios profile is used. Unfortunately, the manufacturer (MSI) set the default idle fan speed to 40%, so with radeonsi your fan speed will never go below that, no matter how cool the card is. It’s not loud, but it’s audible. With catalyst driver, the fan speed in idle is 18%, which is truly inaudible. Quite a pity. Freedesktop bug 73338.

When it comes to gaming, the current state is very very sub-optimal. Even though the usual open source games available in Fedora repositories (like OpenArena and Xonotic) run very well, a lot of commercial games simply crash. I suppose they require some OpenGL extensions that are not implemented in the driver, or they simply hit some bugs in the driver. If they run, the performance is quite bad. I’ve tested quite a few games and compiled a list showing how well they run, it’s available here. Basically any modern 3D game didn’t run for me (crashed or performed poorly). I’ve also made some benchmarks, see below.

Catalyst driver

If you want to use the catalyst driver, prepare for some serious headaches:

The driver is no longer available in RPMFusion. The maintainer orphaned the pacakge and no other volunteer appeared. That means you’ll need to download the official installer from AMD website and install it with every kernel update. You won’t receive new kernel modules automatically from RPMFusion, nor you will have have akmod (automatic module compilation) setup easily for you. FedoraForums discussion.

GNOME doesn’t work with Catalyst in Fedora 20. GNOME shell and apps were compiled with Wayland support, which uses libEGL library. Catalyst currently doesn’t ship this library, so all the software crashes. At least that’s my understanding. You can either use Fedora 19, or some other desktop environment (I don’t know about KDE, but XFCE should work; however, you still can’t use any of affected apps even in a different environment), or download packages recompiled without wayland support from untrusted sources (not recommended, and of course it also prevents you from updating your system). This sucks really hard, it’s a show-stopper for most people . FedoraForums discussion, RPMFusion bug 2914, GNOME bug 712340, AMD bug 949, Phoronix discussion.

You can’t switch from game to desktop. If you hit Alt+Tab during gameplay (in games which support it), you don’t see the regular switcher widget. When you hit Win key (in GNOME), you don’t see the overview. Everything actually happens (you can tell because your mouse cursor changes), but you see the game all the time (even though your keyboard input might control a completely different application). This means that you effectively can’t switch your game and your desktop/other apps (even though it actually happens), because the image does not redraw.
Update: With Catalyst 13.11 Beta 9.95 this works much better. If you hit Win key, you see the overview mode and can switch applications. If you hit Alt+Tab, you see the switcher widget, but you need to operate it with a mouse. Sometimes it’s quirky – in Dota 2 I needed to hold Alt+Tab for several seconds to manage to switch, in Amnesia I saw a black screen for 10 seconds after returning to game, and Champions of Regnum behaved like an always-on-top window. Also in the overview mode the game thumbnail is not correctly updated. But generally it works.

Video overlays don’t work in Totem. If you watch a fullscreen video in Totem and wiggle your mouse, you don’t see any overlay widgets, even though you can click on them (blindly). So in order to jump forward or backward in the video, or adjust the volume, you need to unfullscreen it. I think this is connected to the previous problem, again it’s some kind of overlay over video/GL context and it is not rendered correctly. VLC works fine, though.
Update: This seems fixed with Catalyst 13.11 Beta 9.95.

You can’t control your desktop over VNC. If you set up a VNC server and connect to it, you won’t receive any screen updates (even if you want to force them from the client). You can click on stuff, but you see just a still picture. If you reconnect, you see an updated (and again still) image. VNC is simply unusable. I tried only the GNOME integrated server, it might work better with other servers, I don’t know.

Gaming is much better with catalyst driver. Most games work, and their performance is good. According to some online benchmarks, the Linux performance is still lower than Windows performance, but the gap is definitely smaller than between radeonsi and catalyst. With a few games I had graphical glitches issues and in some games I saw some stuttering (FPS is high but you experience mini-lags every short while). But in general it simply works. Again, the list of games with some notes is here.

Phoronix Test Suite

Because I’m a benchmark freak, I tried to run some tests and compare the results between radeonsi, catalyst, and my integrated Intel graphics card. I was looking for some automated way of doing it and I’ve found Phoronix Test Suite. It’s a neat piece of software, packaged in Fedora, and allowed me to simply (in an automated fashion) run a series of tests and even drew graphs of the results for me. It’s simple to operate and I really recommend it. Of course it has some rough edges, but what doesn’t.

Most of the tests consist of open source software, and as I said before, the radeonsi driver performs really well with those and generally doesn’t crash. So these results look quite optimistic in this regard. In real life, however, most commercial apps don’t perform as well or crash immediately, as mentioned before. I didn’t benchmark those, because it seemed as too much manual work. I think the current test set is enough for a simple overview. If you see a missing item in the results, it means that either the test crashed on that driver, or was so slow that I couldn’t finish it in reasonable time (the GTK primitives rendering).

Here’s a trailer of the result graphs. Full results are here.

Conclusion

The situation is far from perfect. I really understand why Steam survey shows only 1% of Linux players in its user base. It’s hard to play in Linux with such graphical drivers. I bought an AMD card because I wanted to support them in releasing hardware documentation and hiring opensource driver developers (they do both, same as Intel, and unlike Nvidia). Nevertheless after my week-long experience (maybe I should say misery?) I really considered swapping the card for Nvidia GeForce GTX 660 (same price, same performance). Still, I’m reluctant to do it. I had bad experience with binary nvidia driver in the past, and I have had utterly abysmal experience with nouveau driver in recent years. I don’t know if the nvidia driver has some similar issues with alt+tab switching, video overlays in totem or vnc redraws (or some other issues, I would be very interested to hear that in the comments), but I know for sure that I don’t want to end up with nouveau if I ever discover a show-stopper in nvidia driver. Radeonsi driver is definitely light years ahead of nouveau. Nvidia announced they would help nouveau last fall, they released a single piece of basic documentation, and since then I’ve seen exactly nothing to happen. They don’t seem to keep their promise. With radeonsi, at least I can try to help the driver by submitting bug reports, because the developers are not kept in the dark. And Marek Olšák has been doing some amazing improvements and fixes lately. And for gaming, there’s always… ugh… Windows.

Comments welcome.

Show more