https://bugs.kde.org/show_bug.cgi?id=526776
Bug ID: 526776
Summary: Pointer hitches on the first movement after the screen
has been still for about 2 seconds
Classification: Plasma
Product: kwin
Version First 6.7.5
Reported In:
Platform: Fedora RPMs
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: performance
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 196929
--> https://bugs.kde.org/attachment.cgi?id=196929&action=edit
Output of `busctl --user call org.kde.KWin /KWin org.kde.KWin
supportInformation`
On a Plasma Wayland session, the mouse pointer hitches on the first movement
after the screen has been still. Continuous movement is smooth. A window that
keeps redrawing, such as video in Brave, does not show it. The same mouse on
Ubuntu 22.04 X11 on this same panel did not do it.
STEPS TO REPRODUCE
1. Log in to a Plasma Wayland session on a 60 Hz internal panel. Adaptive Sync
is Never.
2. Leave the pointer still on the empty desktop for about 2 seconds.
3. Move the pointer(the faster the initial flick is the more noticeable the
problem).
4. Keep moving without stopping.
OBSERVED RESULT
The first movement hitches. Movement after that is smooth.
A pause shorter than one second: [does / does not] hitch.
EXPECTED RESULT
The first movement is as smooth as the rest.
WHAT WAS RULED OUT
- KWIN_FORCE_SW_CURSOR=1, applied and logged in with it. The hitch remained.
- amdgpu.dcdebugmask=0x2 (DC_DISABLE_STUTTER), confirmed in /proc/cmdline and
in /sys/module/amdgpu/parameters/dcdebugmask as 2. The hitch remained.
- power_dpm_force_performance_level=high. The hitch remained, then the value
was set back to auto.
- USB autosuspend of the mouse. The device stays active.
- Panel Self Refresh. The kernel log says eDP-1 PSR support 0.
SUSPECTED CAUSE
KWin 6.7.5 src/core/renderloop.cpp, in RenderLoopPrivate::scheduleRepaint().
When pageflipsSince > 100, KWin assumes the GPU is in a low power state and
sets the expected compositing time to almost one full refresh. At 60.10 Hz, 100
frames is about 1.66 seconds. The first update after that misses the upcoming
vblank. Later updates use the normal budget.
This was introduced by commit c5fb21fd ("core/renderloop: assume high render
times if the last frame has been a while ago"), referenced from bug 488843. The
commit message says the change is not generally noticeable. On this 60 Hz panel
the missed frame is visible as a hitch at the start of pointer movement.
SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 44
KDE Plasma Version: 6.7.5
KDE Frameworks Version: 6.30.0
Qt Version: 6.11.2
Kernel Version: 7.2.8-200.fc44.x86_64
Graphics Platform: Wayland
Mesa: 26.2.3
GPU: AMD Radeon 740M, Phoenix1 [1002:15bf], DCN 3.1.4
Panel: eDP-1 1920x1200 @ 60.10 Hz, scale 1, Adaptive Sync never
Laptop model: Lenovo ThinkPad T16 Gen2 AMD
--
You are receiving this mail because:
You are watching all bug changes.