Bug 20106

Summary: [RS482] Present Windows and Desktop Grid effects in very slow
Product: xorg Reporter: Jure Repinc <jlp.bugs>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg.conf
none
Xorg.0.log none

Description Jure Repinc 2009-02-13 11:26:51 UTC
I have an integrated ATI graphics:
01:05.0 VGA compatible controller: ATI Technologies Inc RS482 [Radeon Xpress 200M]
I'm using open source drivers from Git (commit 3ff1eb7e50fef22adb6280dd7de77c3ecafdb451)

I was reading that to help the most with development of drivers I should use MigrationHeuristic set to always (until now I had it set to greedy) and report bugs with this setting.

Before changing from greedy to always the desktop effects were running quite OK in XRender mode. But after the change it became very slow. For me it is most visible with two desktop effects I use the most often: Present Windows and Desktop Grid.

Steps to reproduce:
1. in xorg.conf set MigrationHeuristic from greedy to always
2. in KDE 4.2 go to System Settings > Desktop > Desktop Effects
3. On General tab enable the effects and on Advanced tab set the type to XRender
4. Apply the settings and make sure that the abowe mentioned effects are enabled on All effects tab
5. By clicking on a wrwnch icon next to effect you can also see the keyboard shortcat for activating the effect.
6. Open a couple of windows and activate any of these two effects

Actual result:
Windows zoom and move very slowly. When you hover the mouse over the windows even the highlight is slow to move. Similar in the desktop grid effect.

Expected result:
Effects should be as fast as when using greedy for MigrationHeuristic
Comment 1 Jure Repinc 2009-02-13 11:28:11 UTC
Created attachment 22909 [details]
xorg.conf
Comment 2 Jure Repinc 2009-02-13 11:28:59 UTC
Created attachment 22910 [details]
Xorg.0.log
Comment 3 Michel Dänzer 2009-02-14 03:46:34 UTC
From the log file:

(WW) RADEON(0): Direct rendering disabled
(II) RADEON(0): EXA Composite requires CP on R5xx/IGP

RENDER acceleration only works with the DRI enabled on your chipset. You may need to set Option "DRI" to enable it.

I've also noticed that some of these effects are much slower with the kwin XRender backend than with OpenGL though. The most likely cause is software rendering fallbacks. I'll try to investigate this when I get time, but anybody feel free to beat me to it.
Comment 4 Michel Dänzer 2009-02-24 00:19:16 UTC
This seems to be due to the kwin shadow plugin, disabling that makes things snappy for me. AFAICT it's due to Composite operations with a transformed RepeatNormal 25x25 mask. The driver can't accelerate this on pre-R500 because the hardware only supports texture wrapping with power of two dimensions.
Comment 5 Jure Repinc 2009-02-26 07:11:08 UTC
I already have shadowin plugin disabled, so I guess this one couldn't be the factor here. I've also installed Linux kernel 2.6.29-rc6 and this time made sure that DRI is enabled but it didn't improve anything, the two mentioned effects are still as slow as before enabling DRI.
Comment 6 Jure Repinc 2009-02-26 07:50:35 UTC
Ignore the part about DRI. I was looking at the wrong konzole with Xorg log from another computer and so DRI wasn't actually enabled on this computer. After really enabling DRI the two effects indeed now work fast enough. So in the end it is down to this:

DRI enabled + MigrationHeuristic always = OK
DRI disabled + MigrationHeuristic always = slow
DRI disabled + MigrationHeuristic greedy = OK
Comment 7 Adam Jackson 2018-06-12 19:07:02 UTC
Mass closure: This bug has been untouched for more than six years, and is not
obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.