A blog about random things and sometimes about my work translating and developing KDE and anything

Wednesday, October 03, 2007

Performance of radeon free drivers

The other day, i updated to KUbuntu gutsy and saw it ships a free graphics driver for my Ati X300 card (r300 based). I switched to it from the non-free driver but i have went back.

Why? Well, actually it does work, but it is slow, for example, hiding and showing again a normally sized ktuberling, takes around 180ms on the fglrx driver while it takes 550ms on the radeon driver.

But well, after all, as far as i remember they reverse engineered the driver, so i should congratulate the people doing it, it's a bit slow but works, so people that NEED a free driver or where the non-free one does not work can actually use the card now, thanks :-)

This is with driver 6.7.194 which i would say is latest released version.

UPDATE: Setting the driver to use EXA makes it go as fast or faster than fglrx driver in this scenario of swapping ktuberling windows, now i ask me why this is not the default :-S

UPDATE 2: Now blogger.com newsticker makes CPU go to 100% on both konqueror and firefox. I think i'll wait for the next iteration of the driver.

I tried the free driver in Xorg 1.3 (Arch Linux) and it produced a stacktrace almost immediately after starting X. Previously with Xorg 1.2 it worked (dualhead didn't though - it too segfaulted), but was terribly slow. Also many games like Doom3 were unusable. Lots of graphic errors and usually crashes. Composite was slow. Now I have to use the vesa driver with an ugly 60Hz refresh rate because nothing else works. Really great quality...

EXA is not the default because until xserver 1.4 it was slower than XAA, and it missed the hw render acceleration. Now it still misses the render acceleration but the EXA implementation in the server has been considerably enhanced and the driver is usable.

Interesting, 'cause I have the exact opposite situation; my graphics card runs faster with the radeon driver than with the fglrx driver. Of course, my card's also on the expired support list, and hasn't been supported by fglrx since 9.28 or so...

For me, only Xorg 7.1 has good performance with the X300. I've tried upgrading many times and each time, I have found X to be slow at mapping windows and drawing in general. I've reported the bug, mentioned it on mailing lists and it never really gets fixed. So I'm stuck with Xorg 7.1. Fortunately, it's really fast. It's about as snappy as Windows and even turning on compositing with Kompmgr performs great. Pretty much only Firefox scrolling is slower by any significant amount (and even then it is still pretty darn fast)

I've been using the r300 driver for a long time now. My experience with the closed driver was that it was a PITA vis-a-vis Debian's kernel updates (In testing / unstable), and it had mind numbing, system halting, stability issues. (I've used the closed driver and the open driver on an ATI 8500, 9800, and now X700)

With that being said, there are some gotchas with the open driver:

1. No render acceleration on anything newer than an 9200.2. Only partial EXA support.

This pretty much represents the most agressive settings you can have. Watch AGPFastWrite it can do 'bad things'. You can actually get EXA to preform really well, if you set the migrationhuristic to 'greedy'. If you have an AGP card, try AccelDFS with EXA... You might get a hardlock. The Radeon driver defaults to a really small gartsize that can cause GLX apps to die. Set that to taste. (64 is quite probably fine, but I have memory to spare.)

The other tip I have, is if a GL app is really slow, run driconf, and disable the 'low impact fallback'. You're sacrificing correctness for speed, but sometimes it's a lot of speed.

before complaining about performance. it's quite good. you can't get doom3 running smooth, that's true (opensource drivers do not fully provide shaders, or other opengl 2.0/2.1 feaures yet). but besides that the driver does a very good job.