Bug 481523

Summary: cursor flickers on external monitor in present windows mode
Product: [Plasma] kwin Reporter: fanzhuyifan
Component: effects-present-windowsAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal Keywords: qt6
Priority: NOR    
Version First Reported In: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description fanzhuyifan 2024-02-18 19:38:22 UTC
Only happens on external monitor; occurs more often when shake cursor effect is turned on.
Using a dual gpu system with intel igpu and nvidia dgpu. I think this is a recent regression.

Operating System: Arch Linux 
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 6.0.0
Qt Version: 6.7.0
Kernel Version: 6.7.5-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 20 × 13th Gen Intel® Core™ i9-13900H
Memory: 15.2 GiB of RAM
Graphics Processor: Mesa Intel® Graphics
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: ROG Zephyrus G16 GU603VV_GU603VV
System Version: 1.0
Comment 1 fanzhuyifan 2024-02-18 21:07:43 UTC
Can't reproduce at all on my neon unstable system on the same machine. So maybe this is caused by the nvidia driver version? On arch I have 545.29.06.
Comment 2 Vlad Zahorodnii 2024-02-20 23:09:42 UTC
Git commit bb8b51a3abe750a42907f393bc35da5f5d034a83 by Vlad Zahorodnii.
Committed on 20/02/2024 at 23:01.
Pushed by vladz into branch 'master'.

Fix disappearing software cursor in overview and zoom effect

The overview and the zoom effect repaint the whole screen every frame.
But the problem is that there are cases when there's nothing to repaint.
I'm not quite sure why it happens. Maybe overview and other effects
should honor the repaint region, but on the other hand, they don't need
to because of the fullscreen effect api promises.

This change forces overview and zoom effect to use "generic paint" code
path in the workspace scene to force infiniteRegion() repaint regions.

M  +2    -0    src/effect/quickeffect.cpp
M  +1    -0    src/plugins/zoom/zoom.cpp

https://invent.kde.org/plasma/kwin/-/commit/bb8b51a3abe750a42907f393bc35da5f5d034a83
Comment 3 Vlad Zahorodnii 2024-02-20 23:29:57 UTC
Git commit 6e7088d047d8c2ddb550be5a14606918f552a3b6 by Vlad Zahorodnii.
Committed on 20/02/2024 at 23:21.
Pushed by vladz into branch 'Plasma/6.0'.

Fix disappearing software cursor in overview and zoom effect

The overview and the zoom effect repaint the whole screen every frame.
But the problem is that there are cases when there's nothing to repaint.
I'm not quite sure why it happens. Maybe overview and other effects
should honor the repaint region, but on the other hand, they don't need
to because of the fullscreen effect api promises.

This change forces overview and zoom effect to use "generic paint" code
path in the workspace scene to force infiniteRegion() repaint regions.
(cherry picked from commit bb8b51a3abe750a42907f393bc35da5f5d034a83)

M  +2    -0    src/effect/quickeffect.cpp
M  +1    -0    src/plugins/zoom/zoom.cpp

https://invent.kde.org/plasma/kwin/-/commit/6e7088d047d8c2ddb550be5a14606918f552a3b6