Sunday, October 20, 2013

AMD GPU on Linux, Revisited

It's been almost a year since I first tried to run an AMD graphics card on Linux. After some success with an AMD A-CPU build a few weeks back, I picked up a 2nd hand HD7770 yesterday to try out and see if things have improved.

There were a number of tests I was interested in doing. I didn't have a convenient dual-monitor setup available, so everything is on a single screen (dual screen was one of my major problems last time, so I might get around to this at some point). The tests were:

  • Dragging a window around, looking for tearing
  • Scrolling in a web browser, looking for tearing again
  • Playing a HD video
  • Playing a game

I installed the card on my old Intel Q6600 system, and ran off the onboard graphics to start with, to get a baseline. I installed a fresh Kubuntu 13.04 as the test platform. These are the results, discussion at the end:

Test 1: Intel i915 (onboard) Graphics
ActionResultComments
Drag windowXNoticeable glitches
Browser scrollXOccasional glitches
Movie:)
GameXUnplayable (took a few minutes and hadn't even made it through the intro to the title screen)

Test 2: Open Source (Radeon) Drivers
ActionResultComments
Drag windowXNoticeable glitches
Browser scrollXOccasional glitches, similar in appearance to the onboard performance
Movie:)
GameXGame ran, going from 20 FPS sometimes down to 5. Some major glitching, and eventually a black screen. Not playable.

Example of the in-game glitching with the open source drivers


Test 3: AMD Catalyst 13.4
ActionResultComments
Drag window:)Looks nice, but need to ensure "Tear Free" option is selected in AMD Control Centre
Browser scroll:)Again, need to ensure "Tear Free" option is selected
Movie:)And again
Game:DVery good results (eventually), no noticeable lag on full-screen.

I intended to use 13.10, but the current version of Catalyst wouldn't install properly, so I dropped back to 13.04.

Installing the driver is still fraught with difficulties. The first couple of attempts failed -- even using the ubuntu libraries with apt-get install fglrx fglrx-amdccle wouldn't work. In the end, the way I got it going was by following the instructions in this askubuntu answer. In particular, I think getting all the dependencies is critical.

The proprietary driver may have an unfair advantage in my tests drag/scroll tests, since I found the "Tear Free" switch. I'm not sure if such an option exists for the open source drivers.

So, I had better luck than last time round, but the installation process is still daunting, and dual-screen support would be good to try out.

4 comments:

  1. I really can't figure out why or how you're having these issue, I don't have them, installing the drivers is straight forward and setting up dual monitors is just a couple of clicks. I don't even touch the xorg file, everything works perfectly. There is no tearing and games run perfectly even at 1080p.

    I have a 7770 X-Edition and i'm running 13.10 with the latest kernel and the ATI v9.95 beta driver and everything is running like magic.

    Installing the driver is simple,

    sudo apt-get install cdbs dh-make dkms execstack dh-modaliases linux-headers-generic libqtgui4

    If using 64 bit you also need

    sudo apt-get install lib32gcc1

    mkdir amd-catalyst-13.11-betav9.95 && cd amd-catalyst-13.11-betav9.95

    wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' http://www2.ati.com/drivers/beta/amd-catalyst-13.11-betav9.95-linux-x86.x86_64.zip

    unzip amd-catalyst-13.11-betav9.95-linux-x86.x86_64.zip

    chmod +x amd-catalyst-13.11-betaV9.95-linux-x86.x86_64.run

    sudo ./amd-catalyst-13.11-betaV9.95-linux-x86.x86_64.run --buildpkg Ubuntu/saucy

    sudo dpkg -i fglrx*.deb

    sudo amdconfig --initial -f (then Reboot, if dual monitors also add the line below....)

    sudo amdconfig --set-pcs-str="DDX,EnableRandR12,FALSE" (Reboot)

    Jobs done and it's a goodun...

    ReplyDelete
  2. Thanks for your response. I guess I'm just not as good as you! I didn't get around to trying the Beta drivers (due to how poor they were in previous attempts). If you're willing to use them and they work, that's great.

    "Installing the driver is simple,"
    I guess your 10-step-plan will work, but I wouldn't call it simple. Compare with the steps for an nVidia GPU:

    apt-get install nvidia-current
    nvidia-xconfig

    I've since found these installation steps for AMD cards that worked much better than the regular fglrx libraries:

    sudo apt-get install fglrx-updates fglrx-amdcccle-updates fglrx-updates-dev
    sudo aticonfig --lsa
    sudo aticonfig --adapter=all --initial
    sudo reboot

    ReplyDelete
    Replies
    1. I have found that on ubuntu 14.04 (alpha) the radeon driver can multimonitor with a hd 7770 without a hitch. It works starting from boot. The only thing was that I had to change my TV's (=using the remote) hdmi setting to "graphic" to get it to work at 1920x1080. However I haven't gotten hdmi audio working.

      Also the 13.10 radeon driver had lots of rendering glitches (e.g. in blender, as well as rare minor things in firefox). On 14.04 they seem to be gone.

      OTOH with fglrx and amdcccle the TV simply does not get detected at all, though it might be just me not having run some aticonfig thing properly or whatever.
      HOWEVER on 14.04 is as simple as opening the "software & updates" GUI and clicking on the hardware drivers tab. The version it got just works for hd 7770 with a single monitor.

      Delete
    2. That's good signs for the open source driver.

      fglrx/Catalyst may need to catch up to the latest kernel, even in 13.10 you need to apply a patch just to get Catalyst 13.12 to compile (see https://gist.github.com/moldcraft/8116528)

      Delete