Epic Moment: Free and fast graphics at last

Well, epic for a Free software geek. Kim and other normal people just chuckled, and at best grinned when I told them.

I’m now running openSUSE on my desktop, which has an AMD RadeonHD 4350 card. That card is fast enough for my graphics needs (compositing window management, a dated game once in a while) and still passively cooled and providing two DVI outputs for my dualhead setup. I’ve been using an NVidia VGA before, but switched to AMD/ATi when I last upgraded my desktop workstation (to an Intel Quad core, meaning new mobo, graphics as well). I picked a RadeonHD card instead of an NVidia chip because of AMD’s open dealing with specs, something which I deeply despise in NVidia. So, NVidia, there you go: You lost me as customer because you’re too closed a company.

Now bitching about NVidia is not the (primary ;)) goal of this post. The goal of this post is, that with openSUSE 11.3’s graphics stack, I’ve been able to run a composited desktop with the Free radeon driver finally. While there were some hickups in the installation procedure (normal for a beta release), it now all fell into place, and I’m enjoying fast, beautiful graphics with a completely Free software stack. That is a lot of work from the Xorg people that has finally come to fruition: There’s the new DRI framework in the Linux kernel, along with drivers supporting compositing for many of the "newer" RadeonHD models, the compositing support for newer chips that has landed in the latest Xorg, all on top of the EXA acceleration infrastructure. If you’re interested what you can expect from your upgrade to 11.3, check the feature matrix compiled by the Xorg devs.

I’ve tried the setup on Ubuntu Lucid Lynx in the first place, since that’s what was installed on the workstation before, but didn’t have much luck. The kernel shipped with Lucid is just one version too old it seems, so lacks the functionality necessary to accelerate graphics suitable for compositing. For that reason, I’ve upgraded the kernel to 2.6.34, but only to find out that my Xorg is not good enough. Tried installing newer packages from the xorg-edgers repo, but that just resulted in my system hanging solidly during boot. (That’s to be expected if you’re using bleeding edge Xorg, and upgrade your own kernel, but still a shame it didn’t just work ;-)). I assume that new upcoming Ubuntu will provide this nice out of the box experience as well, but I didn’t try it.

For many users, the most interesting thing is probably that the Free radeon driver (and to some degree the Intel graphics driver as well) provide the best user experience for running a KDE Plasma desktop. Using the NVidia driver, the desktop always feels sluggish. That’s supposedly due to NVidia not accelerating some calls that are made while switching windows, so a couple of milliseconds are added there and the whole thing feels less responsive. It’s not as bad as it was, about 2 years ago, but there’s still a notable difference in snappiness when using a low-end (non-poulsbo ;)) Intel chip compared to anything using the nvidia.ko binary driver — and that’s just pathetic given the NVidia hardware is supposedly much more powerful. The same, even if to a lesser degree, is true for ATi’s binary driver, the (in)famous fglrx.ko. This one, while it works OK-ish, also suffers slightly from this lagginess. Switching to the free driver makes the whole thing just very snappy. I could well imagine that those who are complaining about a perceived slow system are suffering from just this problem — bad graphics drivers. If you’ve recently compared the binary and free drivers for RadeonHD cards, please leave a comment so we can see if this — rather vague — theory of mine (binary drivers suck, Free ones feel faster) is true for more people.

So, what’s the epic moment? Well, the epic moment for me was seeing KDE Plasma start up with the Free driver, enable compositing automatically and by that delivering a much more beautiful and functional desktop to me, out of the box. I’m happy that with the new graphics stack in openSUSE 11.3, the same will be the case for many users out there.

