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

Seb Burrell <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #13 from Seb Burrell <[email protected]> ---
Created attachment 197014
  --> https://bugs.kde.org/attachment.cgi?id=197014&action=edit
510886-plasmashell-syncWindow-popup

Seeing this with much larger delays than 150 ms on a desktop that has more
popup content.

Setup: Fedora 44, Plasma 6.7.5, KF 6.30.0, Qt 6.11.2, Wayland, NVIDIA RTX 3080
Ti, driver 615.71.09. Plasma style is Layan, which ships its own `colors` file
(it doesn't follow the colour scheme).

I ran a monitor that probes plasmashell's main thread every second and takes an
eu-stack when a probe takes more than 250-500 ms. Over about 24 hours, the most
common plasmashell stall when opening a panel popup (system tray, launcher) had
the main thread in KirigamiPlasmaStyle:
- PlasmaTheme::syncWindow(): QSGGuiThreadRenderLoop::renderWindow -> ensureRhi
-> (signal) -> PlasmaTheme::syncWindow -> QObject::disconnectImpl /
connectImpl, triggered by the popup's expose. Stalls were 1.8 s, and 25 s once,
while a widget was being removed. Two samples 0.6 s apart were both inside
connect/disconnect, so it is CPU-bound and not waiting on anything.
- PlasmaTheme::syncColors(): QQuickItem::windowChanged ->
PlasmaTheme::syncColors -> PlatformTheme::setHoverColor ->
emitSignalsForChanges. 1.0-1.1 s while items were attached to a popup window.
Major page faults during these stalls were negligible, so this isn't swap or
paging.

The same per-delegate cost also multiplies other events. When the digital
clock's calendar resets its DaysModel (see bug 524947), every rebuilt delegate
goes through PlasmaTheme::PlasmaTheme -> syncWindow, and plasmashell stays
frozen for at least 25 s per burst.

Attached: main-thread stacks for a syncWindow popup stall and a syncColors
popup stall.

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

Reply via email to