Bug 370612 - Artifacts when dragging maximized (wobbly) windows to different screen
Summary: Artifacts when dragging maximized (wobbly) windows to different screen
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 5.9.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Vlad Zahorodnii
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-12 23:22 UTC by Janek Bevendorff
Modified: 2018-10-20 09:41 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.14.1


Attachments
Screenshot (552.68 KB, image/jpeg)
2016-10-12 23:23 UTC, Janek Bevendorff
Details
Title bar detaching from window (476.15 KB, video/mp4)
2018-10-20 09:37 UTC, Luca
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Janek Bevendorff 2016-10-12 23:22:30 UTC
When I drag a maximized window to another screen with the "Wobbly Windows" effect turned on, weird flickering artifacts are shown on the original screen. Sometimes these are just a few pixels, sometimes they show large parts of the window. This does not happen when dragging non-maximized windows.

The attached screenshot shows a quite extreme example which I could only achieve with Chrome and the "Use system titlebar and borders" setting turned off (with that setting turned on, artifacts are usually less dramatic). However, some artifacts can also be produced with other applications such as Krita.

Using proprietary nvidia driver and TwinView.

Reproducible: Always
Comment 1 Janek Bevendorff 2016-10-12 23:23:56 UTC
Created attachment 101552 [details]
Screenshot
Comment 2 Martin Flöser 2016-10-13 05:34:18 UTC
please provide output of: qdbus org.kde.KWin /KWin supportInformation
Comment 3 Janek Bevendorff 2016-10-13 10:09:56 UTC
Sure. https://paste.kde.org/pl2kiokt6
Comment 4 Martin Flöser 2016-10-13 10:33:52 UTC
Copy from paste:
Version
=======
KWin version: 5.8.1
Qt Version: 5.7.0
Qt compile version: 5.7.0
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: 11804000
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.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: true
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 9
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

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
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: true
glPreferBufferSwap: 99
glPlatformInterface: 1
windowsBlockCompositing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 1
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: 2

Screen 0:
---------
Name: DVI-I-1
Geometry: 0,0,2560x1440
Refresh Rate: 59.9506

Screen 1:
---------
Name: DVI-D-0
Geometry: 2560,0,2560x1440
Refresh Rate: 59.9506


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 960/PCIe/SSE2
OpenGL version string: 3.1.0 NVIDIA 370.28
OpenGL platform interface: GLX
OpenGL shading language version string: 1.40 NVIDIA via Cg compiler
Driver: NVIDIA
Driver version: 370.28
GPU class: Unknown
OpenGL version: 3.1
GLSL version: 1.40
X server version: 1.18.4
Linux kernel version: 4.8.1
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:
---------------
zoom
dimscreen
slidingpopups
kwin4_effect_login
wobblywindows
slide
screenshot
magiclamp
kwin4_effect_windowaperture
glide
kwin4_effect_translucency
desktopgrid
kwin4_effect_morphingpopups
kwin4_effect_fade
kwin4_effect_maximize
presentwindows
kwin4_effect_dialogparent
highlightwindow
blur
contrast
startupfeedback
screenedge
kscreen

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

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

dimscreen:

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

wobblywindows:
stiffness: 0.15
drag: 0.55
moveFactor: 0.1
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

slide:

screenshot:

magiclamp:
animationDuration: 250

kwin4_effect_windowaperture:

glide:
duration: 350
effect: 0
angle: 1

kwin4_effect_translucency:

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

kwin4_effect_morphingpopups:

kwin4_effect_fade:

kwin4_effect_maximize:

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

kwin4_effect_dialogparent:

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

contrast:

startupfeedback:
type: 0

screenedge:

kscreen:
Comment 5 tromzy 2017-03-08 14:20:42 UTC
I get this too on Arch Linux, Plasma 5.9.3.
Comment 6 tromzy 2017-03-08 14:21:05 UTC
With Intel Modesettings driver.
Comment 7 Grief 2017-04-13 11:09:23 UTC
I confirm all of this - exactly the same artifacts in multi monitor setup with intel drivers
Comment 8 Antonio Orefice 2017-07-13 10:53:32 UTC
Seems a bad interaction between Wobbly windows plugin and maximize effect.
Disabling one of them makes the flickering goes away.
Comment 9 Sriram Kumar 2017-08-20 05:36:23 UTC
I can confirm that this bug also occurs when trying to snap a maximised window to one side of a screen. 
I can also confirm that the method @Antonio Orefice suggested (disabling maximise effect) works...
Comment 10 tromzy 2017-09-19 07:32:54 UTC
The bug does not seem to occur on Wayland (if someone can confirm).
Comment 11 Alexander Mentyu 2018-07-17 12:18:30 UTC
I'm not seeing with Wobbly windows effect in X11, on Wayland the Max/Unmax window effect isn't working currently https://bugs.kde.org/show_bug.cgi?id=384462 - but Wobbly effect seems to work ok on single laptop monitor setup

