Bug 320232 - Moving windows is extremely slow on r300 with egl_dri2/gles, eglonx and glx, but not gallium(?) gles
Summary: Moving windows is extremely slow on r300 with egl_dri2/gles, eglonx and glx, ...
Status: RESOLVED WAITINGFORINFO
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (show other bugs)
Version: 4.10.3
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-05-24 18:14 UTC by Thomas Pfeiffer
Modified: 2019-04-23 15:44 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:
thomas.luebking: r300g+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Pfeiffer 2013-05-24 18:14:07 UTC
When I have desktop effects enabled on my machine, moving windows is extremely slow. The larger the window, the slower. All other effects and things (even resizing windows) have okay to good performance, only moving windows is slow.
Strangely, it's quite a bit faster with XRender (though everything else is considerably slower).
Disabling effects does not improve the situation.

Reproducible: Always

Steps to Reproduce:
1. I activate Desktop Effects
2. I drag a window around

Actual Results:  
The movement is extremely laggy and slow, to the point that I cannot really move it to a precise position.

Expected Results:  
Moving windows is at least about as fest as other actions (like resizing for example).

I have a Radeon Xpress 1250 graphics chip. This is my output 

Version
=======
KWin version: 4.10.3
KDE SC version (runtime): 4.10.3
KDE SC version (compile): 4.10.3
Qt Version: 4.8.4

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
showDesktopIsMinimizeAll: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 
commandActiveTitlebar1: 0                                                                                                                                     
commandActiveTitlebar2: 30                                                                                                                                    
commandActiveTitlebar3: 2                                                                                                                                     
commandInactiveTitlebar1: 4                                                                                                                                   
commandInactiveTitlebar2: 30                                                                                                                                  
commandInactiveTitlebar3: 2                                                                                                                                   
commandWindow1: 7                                                                                                                                             
commandWindow2: 8                                                                                                                                             
commandWindow3: 8                                                                                                                                             
commandWindowWheel: 31                                                                                                                                        
commandAll1: 10                                                                                                                                               
commandAll2: 3                                                                                                                                                
commandAll3: 14                                                                                                                                               
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorders: false
electricBorderDelay: 150
electricBorderCooldown: 350
electricBorderPushbackPixels: 1
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
unredirectFullscreen: true
glSmoothScale: 1
glVSync: true
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 17
refreshRate: 0
vBlankTime: 6144
glDirect: true
glStrictBinding: true
glStrictBindingFollowsDriver: true
glLegacy: false

Screens
=======
Multi-Head: no
Number of Screens: 1
Screen 0 Geometry: 0,0,1680x1050

Compositing
===========
Qt Graphics System: raster
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on ATI RS690
OpenGL version string: 2.1 Mesa 9.0.2
OpenGL shading language version string: 1.20
Driver: R300G
GPU class: R400
OpenGL version: 2.1
GLSL version: 1.20
Mesa version: 9.0.2
X server version: 1.12.3
Linux kernel version: 3.9.2
Direct rendering: yes
Requires strict binding: yes
GLSL shaders:  limited
Texture NPOT support:  limited
Virtual Machine:  no
OpenGL 2 Shaders are not used. Legacy OpenGL 1.x code path is used.

Loaded Effects:
---------------
kwin4_effect_login
kwin4_effect_slidingpopups
kwin4_effect_minimizeanimation
kwin4_effect_translucency
kwin4_effect_cubeslide
kwin4_effect_screenshot
kwin4_effect_desktopgrid
kwin4_effect_flipswitch
kwin4_effect_maximize
kwin4_effect_fade
kwin4_effect_dialogparent
kwin4_effect_highlightwindow
kwin4_effect_presentwindows
kwin4_effect_logout
kwin4_effect_dashboard
kwin4_effect_outline
kwin4_effect_startupfeedback

Currently Active Effects:
-------------------------

Effect Settings:
----------------
kwin4_effect_login:
fadeToBlack: false

kwin4_effect_slidingpopups:
fadeInTime: 125
fadeOutTime: 125

kwin4_effect_minimizeanimation:

kwin4_effect_translucency:
decoration: 1
moveResize: 0.72
dialogs: 1
inactive: 1
comboboxPopups: 1
menus: 1
individualMenuConfig: false
dropDownMenus: 1
popupMenus: 1
tornOffMenus: 1

kwin4_effect_cubeslide:
rotationDuration: 250
dontSlidePanels: true
dontSlideStickyWindows: false
usePagerLayout: true
useWindowMoving: false

kwin4_effect_screenshot:

kwin4_effect_desktopgrid:
zoomDuration: 150
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_flipswitch:
tabBox: true
tabBoxAlternative: false
duration: 100
angle: 30
xPosition: 0.330000013113022
yPosition: 1
windowTitle: true

kwin4_effect_maximize:

kwin4_effect_fade:

