Bug 382817 - Choppy and, generally, problematic KWin effects
Summary: Choppy and, generally, problematic KWin effects
Status: RESOLVED UPSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: effects-window-management (other bugs)
Version First Reported In: 5.10.4
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-27 19:05 UTC by Tsu Jan
Modified: 2018-07-16 13:33 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tsu Jan 2017-07-27 19:05:00 UTC
Since KWin(X11) V5.10 (or maybe 5.8) and with kwin effects enabled, when I open a window (like that of Konsole) and try to move it immediately after that, or when I close a window and try to open a menu immediately after that, or when I close a window and try to open another one immediately after that, or..., in the first case, the movement is very jerky, in the second case, the menu is opened badly depending on the effect (with the fade effect, it's semi-transparent and unusable for a second), in the third case there's a tangible delay, etc. Generally, kwin effects have recently been interfering with other jobs. This happens with all sorts of effects, for example, those I've made with translation, rotation, fading, etc.

The bad performance is visible in both Manjaro (Testing) and Debian (Unstable).

None of this happens with Compiz (https://github.com/compiz-reloaded) on the same computer and with the same Linux distro (Manjaro Testing). Actually, that old Compiz and its various effects work like a charm after so many years!

Graphical info:

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:191b] (rev 06) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device [17aa:3802]
        Flags: bus master, fast devsel, latency 0, IRQ 139
        Memory at 92000000 (64-bit, non-prefetchable) [size=16M]
        Memory at a0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 5000 [size=64]
        [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: i915
        Kernel modules: i915


OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.1.5
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.1.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 17.1.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
Comment 1 Martin Flöser 2017-07-27 19:15:39 UTC
please provide output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 2 Tsu Jan 2017-07-27 20:31:23 UTC
KWin Support Information:
The following information should be used when requesting support on e.g. http://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like http://paste.kde.org instead of pasting into support threads.

==========================

Version
=======
KWin version: 5.10.4
Qt Version: 5.9.1
Qt compile version: 5.9.1
XCB compile version: 1.12

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_INPUT: yes
HAVE_DRM: yes
HAVE_GBM: yes                                                                                                        
HAVE_X11_XCB: yes                                                                                                    
HAVE_EPOXY_GLX: yes                                                                                                  
HAVE_WAYLAND_EGL: yes                                                                                                
                                                                                                                     
X11                                                                                                                  
===                                                                                                                  
Vendor: The X.Org Foundation                                                                                         
Vendor Release: 11903000                                                                                             
Protocol Version/Revision: 11/0                                                                                      
SHAPE: yes; Version: 0x11                                                                                            
RANDR: yes; Version: 0x14                                                                                            
DAMAGE: yes; Version: 0x11                                                                                           
Composite: yes; Version: 0x4                                                                                         
RENDER: yes; Version: 0xb                                                                                            
XFIXES: yes; Version: 0x50                                                                                           
SYNC: yes; Version: 0x31                                                                                             
GLX: yes; Version: 0x0                                                                                               
                                                                                                                     
Decoration                                                                                                           
==========                                                                                                           
Plugin: org.kde.kwin.aurorae                                                                                         
Theme: __aurorae__svg__KvAmbience                                                                                    
Blur: 1                                                                                                              
onAllDesktopsAvailable: true                                                                                         
alphaChannelSupported: true                                                                                          
closeOnDoubleClickOnMenu: false                                                                                      
decorationButtonsLeft: 0, 9                                                                                          
decorationButtonsRight: 3, 4, 5                                                                                      
borderSize: 0                                                                                                        
gridUnit: 10                                                                                                         
font: Noto Sans,10,-1,0,50,0,0,0,0,0                                                                                 
smallSpacing: 2
largeSpacing: 10

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5019
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 1
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 1
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
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
glSmoothScale: 2
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: true
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 101
glPlatformInterface: 1
windowsBlockCompositing: false

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1

Screen 0:
---------
Name: eDP-1
Geometry: 0,0,1920x1080
Refresh Rate: 60.0204


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 
OpenGL version string: 3.0 Mesa 17.1.5
OpenGL platform interface: GLX
OpenGL shading language version string: 1.30
Driver: Intel
GPU class: Unknown
OpenGL version: 3.0
GLSL version: 1.30
Mesa version: 17.1.5
X server version: 1.19.3
Linux kernel version: 4.9.39
Direct rendering: Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
zoom
slidingpopups
kwin4_effect_login
kwin4_effect_logout
screenshot
magiclamp
desktopgrid
kwin4_effect_windowaperture
cubeslide
cube
colorpicker
kwin4_effect_fade
kwin4_effect_maximize
kwin4_effect_morphingpopups
presentwindows
highlightwindow
blur
startupfeedback
screenedge
kscreen

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

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

kwin4_effect_logout:

screenshot:

magiclamp:
animationDuration: 250

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_windowaperture:

cubeslide:
rotationDuration: 300
dontSlidePanels: false
dontSlideStickyWindows: false
usePagerLayout: false
useWindowMoving: false

cube:
cubeOpacity: 0.800000011920929
opacityDesktopOnly: false
displayDesktopName: true
reflection: true
rotationDuration: 500
backgroundColor: #000000
capColor: #e6e5e4
paintCaps: false
closeOnMouseRelease: false
zPosition: 300
useForTabBox: false
invertKeys: false
invertMouse: false
capDeformationFactor: 0
useZOrdering: false
texturedCaps: true

colorpicker:

kwin4_effect_fade:

kwin4_effect_maximize:

kwin4_effect_morphingpopups:

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

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 3 Tsu Jan 2017-07-27 21:58:21 UTC
Another descriptive info, if it helps:

With kwin effects enabled, starting Dolphin (and some other apps that may have a delay on starting -- although I think Dolphin's start delay is a bug) sometimes creates an empty rectangle, inside which Dolphin appears after ~1 second or less. Again, this never happens when Dolphin is started under Compiz with several effects enabled.
Comment 4 Martin Flöser 2017-07-28 04:17:38 UTC
Are you using dri2 or dri3? Are you using the Intel xorg driver or modesettings driver?
Comment 5 Tsu Jan 2017-07-28 11:44:15 UTC
It's modesetting ("xf86-video-intel" was VERY buggy here and its use is discouraged correctly, IMO). As for dri3, `LIBGL_DEBUG=verbose glxinfo | grep libgl` gives:

...
libGL: pci id for fd 4: 8086:191b, driver i965
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/i965_dri.so
libGL: Using DRI3 for screen 0
...
Comment 6 Martin Flöser 2017-07-28 16:14:48 UTC
You could try switching to OpenGL 3
Comment 7 Tsu Jan 2017-07-28 16:39:28 UTC
> You could try switching to OpenGL 3

I had tried that before but got error messages in `~/.local/share/sddm/xorg-session.log` (I don't remember them).

However, I tried it again a few minutes ago and saw no error message (because of recent fixes?). The performance is better now but the lagging and choppy animation are still reproducible immediately after a window is opened/closed, and that includes cube rotation too; the difference is just that now, one has to try a little harder to see them.

The reason why I see it more than others may be because of the way I use desktop. For example, I may open a window and quickly change desktop (with cube animation) to open a terminal. All the bad performance I've seen is about when an animation should be FINISHED and another should be STARTED; otherwise, single animations are always smooth.
Comment 8 Tsu Jan 2017-07-28 16:45:37 UTC
Oh, I forgot to tell you about something that may contain a clue:

KWin effects (animation) may interfere with non-kwin ones too. For example, I also use KWin under LXQt. LXQt's hiding panel has an animation and sometimes, when I close a window and make the panel visible, kwin makes the latter (non-kwin) animation choppy too.

A few minutes ago, I logged out of KDE and into LXQt and saw the same thing with OpenGL3.

Again, this never happens with Compiz; so, something in kwin should be the cause.
Comment 9 Tsu Jan 2017-08-15 22:47:58 UTC
I tried the Intel Xorg driver again -- its bugs are fixed now -- but it had no effect on this problem.
Comment 10 Martin Flöser 2017-08-16 04:17:39 UTC
What about switching to breeze window decoration?
Comment 11 Tsu Jan 2017-08-16 04:52:08 UTC
> What about switching to breeze window decoration?

I sometimes use breeze but there's no difference in this regard.

I tested with an older Intel-based Asus laptop and saw that the problem was so mild that it was almost invisible, although I could reproduce it by rotating the desktop cube rapidly on closing Firefox and Thunderbird (with fade effect).

My work laptop (Lenovo Ideapad Y700) is newer and the issue can be seen easily with it. Neither on Asus nor on Lenovo, there's no suspicious CPU usage when KWin animations interfere with each other.

Is there any theoretical explanation about how KWin animations could interfere with each other or with non-kwin ones? Can Xorg also have a part in this?
Comment 12 Tsu Jan 2017-11-22 17:41:46 UTC
Switching to DDR2 (with modesetting) and choosing "OpenGl 2.0" as well as "Full screen repaints" in System Settings had a considerable positive effect. DDR3 seems to have bugs, whether with modesetting or with the Intel driver.

Looking forward to a fully usable Wayland plasma.
Comment 13 Tsu Jan 2017-11-22 17:42:47 UTC
Sorry, I meant DRI2 -- copy/paste typo.
Comment 14 Martin Flöser 2017-11-22 19:06:17 UTC
Marking as upstream as it looks quite a lot like a driver issue.
Comment 15 Tsu Jan 2017-11-22 19:19:31 UTC
> Marking as upstream as it looks quite a lot like a driver issue.

Most probably.
Comment 16 Tsu Jan 2018-07-16 13:33:52 UTC
For the sake of thoroughness, I should add that it wasn't a driver issue but really a kwin problem, which is fixed in V5.13 somehow (the new blur effect may have a role in that).

My reason is that no driver was upgraded when kwin was upgraded to V5.13 (now, 5.13.3).