Until recently, I wasn’t really bothered by the poor OpenGL performance of my laptop. Though it has a Radeon Mobility 9200, the OpenGL “experience” was really bad. But since I was not using GL enabled applications, that was not an issue.
Then, I tried Google Earth and thought “well, it’s slow, but it’s huge, I don’t know, maybe it’s normal”. A few days later I heard about neverball and gave it a try. It was even slower than Google Earth, and that seemed pretty hard to believe this time.
Thanks to clues from people on #d-d, I figured out I didn’t have the libgl1-mesa-dri package installed. Quite simple to know if you are in the same case : first, grep “Direct rendering” in your X.org log file to be sure DRI is enabled on the server side. Then check for “direct rendering” in glxinfo’s output to know if it’s enabled on the client side. If not, try to apt-get install libgl1-mesa-dri.
Trying neverball again was delightful: the game was playable.
I thought I was done with my OpenGL settings until yesterday, when, for some reason, I read the X.org log and noticed AGP mode was 1x. I didn’t know exactly about nowadays, but I was pretty sure 4x was reached at some point, and that the chip in my laptop might support it.
My friend google helped me finding something about “xorg.conf radeon 9200 mobility agp”, and gave me hints about three parameters to add to the xorg.conf file that might improve GL performance:
Option "AGPMode" "8"
Option "AGPFastWrite" "on"
Option "EnablePageFlip" "true"
Glxgears is not a benchmark, but still, it helps to make self comparisons. Before: ~260fps. After: ~1350fps. WAW ! Now Google Earth is really fast.
Though I have a strange bug which appears whenever an X window (popup, balloon help, etc.) gets on top of the 3D frame: only the rightmost part appears… on the left. It appears on neverball, on glxgears, on Google Earth, but NOT on foobillard… moving or resizing the window usually fixes the display.
Update: When switching to console and back to X, the glxgear performance gets back to ~260fps…
Update 2: It seems my “before” score is not as bad as claimed. It’s actually ~950fps. Still a good improvement, though. The reason why i got ~260fps is that i almost never reboot my laptop nor restart X, and hibernate instead of shutting down the system. Which means I’m in the switched back from console case most of the time.
Update 3: Thanks to Robert Hart for pointing to bug #363995. The patch from there works perfectly \o/. (If you can’t wait and want a patched .deb, send me a mail)