Distribution: Netrunner Rolling
Kernel: 4.18.0-1-MANJARO
Plasma: 5.13.3
Apps: 18.04.3
Qt: 5.11.1
Frameworks: 5.47.0
Wayland: 1.15.0
Graphics:  Card-1: Intel Haswell-ULT Integrated Graphics driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:0a16 
           Display: wayland server: X.Org 1.20.0 driver: intel unloaded: modesetting compositor: kwin_wayland 
           tty: N/A 
           OpenGL: renderer: Mesa DRI Intel Haswell Mobile v: 4.5 Mesa 18.1.4 compat-v: 3.0 direct render: Yes 


KWin Support Information:

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

Version
=======
KWin version: 5.13.3
Qt Version: 5.11.1
Qt compile version: 5.11.1
XCB compile version: 1.13

Operation Mode: Xwayland

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: 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: 12000000
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.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 9, 1
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,5,50,0,0,0,0,0,Regular
smallSpacing: 2
largeSpacing: 10

Platform
==========
Name: DRM
Active: true
Atomic Mode Setting: true

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: false
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 2
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
glSmoothScale: 2
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 112
glPlatformInterface: 2
windowsBlockCompositing: true

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: 1

Screen 0:
---------
Name: B140RTN03.0 eDP-1-unknown
Geometry: 0,0,1600x900
Scale: 1
Refresh Rate: 60


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL version string: 3.0 Mesa 18.1.4
OpenGL platform interface: EGL
OpenGL shading language version string: 1.30
Driver: Intel
GPU class: Haswell
OpenGL version: 3.0
GLSL version: 1.30
Mesa version: 18.1.4
X server version: 1.20
Linux kernel version: 4.18
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:  no

Loaded Effects:
---------------
zoom
kwin4_effect_frozenapp
kwin4_effect_fade
kwin4_effect_logout
kwin4_effect_windowaperture
kwin4_effect_login
kwin4_effect_maximize
kwin4_effect_morphingpopups
kwin4_effect_translucency
kwin4_effect_dialogparent
slidingpopups
wobblywindows
slide
screenshot
minimizeanimation
desktopgrid
coverswitch
colorpicker
presentwindows
highlightwindow
blur
contrast
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
kwin4_effect_fade
blur
contrast
screenedge

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

kwin4_effect_frozenapp:

kwin4_effect_fade:

kwin4_effect_logout:

kwin4_effect_windowaperture:

kwin4_effect_login:

kwin4_effect_maximize:

kwin4_effect_morphingpopups:

kwin4_effect_translucency:

kwin4_effect_dialogparent:

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

wobblywindows:
stiffness: 0.15
drag: 0.8
moveFactor: 0.1
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

slide:

screenshot:

minimizeanimation:

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:

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:

contrast:

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 12 Luca 2018-09-17 19:02:36 UTC
I have the same graphical glitches even when using a single desktop.
I confirm that disabling the maximization effect, the problem seems to disappear.
Comment 13 Vlad Zahorodnii 2018-10-09 15:36:08 UTC
Git commit c2ffcfdc218c94fc93e1960a8760883eef4e4495 by Vlad Zagorodniy.
Committed on 09/10/2018 at 15:30.
Pushed by vladz into branch 'Plasma/5.14'.

[effects/wobblywindows] Fix visual artifacts caused by maximize effect

Summary:
If one wants to drag a maximized window while he or she has enabled both
the Wobbly Windows and the Maximize effect, visual artifacts can be
shown.

When the Maximize effect animates transition from maximize to restore,
some parts of the window can overshoot repaint regions(because of
wobbliness), leaving us with the visual artifacts.

To fix that, we have to take into account current scale and translation
when calculating dirty region in the Wobbly Windows effect.
FIXED-IN: 5.14.1

Test Plan: When dragging maximized windows, there are no visual artifacts anymore.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, kwin

Tags: #kwin

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

M  +8    -2    effects/wobblywindows/wobblywindows.cpp
M  +4    -1    effects/wobblywindows/wobblywindows.h

https://commits.kde.org/kwin/c2ffcfdc218c94fc93e1960a8760883eef4e4495
Comment 14 Grief 2018-10-18 11:09:34 UTC
@Vlad Zagorodniy thank you very much. Plasma 5.14.1 has just released and I can confirm that this issue is finally fixed. Thank you!
Comment 15 Luca 2018-10-20 09:37:41 UTC
Created attachment 115776 [details]
Title bar detaching from window

The fix solved the previous glitch.

However it seems to have introduced a little artifact, where the title bar seems to detach from the window (when wobbly windows is active)
Comment 16 Vlad Zahorodnii 2018-10-20 09:41:03 UTC
(In reply to Luca from comment #15)
> Created attachment 115776 [details]
> Title bar detaching from window
> 
> The fix solved the previous glitch.
> 
> However it seems to have introduced a little artifact, where the title bar
> seems to detach from the window (when wobbly windows is active)
No, that glitch wasn't introduced by the fix. That's caused by the texture bleeding.

See bug 257566.