Bug 411092 - Wobbly Effects leaves window trails behinds
Summary: Wobbly Effects leaves window trails behinds
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 5.16.4
Platform: Manjaro Linux
: NOR normal
Target Milestone: ---
Assignee: Vlad Zahorodnii
URL: https://phabricator.kde.org/D23774
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-20 08:34 UTC by wolfyrion
Modified: 2019-09-09 07:26 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.17.0
vlad.zahorodnii: ReviewRequest+


Attachments
Wobly Trails bug (275.17 KB, image/jpeg)
2019-08-20 08:34 UTC, wolfyrion
Details

Note You need to log in before you can comment on or make changes to this bug.
Description wolfyrion 2019-08-20 08:34:49 UTC
Created attachment 122257 [details]
Wobly Trails bug

SUMMARY
When Enable wobbly effects and set settings to the max , if you move any window for example dolphin a bit fast you can see that the current window leave trails behind until the wobbly effect is over.

STEPS TO REPRODUCE
1. Enable Wobbly effects and set settings to the max
2. Move a window left and right a bit fast
3. 

OBSERVED RESULT
Trails all over the window

EXPECTED RESULT
Move the window smoothly 

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Manjaro/5.16.4
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Go to wobbly windows and enable advance mode and drag everything to the max, dont know if that should be the default behaviour of that effect
Comment 1 Vlad Zahorodnii 2019-08-20 17:32:08 UTC
Hmm, that's weird. I'm pretty sure that we didn't have issues with dragging windows before (well, except when the maximized client is dragged by the titlebar, but that was fixed).
Comment 2 Vlad Zahorodnii 2019-09-07 08:11:07 UTC
It doesn't look like the wobbly windows effect schedules wrong repaint region because if I force full screen repaints, I can still see window trail behind an animated window.

Please post output of
    qdbus org.kde.KWin /KWin supportInformation
Comment 3 wolfyrion 2019-09-07 11:03:58 UTC
KWin Support Information:
The following information should be used when requesting support on e.g. https://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 https://paste.kde.org instead of pasting into support threads.

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

Version
=======
KWin version: 5.16.5
Qt Version: 5.13.0
Qt compile version: 5.13.0
XCB compile version: 1.13.1

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_DRM: yes
HAVE_GBM: yes
HAVE_EGL_STREAMS: yes
HAVE_X11_XCB: yes
HAVE_EPOXY_GLX: yes
HAVE_WAYLAND_EGL: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 12005000
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.oxygen
Theme: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,5,50,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10

Platform
==========
Name: KWin::X11StandalonePlatform

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: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
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
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: 1
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: true
glPreferBufferSwap: 99
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:  yes
Number of Screens: 4

Screen 0:
---------
Name: HDMI-0
Geometry: 0,0,1920x1080
Scale: 1
Refresh Rate: 60

Screen 1:
---------
Name: DP-4
Geometry: 1920,0,1920x1200
Scale: 1
Refresh Rate: 59.9502

Screen 2:
---------
Name: DP-2
Geometry: 5760,0,1920x1080
Scale: 1
Refresh Rate: 60

Screen 3:
---------
Name: DP-0
Geometry: 3840,0,1920x1080
Scale: 1
Refresh Rate: 60


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1080 Ti/PCIe/SSE2
OpenGL version string: 3.1.0 NVIDIA 435.21
OpenGL platform interface: GLX
OpenGL shading language version string: 1.40 NVIDIA via Cg compiler
Driver: NVIDIA
Driver version: 435.21
GPU class: Unknown
OpenGL version: 3.1
GLSL version: 1.40
X server version: 1.20.5
Linux kernel version: 5.3
Direct rendering: Requires strict binding: no
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  yes

Loaded Effects:
---------------
lookingglass
kwin4_effect_windowaperture
slide
screenshot
magiclamp
glide
flipswitch
desktopgrid
coverswitch
colorpicker
wobblywindows
presentwindows
highlightwindow
fallapart
startupfeedback
kscreen

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

Effect Settings:
----------------
lookingglass:
initialRadius: 200

kwin4_effect_windowaperture:
isActiveFullScreenEffect: false

slide:
duration: 500
horizontalGap: 45
verticalGap: 20
slideDocks: false
slideBackground: true

screenshot:

magiclamp:

glide:
duration: 160
inRotationEdge: 0
inRotationAngle: 3
inDistance: 30
inOpacity: 0.4
outRotationEdge: 2
outRotationAngle: 3
outDistance: 30
outOpacity: 0

flipswitch:
tabBox: true
tabBoxAlternative: false
duration: 200
angle: 30
xPosition: 0.33000001311302185
yPosition: 1
windowTitle: true

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

coverswitch:
animationDuration: 200
animateSwitch: true
animateStart: true
animateStop: true
reflection: true
windowTitle: true
zPosition: 900
primaryTabBox: false
secondaryTabBox: false

colorpicker:

wobblywindows:
stiffness: 0.01
drag: 0.97
moveFactor: 0.25
xTesselation: 20
yTesselation: 20
minVelocity: 0
maxVelocity: 1000
stopVelocity: 0.5
minAcceleration: 0
maxAcceleration: 1000
stopAcceleration: 0.5
moveEffectEnabled: true
openEffectEnabled: false
closeEffectEnabled: false
moveWobble: true
resizeWobble: true

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:

fallapart:
blockSize: 40

startupfeedback:
type: 1

kscreen:
Comment 4 Vlad Zahorodnii 2019-09-07 11:32:36 UTC
I did more testing and it appears like only opaque clients leave trails.
Comment 5 Vlad Zahorodnii 2019-09-07 11:34:13 UTC
Seems like something goes wrong when we perform occlusion culling pass.
Comment 6 Vlad Zahorodnii 2019-09-07 20:50:22 UTC
Git commit 4d4d9990ddc2b8a82c40fe151cc689269e3b8389 by Vlad Zagorodniy.
Committed on 07/09/2019 at 20:50.
Pushed by vladz into branch 'master'.

[effects/wobblywindows] Draw clients below opaque wobbly windows

Summary:
Given that wobbly windows effect takes optimized render path, it needs
to clear the clip region of about to be transformed opaque window.
FIXED-IN: 5.17.0

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D23774

M  +4    -0    effects/wobblywindows/wobblywindows.cpp

https://commits.kde.org/kwin/4d4d9990ddc2b8a82c40fe151cc689269e3b8389
Comment 7 wolfyrion 2019-09-08 04:10:33 UTC
Thank you very much for your effort , for your research, finding and fixing this bug.

Although I have many questions like for example why this bug is happening to me and not to other users? What it means it happens to opaque wobbly windows? Why I am an opaque client?

Is ok if you dont have time to answer, I understand :)

Thanks again!
Comment 8 Vlad Zahorodnii 2019-09-09 07:26:22 UTC
(In reply to wolfyrion from comment #7)
> Although I have many questions like for example why this bug is happening to
> me and not to other users? What it means it happens to opaque wobbly
> windows? Why I am an opaque client?

This happens when you drag an opaque client, i.e. a client without alpha channel. I don't refer to you as "client."