32 Responses to “Epic Moment: Free and fast graphics at last”

  1. romain says:

    Have you succeeded in having dual screens *and* composite ? Did you use Xinerama ? I’m stuck here with fglrx but no composite, which sucks… :(

    • sebas says:

      I’ve had compositing + Xinerama with the fglrx driver and the radeon driver, so likely you’ll get it to work, too.

      I didn’t quite get it to work editing my xorg.conf to make it permanent, so I’m now just using RandR to switch to dualhead mode right after login, works nicely.

      The script I use does the following:

      # If an external monitor is connected, place it with xrandr

      # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"
      EXTERNAL_OUTPUT="DVI-0"
      INTERNAL_OUTPUT="DVI-1"
      # EXTERNAL_LOCATION may be one of: left, right, above, or below
      EXTERNAL_LOCATION="left"

      case "$EXTERNAL_LOCATION" in
      left|LEFT)
      EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
      ;;
      right|RIGHT)
      EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
      ;;
      top|TOP|above|ABOVE)
      EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
      ;;
      bottom|BOTTOM|below|BELOW)
      EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
      ;;
      *)
      EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
      ;;
      esac

      xrandr |grep $EXTERNAL_OUTPUT | grep " connected "
      if [ $? -eq 0 ]; then
      xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION
      # Alternative command in case of trouble:
      # (sleep 2; xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION) &
      else
      xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off
      fi

      I’ve borrowed most parts of it from another script I found on the webs, but this should get you started with little effort. This functionality also works fine from KDE’s Display systemsettings module, by the way. That’s probably the easiest way to test it.

      • Oipo says:

        For the love of god, USE XRANDR FOR THE FREE DRIVERS!

        • sebas says:

          The script uses xrandr, just wraps some info about the physical layout of the monitors info around it. :)

          • IAnjo says:

            I have a X1300 with open drivers also and dual head. Also works very nicely :)

            Here’s my xorg.conf to make the Xserver start up right away with the two monitors in KDM:

            Section "Device"
            Identifier "Radeon X1300"
            Driver "radeon"
            EndSection

            Section "Monitor"
            Identifier "DVI-0"
            Option "Position" "1280 0"
            EndSection

            Section "Monitor"
            Identifier "VGA-0"
            Option "Position" "0 0"
            Option "Primary" "true"
            EndSection

            Section "Screen"
            Identifier "Default Screen"
            Monitor "DVI-0"
            Monitor "VGA-0"
            Device "Radeon X1300"
            EndSection

            Hope this helps :) Go free drivers!

  2. d2kx says:

    You may be interested to hear that AMD has released a new proprietary Catalyst/fglrx driver update yesterday with a new 2D acceleration architecture.

    • sebas says:

      Yes, but I don’t care anymore. :-)

      I much prefer a Free driver, and as I got one well-working now, I’m unlikely to look back to the age of proprietary drivers. I’ve followed fglrx development for long enough.

      Thanks for the info, though.

      • d2kx says:

        That’s nice to hear. Because even though I am following the Catalyst development closely, I personally also strongly prefer the opensource radeon stack. The last big challenge is full featured 3D (as in OpenGL3 support), but it is being worked on.

  3. Sascha says:

    Nice, although I personally can *not* confirm that this overall quality and maturity also applies to the free *Intel* graphics drivers…

    OT: What desktop background image is that? It looks very calm and soothing. Me want…

    • sebas says:

      I don’t have Intel hardware here, right now (but will get a new notebook shortly), so I cannot test that right now. Overall, my experiences with Intel’s driver were very positive though.

      wallpaper: Teasing here, it’ll be openSUSE 11.3’s default wallpaper :-)

  4. AnTs says:

    Same experience here. For quite some time I’ve used closed-source ATI FGLRX drivers on my latop and the desktop just wasn’t smooth. I also got constatnt freezes on logout, which eventually pushed me to try open-source And I’m glad I tried them. They may not have all the bells and wistles of closed drivers but open source radeon driver works so much nicer and smoother for normal desktop and productivity apps usage.Currently I’m even using the Gallium drivers for 3D. they are advancing very fast and already have more features than the clasic Mesa drivers (OpenGL 2.1 vs. 1.5). I also have a powerfull NVidia card in my desktop system and it just is not smooth as you say, they don’t even have support for XRandR 1.2+. So the next time I upgrade graphics in the desktop I’m sure I will not buy NVidia anymore. AMD/ATI does a great job supporting open source drivers development and it shows, and this is something that is well worth suppoting and voting with my money for.

  5. baxeico says:

    One thing I don’t understand:
    Why are AMD/Ati supporting the open source driver with open specs etc. AND they ALSO provide a closed source driver for Linux? It wouldn’t be better for AMD/Ati to join the development of the open source driver?

    Can you comment on this?

    • sebas says:

      I cannot comment on this, but the Free driver is just catching up, feature-wise. There might be some cards that are only well-supported by fglrx. How the development resources should be allocated is none of my business, though.

    • d2kx says:

      Business consumers need the proprietary driver because they use outdated distributions like RHEL, but want to have the newest features like OpenGL 3 and OpenCL support right now.

    • Danni Coy says:

      Part of it that there are some features e.g. methods of texture compression at require IP not owned by ATI (or nVidia) so they can’t release source code for it. Pretty much all commercial games use these features so you will not be able to run commercial games with with the free drivers in the forceeable future. Other than that I don’t see any downsides to the free drivers.

    • Brian says:

      @sebas – Thanks so much for posting that script! KDE’s [lack]

      @baxeico
      I’m just a hardware enthusiast who keeps tabs on this kind of stuff, not an employee of AMD, but here’s how I understand it. The FGLRX driver shares something like 90-95% of its code with the Windows driver, and as such, there are years worth of experience and optimizations present in the code. From a competitive standpoint, AMD is in a prisoners-dilemma with nVidia over open-sourcing this experience. Take for example EyeInfinity (Radeon 5XXX’s support for simultaneously driving >2 monitors from a single GPU). This was a secret project inside of ATI that even the own company’s management wasn’t aware of until after the feature was already implemented in silicon. ATI’s software division wasn’t even given a heads-up of the feature’s existence until the very last possible minute, and even then, again only a select few trustworthy software engineers were keen to its existence.

      So, why was all this secrecy such a big deal? Historically speaking, the primary source of FOSS-driven revenue for these companies comes from the workstation market, which at least until *very* recently, has been practically entirely commanded by nVidia. Multimonitor support is a key selling feature to this market, for both Windows and *nix – it’s IMO the only thing that’s kept Matrox’s graphics division alive all these years since the consumer/gaming-oriented Parhelia flop way back in 2002. Let’s say, for the sake of argument, that FGLRX were open-source. To implement a feature like EyeInfinity in hardware would probably take around 18-24 months, and in the graphics hardware business, that’s a significant advantage – two generations of hardware – that ATI wasn’t willing to forfeit to nVidia (the feature set for the 5XXX series was probably very firm somewheres in 2007, even though the cards only hit the market 9 months ago; the same goes for nVidia).

      If the code showing proof of this feature’s existence were freely available, nVidia would have gotten a significant heads-up to its existence, and would have had ample opportunity to implement the feature (in hardware) at least one major-generation earlier. Or, even worse for ATI, they could have gotten the feature to market before ATI. It only took nVidia about two months after ATI released EyeInfinity to implement the feature in software, even though it requires multiple GPUs, and even though technically speaking ATI’s hardware implementation is far superior, as far as marketing is concerned, the right to claim creation of the feature is worth far more than the technical details of the feature’s implementation. If you’re interested in reading more about this, check out this excellent article.

      That’s one example for the competitive/secrecy argument. Which leaves us with certified support, in-house testing, and other quality control factors. I don’t know how else to say this, so, just try to imagine yourself in their shoes – suffice it to say that amid the fragmented mess of FOSS distributions controlling your own code base and release schedule is worth its weight in gold as far as support and testing are concerned; GPUs and their drivers are complex beasts.

      Stated quite frankly, AMD is a public corporation that needs to keep investors happy – and even though through AMD’s experience with the CPU industry they are one of the most open-source-friendly hardware companies out there – they still operate in a closed-source world that probably drives 90%+ of their profit and they therefore must continue to play by the out-of-their-control rules of that world. Notice, again, the prisoners-dilemma. Unfortunately, until FOSS gains a *significantly* greater market share (I’m talking the option to be pre-installed by all major OEMs), I am of the opinion that the best we can hope for from any of these companies is greater support for the OSS variants of their drivers. A while back Phoronix had a good interview with one of ATI’s lead FGLRX engineers about their stance on OSS drivers, but unfortunately I can’t seem to find the link right now..

  6. insane says:

    I can confirm your statement, but for nvidia drivers.

    I’m using three systems – one laptop with intel GPU with memory sharing, on laptop with nvidia quadro 3600M and one desktop workstation with nvidia GF 6600GT. The quadro works with nvidia.ko and (surprise!) it does feel slower than the ancient intel GPU. The geforce works with nouveau (check here: http://de.opensuse.org/Nouveau-Grafiktreiber ) on a big 1920×1200 monitor – and everything works perfectly smooth (even switching between X and text mode) including the RandR extension! I don’t use nouveau on my laptop, only because of missing power management features, which are important for a mobile computer.

    So, yes, open source drivers are much better!

  7. lelamal says:

    Hi, I’ve recently switched to an ATI Radeon HD 3450 from a prehistoric Matrox G450 (which served me well for over 10 years, but provided only basic compositing with XRender). To my surprise, it worked out of the box with open drivers on my desktop with Kubuntu Lucid installed (so, my experience differs from yours, here). Before that, I was offered an nVidia which I just had to bring back after 1 day of use because it kept showing horizontal coloured stripes, with any proprietary driver I could put my hands on. I’m quite satisfied with my ATI now, and share your happiness in using the open source driver. Kwin is spectacular, and I don’t regret those days on Ubuntu when I thought Compiz was the best in town!

  8. That’s awesome. I’m waiting for RC1 or RC2 and then I’ll install on my desktop (just waiting for KKUD for 11.3, basically): I’m really fed up with fglrx (hello, hangs when switching VTs!), and so I can’t wait to use radeon and KMS.

    • Bah… spoke too soon. KMS loads but 3D gets disabled with a cryptic error (tested RC1 on x86-64). I opened a bug, I hope it’s not my hardware’s fault…

  9. Duncan says:

    I’m running Gentoo, and switched to kde4 with 4.2.4. For years I had been running a Radeon 9200, which handled composite fine, if a bit slow, but didn’t do OpenGL above 2048px either direction. Since I’m running dual 1920×1200 LCDs, stacked for 1920×2400 (and was running dual 1600×1200 CRTs, stacked for 1600×2400, before that), that didn’t cut it, and KDE disabled the OpenGL along with most of the effects. Unfortunately, there was also a bug whereby the kde display control could only do clone mode, so I had to setup xorg.conf with the preferred setup and use xrandr to do any dynamic resolution switching.

    But I along about kde 4.3, I finally upgraded to a new Radeon hd4650, and grabbed the then still git-only versions of a couple packages including xf86-video-ati, to FINALLY get accelrated 3D, as there weren’t even beta releases with the required functionality, yet. (Like you, I rejected nVidia and proprietary drivers, but I did it years ago, thus the Radeon 9200, which was about the best with freedomware drivers for some years.) WOW! Now THAT is what I had been waiting for! =:^) And the KMS is nice, too. =:^)

    Now there’s proper releases for everything, no more git versions, except for the kernel, which I routinely test git versions of, bug reporting and getting them fixed, as necessary.

    And my netbook runs the pre-poulsbo Intel 950GMA, so everything’s equally cool there. =:^)

    So I definitely identify with your post! It *IS* nice having hardware and software that actually support all the latest fancy features. =:^)

  10. sonay says:

    I wish VIA went opensource, too. Openchrome is not good enough for desktop effects, of course due to VIA not being open

  11. Bugsbane says:

    Ive been using the free ATI stack on a desktop (quad core AMD with an ATI 4850) and two laptops for… well, quite a long time now (since early Karmic, I think). For the last 6 months or so theyve been amazing for me on all three machines. Even most games have been fine. The only things Ive had any challenges with were a couple of higher end games (eg Heroes of Newerth and Savage 2) which I suspect are using GLSL and one or two advanced graphical features in Penumbra. I just finished Lugaru, Aquaria and Penumbra from the humble Indie Bundle though, all of which played well. I also use Blender regularly (although 2.5 alpha 1 seemed to have a bug that did some weird veiwport stuff… fixed in alpha 2 though).

    Overall: 1 very happy camper! Will definitely be exclusively be buying ATI for the foreseeable future.

  12. Slice says:

    Ugh!, I have a aging Compaq v2000 laptop and the ATI/AMD fglrx video card drviver has never worked correctly with Linux. The funny thing is AMD/ATI stopped supporting my video card after only 4 years. The ATI card has been a pain the whole time owning it. If it wasn’t one thing it was another. Half the time the fglrx installer would fail, the other suspend would fail, or some strange things like artifacts on the screen.

    Recently, the open source RADEON driver with Ubuntu 10.04 has worked very well, but I still lose about half of the performance, and video out still doesn’t work. Personally, I’m all about the better price/ performance, and as a glance that would be AMD/ATI, but it’s just not work the constant headache.

    On the other hand I have NVIDIA 8600 on my desktop and it “Just Works”.

    I can understand the argument of wanting to ONLY use open source, but it seems silly to spend top dollar on a card and only get half performance because the driver is not mature.

  13. lefty.crupps says:

    I too bought an ATi 3450 card for home to support the openness of ATi after tiring of the nVidia driver reinstallations all the time. The closed ATi drivers are a headache to install in Debian Sid so I just waited until the FLOSS drivers could do the job, and they did! Since then, for my company, I try very hard to only buy the ATi cards when needed, since we do have people that run FLOSS desktops and I want it to work great for them as well. KDE 4.x on the ATi 3450 is a very nice experience.

    That said, I do wish that XOrg could run without an xorg.conf file (on my Debian system, it’s needed to specify the driver and some other options), and that I could do dual-screens without having to define in that file that my possible desktop could go up to 100,000 x 100,000 pixels (ok its not set that high, but until I put that code in I couldn’t do the dual screens due to lack of virtual space or something).

    You can buy ATi 3450 cards (different brand tho) at NewEgg for $30, or even $20 with a rebate:
    http://www.newegg.com/Product/Product.aspx?Item=N82E16814131119

  14. casey says:

    In best “Hurly from Lost” voice: Yeah, whatever dude.

    All that’s fine and nifty for basic desktop stuff, but if you game AT ALL, the open sauce stuff just doesn’t cut it. FPS is life, and the closed source drivers currently are the ONLY way to go for those of us who do more than look at code or spreadsheets.

    Also, hate nvidia all ya want, but their closed drivers + gtx2xx cards are FAST, especially for opengl and dx via wine. Phoronix recently benched the closed vs. open drivers for both nvidia and ATI, and its not even close at this point.

    • sebas says:

      As I mentioned, my gaming is negligible. I’d much much prefer speedy and smooth desktop effects, as I will likely never notice any advantages in DirectX Rendering speed. My use-case simply doesn’t cover this, and that’s fine.

      Not having acceptable performance for even desktop usage is a showstopper though. My gut feeling is that a large percentage does not care about most of the games that really need today’s fastest graphics card.

      As to Phoronix, given their track-record of low quality reviews and conclusions they’re drawing from their benchmarks, I wouldn’t be too worried about their results.

  15. Arup says:

    A cheap $30 nvidia 8400 with excellent linux drivers would let me watch full screen HD movies via VDPAU enabled mplayer, sadly my costly dual GPU edition ATI 4850 doesn’t, also other issues galore even with latest Catalyst on Lucidx64 and Fedora 13 so I have shelved it for now till ATI learns some humility and brings true hardware acceleration which is easy to implement. I know there is VAAPI but it just doesn’t work on mplayer for now, either via RVM PPA or compiling the latest.

  16. jscurtu says:

    Hey Sebas,

    same story here :-) I installed openSuse 11.3 starting with M7,… Have a HD3650 and I must say for now I am sticking with openSUSE and there very good and polished KDE desktop :-)

    JAson

  17. Too bad the Radeon driver isn’t fully free, it contains a binary blob. If you remove it you will lose your 3D and even 2D acceleration.

  18. Hey, Sebas,

    The other day I decided to try out the LiveCD version of Ubuntu 10.04. Normally, I install to try Ubuntu out because proprietary drivers don’t work until you restart (meaningless on a LiveCD) but this time I had smooth desktop effects out of the box using my ATI 4670. This is enough for my next few graphics cards to be ATI cards.

    Who are the people in charge of doing the drivers for the ATI cards (radeon, radeonhd)? They are awesome and should know that.