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

            Bug ID: 523195
           Summary: KWin Wayland intermittently stops compositing for 2 to
                    60 seconds during fullscreen Xwayland gaming: screen
                    and hardware cursor freeze together, audio and input
                    continue, then rendering resumes on its own.
    Classification: Plasma
           Product: kwin
      Version First 6.7.0
       Reported In:
          Platform: CachyOS
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 194395
  --> https://bugs.kde.org/attachment.cgi?id=194395&action=edit
dump logs from freeze

## Regression window
Not present in Plasma 6.6.5 (same hardware, daily fullscreen gaming, no
freezes; a separate frame-pacing issue existed instead). First freezes
appeared within two days of upgrading to 6.7.0 (2026-06-20 upgrade; by
2026-06-22 the stalls were frequent enough that KWIN_DRM_NO_AMS=1 was being
tested as a workaround). Reproduced unchanged on 6.7.1, 6.7.2, 6.7.3.

## Environment
- KWin/Plasma 6.7.1, 6.7.2, 6.7.3 (reproduced on all three), Qt 6.x,
Arch/CachyOS
- Kernel 7.1.1, Mesa 26.1.2 (RADV/amdgpu), atomic modesetting
- GPU: AMD RX 9070 XT (Navi 48 / RDNA4, DCN 4.0.1)
- Displays: DP-1 3840x2160@120 (HDR) + HDMI-A-1 2560x1440@120, both on the dGPU
- Client: fullscreen/borderless Xwayland game (FFXIV via Wine/Proton), DXVK

## Evidence (19 consistent captures)
A watchdog dumps all kwin thread stacks whenever the main thread's CPU time
stays flat >=2.5s while the game is actively rendering. All 19 captures over
three weeks show the identical state:
- main thread: ppoll -> qt_safe_poll -> QEventDispatcherUNIX::processEvents ->
  QEventLoop::exec -> QCoreApplication::exec (byte-identical to its idle stack;
  NOT blocked in any ioctl/xcb/futex/fence)
- DrmCommitThreads (DP-1, HDMI-A-1): sleeping in hrtimer_nanosleep
- all other threads parked normally (futex_wait/ppoll)
- gpu_busy 85-100% throughout (client rendering normally; a MangoHud capture
  taken DURING a freeze shows the game presenting 130 fps with flat 7.6 ms
  frametimes for the entire frozen minute)

## Ruled out by A/B testing (freeze reproduced in every configuration)
- Legacy vs atomic modesetting (KWIN_DRM_NO_AMS=1 and default)
- Mixed refresh (120+60) vs matched (120+120); dual vs single monitor
- VRR enabled vs disabled; HDR on (always)
- Two different mice; HID vendor-interface traffic eliminated
- CPU scheduler (EEVDF vs sched_ext), GPU undervolt (also stock), cables
- Local per-window-scale patch vs stock kwin (reproduced on pure stock 6.7.2)

## Expected
Compositor schedules a composite whenever the fullscreen client commits new
buffers.

## Actual
RenderLoop stops being triggered for seconds at a time; recovery is
spontaneous (next input burst / focus event / unknown).

Happy to provide full stack dumps, the watchdog script, journals, or run
patched/debug builds.

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

Reply via email to