kwin4_effect_dialogparent:
changeTime: 150

kwin4_effect_highlightwindow:

kwin4_effect_presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 75
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0
dragToClose: false

kwin4_effect_logout:
useBlur: true

kwin4_effect_dashboard:
brightness: 0.5
saturation: 0.5
blur: false

kwin4_effect_outline:

kwin4_effect_startupfeedback:
Comment 1 Thomas Lübking 2013-05-24 18:47:25 UTC
> Strangely, it's quite a bit faster with XRender
To a point where it's actually usable (resp. "normally fast") or "just a bit"?

> Disabling effects does not improve the situation
I assume that does *not* mean "disable compositing" (Shift+Alt+F12) but you tried disabling effects like translucency?

Anything else, like high CPU load or memory usage (check "cat /proc/meminfo", resp. "xrestop") - related info in "dmesg"?

Has it been faster "before" (and happens since you upgraded mesa or KDE etc.)?
Comment 2 Thomas Pfeiffer 2013-05-24 19:02:00 UTC
Thanks for replying so fast!

(In reply to comment #1)
> > Strangely, it's quite a bit faster with XRender
> To a point where it's actually usable (resp. "normally fast") or "just a
> bit"?

Considerably faster than with OpenGL, but still considerably slower than without compositing.

> > Disabling effects does not improve the situation
> I assume that does *not* mean "disable compositing" (Shift+Alt+F12) but you
> tried disabling effects like translucency?

Oh, sorry for the ambiguity. I meant "disabling specific effects". In fact I unchecked every single effect, but not compositing in general. Pressing Shift+Alt+F12) makes it fast.

> Anything else, like high CPU load or memory usage (check "cat
> /proc/meminfo", resp. "xrestop") - related info in "dmesg"?

This happens independently of CPU or memory load. Anything specific I should look for in xrestop or dmesg?

> Has it been faster "before" (and happens since you upgraded mesa or KDE
> etc.)?

It's been like that for quite some time, since several versions of the graphics stack (and of KWin).
Comment 3 Thomas Lübking 2013-05-24 19:33:28 UTC
(In reply to comment #2)
> Considerably faster than with OpenGL, but still considerably slower 
:-(
Does falling down to XGA "fix" it? (xrandr -s 1024x768)

> Oh, sorry for the ambiguity.
No, actually not. Disabling effects is what one should say, but users often mean "disabling compositing" by it - therefore one better asks ;-)

> This happens independently of CPU or memory load.
The important part would be "moving windows does not burn my CPU", confirmed?

> Anything specific I should look for in xrestop or dmesg?
xrestop: general memory usage
dmesg: any warning from the radeon driver.

> It's been like that for quite some time, since several versions of the
> graphics stack (and of KWin).
And before it has been "fast as uncomposited" or "fast as xrender" or "compositing didn't work anyway then"?
Comment 4 Thomas Lübking 2013-05-24 19:34:28 UTC
ah, blast.

have you tried "kwin_gles --replace&"?
Eventually "EGL_DRIVER=egl_dri2 kwin_gles --replace&"?
Comment 5 Thomas Pfeiffer 2013-05-24 19:39:51 UTC
AHA! With "kwin_gles --replace&" it's almost as fast as with compositing disabled!
"EGL_DRIVER=egl_dri2 kwin_gles --replace&" made it slow again
Comment 6 Martin Flöser 2013-05-24 20:16:01 UTC
interesting. One more test please:

KWIN_OPENGL_INTERFACE=egl kwin --replace &
Comment 7 Thomas Pfeiffer 2013-05-24 20:19:53 UTC
With that, it's slow again.
Comment 8 Thomas Lübking 2013-06-27 20:04:27 UTC
this seems dri related, was there maybe an update to radeon-dri and/or did anything change in this regard?
Comment 9 Thomas Pfeiffer 2013-06-28 08:35:46 UTC
The problem had existed for a very long time, over various versions of radeon-dri. Anything I can do to test this further?
If I'm the only one affected and it is probably due to my specific system setup, you may close the bug because using kwin_gles solved it for me. If it may affect others as well, I'm willing to test further.
Comment 10 Tom Kijas 2014-04-09 22:02:00 UTC
You are not alone, but I cannot help you anymore as I do not have such a HW now.  Btw I reported similar bug about 4 years ago.
Comment 11 Thomas Lübking 2014-04-09 22:08:42 UTC
no you didn't - this bug is about egl, kwin even only has gles support since summer 2011 (in developer versions...) and egl on glx is rather new.
Comment 12 Martin Flöser 2016-11-02 14:56:07 UTC
@Thomas P: do you still have that hardware and is that still a problem with 5.8?
Comment 13 Thomas Pfeiffer 2019-04-23 15:44:24 UTC
I don't have the hardware anymore and therefore cannot test if it still applies, therefore I'm resolving the bug.