Bug 304375

Summary: Zoom effect: screen image jumps when cursor is blinking
Product: [Plasma] kwin Reporter: Pascal d'Hermilly <pascal>
Component: compositingAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: eric.erfanian, leszek.lesner, obuolis1, thomas.luebking, virgolus
Priority: NOR Flags: thomas.luebking: ReviewRequest+
Version: unspecified   
Target Milestone: 4.9.1   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.1
Sentry Crash Report:
Attachments: kwin support information

Description Pascal d'Hermilly 2012-08-01 11:13:14 UTC
KDE 4.8.90

When using the zoom effect the image jumps in the same rate as the cursor is blinking.

Reproducible: Always

Steps to Reproduce:
1. open kate or a webbrowser with a typing field.
2. zoom in via the kwin zoom effect
Actual Results:  
the screen image jumps in the rate of the blinking cursor.
Sometimes a bit zooming in and out will trigger it.

Expected Results:  
Stable
Comment 1 Thomas Lübking 2012-08-01 12:01:58 UTC
Please record:
- the output of "qdbus org.kde.kwin /KWin supportInformation"
- zoom effect settings (pointer style, mouse & focus tracking)
Comment 2 Pascal d'Hermilly 2012-08-01 12:08:41 UTC
Created attachment 72873 [details]
kwin support information
Comment 3 Pascal d'Hermilly 2012-08-01 12:10:51 UTC
zoom effect settings:
zoom factor: 1,20
mouse pointer: scale
Mouse tracking: propotional
Enable focus tracking: false
Follow focus: true (disabled)
Comment 4 Thomas Lübking 2012-08-01 12:17:37 UTC
Please try enabling v'sync - there was a bug that is fixed for 4.9.0.
Comment 5 Pascal d'Hermilly 2012-08-01 12:38:10 UTC
enabling vsync in 4.8.90 does not change anything for me (unless I need to restart X)
Comment 6 Thomas Lübking 2012-08-01 18:42:25 UTC
"blast!"

It's between glXSwapInterval and page flipping (and pot. triple buffering)

"somehow" just calling glXSwapInterval seems to bring an "invalid" backbuffer to the front (there may be some because we do not paint unless there's an update, so one of the buffers may be unused for a random amount of time if there're "unconditional"(?) swaps)

Just not using glXSwapInterval and relying on waitSync() instead turns this reliably on/off as deactivating page flipping (nvidia blob feature,. no idea about mesa in this regard) does.

Getting the other buffer valid by causing high repaint frequency (eg. shifting the screen section by moving the mouse) will mitigate the issue (but it remains, there's some unusual flicker in the cursor)
Comment 7 Thomas Lübking 2012-08-11 19:33:12 UTC
*** Bug 304984 has been marked as a duplicate of this bug. ***
Comment 8 Thomas Lübking 2012-08-23 15:09:10 UTC
*** Bug 303202 has been marked as a duplicate of this bug. ***
Comment 9 Thomas Lübking 2012-08-23 15:14:23 UTC
https://git.reviewboard.kde.org/r/106142/

This should fix it, but testing would be much appreciated.
Comment 10 Thomas Lübking 2012-08-28 19:49:52 UTC
Git commit 354ee4ab1dd8581fdf332bbbb462d864917a7d55 by Thomas Lübking.
Committed on 23/08/2012 at 16:51.
Pushed by luebking into branch 'KDE/4.9'.

fix flicker with fullscreen effects
FIXED-IN: 4.9.1
REVIEW: 106142

M  +12   -3    kwin/composite.cpp
M  +3    -0    kwin/scene.h
M  +1    -0    kwin/scene_opengl.h

http://commits.kde.org/kde-workspace/354ee4ab1dd8581fdf332bbbb462d864917a7d55
Comment 11 Thomas Lübking 2012-08-28 19:51:38 UTC
Git commit 33724eee626872abeb15149d22cf5f28d0d7ecef by Thomas Lübking.
Committed on 23/08/2012 at 16:51.
Pushed by luebking into branch 'master'.

fix flicker with fullscreen effects
FIXED-IN: 4.9.1
REVIEW: 106142

M  +10   -3    kwin/composite.cpp
M  +3    -0    kwin/scene.h
M  +1    -0    kwin/scene_opengl.h

http://commits.kde.org/kde-workspace/33724eee626872abeb15149d22cf5f28d0d7ecef
Comment 12 Thomas Lübking 2012-08-31 15:18:00 UTC
*** Bug 306079 has been marked as a duplicate of this bug. ***
Comment 13 Thomas Lübking 2012-09-06 12:55:02 UTC
*** Bug 306333 has been marked as a duplicate of this bug. ***