https://bugs.kde.org/show_bug.cgi?id=525537

--- Comment #8 from [email protected] ---
Captured a WAYLAND_DEBUG=1 trace of plasmashell across a suspend/resume cycle.
The trace contains both the healthy and the bad state, and the difference is
unambiguous.

The affected surface is wl_surface#55, created as a layer-shell surface with
namespace "desktop" (zwlr_layer_shell_v1.get_layer_surface(..., "desktop")) —
i.e. the wallpaper/desktop layer.

Before suspend: 7 commits on that surface (static wallpaper, as expected).
After resume: 4,305 commits total, at a sustained ~119 commits/sec on a 120 Hz
panel, indefinitely, with no content change on screen.

In an 8,000-line slice of the bad state (6.71s):

799 REQ wl_surface#55.frame
799 REQ wl_surface#55.damage_buffer
799 REQ wl_surface#55.commit
799 REQ wl_surface#55.attach
799 EVT wl_callback#106.done
798 REQ wl_display#1.sync

Every frame does a full attach + damage_buffer + frame + commit with a real
buffer (three wl_buffers rotating, normal releases), so it is genuinely
re-rendering identical content each refresh. Notably there is also one
wl_display.sync roundtrip per frame; at the syscall level that roundtrip
returns the same serial (0x3899) every time. The commits are issued from the
{mesa egl surface queue} thread rather than the default queue.

perf record during an episode shows the Wayland event thread dominating (~66%
of P-core samples in kernel, plus libc/libwayland), with QSGRenderThread in
libgallium on the E-cores. strace -c over 10s in the bad state: 35,017 futex,
15,718 ioctl, 7,076 poll, 4,800 recvmsg (2,400 EAGAIN), 4,800 getpid — far
above the ~120/s a 120 Hz frame loop would need.

The surface also has a wp_fractional_scale_v1 attached, and kwin sends
preferred_buffer_scale(2); changing the output scale from 1.7 to 1.6 did not
affect the bug, but noting it in case the fractional-scale path is involved.

Correction to my earlier reports: the episode is not permanent. It does end on
its own after some minutes, though I have not yet timed it precisely.
Restarting plasmashell also ends it immediately.

Also ruled out since my last comment: fingerprint unlock (deleted all enrolled
prints — the spurious wake-time auth attempt and this bug both still occur),
night light/HDR/VRR (all at defaults, nothing in kwinrc), multiple Activities
(only one). Kernel is now 7.2.6 (was 7.2.2 when filed) — unchanged behavior
across both.

Full trace available on request.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to