| Summary: | Desktop-wide stuttering when resizing certain Wayland clients | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | fililip <team> |
| Component: | wayland-generic | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | nate, olib141, team |
| Priority: | NOR | ||
| Version First Reported In: | 6.5.4 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
fililip
2025-12-15 13:45:57 UTC
Note: setting QT_WIDGETS_RHI=1 and GDK_GL=always makes the stuttering go away. This seems to be somewhat reproducible for me. With vsynctester.com open in Chromium, and resizing a Firefox window, I see the graph become unstable. Resizing a Welcome Center window does not. I discussed it on the KWin Matrix channel and it seems to be an issue with shm vs dmabuf clients. Dmabuf clients don't cause unnecessary buffer copies between the CPU and GPU, unlike shm ones. It might be possible to optimize this a bit, but it's a lot of work and might not be worth it. Firefox uses shm for its window/decorations, but for the rest it uses dmabuf. This issue goes away with GDK_GL=always, but it causes a GPU reset handling regression (probably due to GTK not implementing it correctly with that env var set), and possibly more issues that I did not run into when testing this. The equivalent for Qt Widget apps is QT_WIDGETS_RHI=1, which also fixes the issue but introduces a glitch with menus and also prevents successful recovery after a GPU reset with Qt apps like qBittorrent. Also, setting that env var for KWin causes a crash when right-clicking any titlebar or pressing Alt+F3 - this doesn't happen if only applications receive the variable. Chromium, Zed, etc. use dmabuf for everything and so the stutters don't occur there. Chromium gracefully handles GPU resets, so that means it can work just fine even with that in the picture. So it's difficult to say if this can be labeled as an upstream bug or a KWin bug. |