Monday, December 14, 2009

sluggish xorg

I have been fighting with what I thought was a really slow window manager, and so I changed to a lighter weight one and it still took forever to draw things. After fiddling with stuff on and off for a few months, it turns out to be pretty simple: the radeon driver decided to use the CPU for too much of its own job.

I set a couple of flags (thanks to linportal), and everything is speedy again. So if you're fighting with a radeon driver that seems to be worthless (especially with multiple displays) try setting the "MigrationHeuristic" option to "greedy" in your xorg.conf's device section.

Option "MigrationHeuristic" "greedy"


Adam Guthrie said...

How old are your graphics card and processor? I remember having to apply hacks like this on my old system, but with newer hardware and since they added hardware auto-configuring to Xorg, I don't have any problems.

Sid Stamm said...

It's not that old of a card, which makes it a really weird problem.

ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]

I did some fooling around in the xorg.conf to get multiple 1920x1200 displays working (and rotation and stuff), so I might have screwed something up in the past. Seems to work fine now.

Unknown said...

Wheeeee! My system is usable again, after nearly a year of sluggishness.

Anonymous said...

this is a bit surprising as (if I understand correctly) greedy let more pixmap in system ram (to be processed by the CPU) than the default (MigrationHeuristic always) which move every pixmap to VRAM (to be processed by the GPU).

I guess the problem lies in some operations not supported by your GPU so a fallback to CPU occur which is very costly (involve copying back to system RAM).