Summary: | UI freezes and kwin_wayland goes into an infinite loop when turning on TV screen with VR headset connected | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Maciej Stanczew <maciej.stanczew> |
Component: | wayland-generic | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate, xaver.hugl |
Priority: | NOR | Keywords: | regression |
Version: | 5.25.2 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=456369 | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/913ca1d6e8cf06602816cd3c7f26b0c2a47bdbd7 | Version Fixed In: | 5.25.3 |
Attachments: |
'journalctl -b | grep kwin_wayland_drm' for 5.25.1 and 5.25.2
journal for 5.25.2 with VR headset unplugged journal for 5.25.2 + MR 2600 |
Description
Maciej Stanczew
2022-07-04 01:03:16 UTC
Created attachment 150395 [details]
journal for 5.25.2 with VR headset unplugged
Looking through the commits between 5.25.1 and 5.25.2, I see mention of setups with VR headsets; and I do in fact have a Valve Index connected to the PC.
As a test I unplugged the headset, and the issue disappeared. Now there are just two short sets of messages in the logs (attached): one about the TV output disappearing (18:20:51 = when power on button is pressed on the remote), and one about the output reappearing after a couple of seconds (18:20:58 = when the TV actually turns on).
Bisection (with the VR headset connected) was a bit problematic, because after commit ea8b0d962 and before 3bac0cd07 kwin would just hang on boot; I had to either not include any of those commits, or include both of them. Ultimately I confirmed that commit cb5981a16 (= v5.25.1) works (despite still printing some "Atomic test for (0) failed! Invalid argument" messages), while commit ea8b0d962 with cherry-picked 3bac0cd07 doesn't work (leads to the infinite loop in kwin_wayland).
Can you test https://invent.kde.org/plasma/kwin/-/merge_requests/2600? Created attachment 150423 [details]
journal for 5.25.2 + MR 2600
Yup, with commit ecff4a2c43e7c10dfa709c4ca71cf1a37dae6121 applied on top of 5.25.2, the issue is gone.
I'm attaching journal logs for completeness; TV power on was pressed at 17:43:24 and then again at 20:52:25.
Thank you.
(I assume I should wait for the change to be merged before marking this as resolved, right?)
Git commit a71146c999728b06654ba247644b6b22609f0dff by Xaver Hugl. Committed on 05/07/2022 at 19:11. Pushed by zamundaaa into branch 'master'. backends/drm: don't remove connectors the kernel doesn't consider removed Removing connectors that are still powered leads to a mismatch in atomic commits: the crtc is still powered, but the connector also still there. If KWin tries to disable the crtc afterwards, the atomic commits fail because the connector needs to be disabled at the same time and it's missing from the atomic commit request. To fix this, whenever we fail to fetch information or get wrong data from the kernel (like 0 modes), use the cached information instead and keep the connector. M +22 -28 src/backends/drm/drm_gpu.cpp M +5 -4 src/backends/drm/drm_object_connector.cpp https://invent.kde.org/plasma/kwin/commit/a71146c999728b06654ba247644b6b22609f0dff Git commit 913ca1d6e8cf06602816cd3c7f26b0c2a47bdbd7 by Xaver Hugl. Committed on 05/07/2022 at 19:36. Pushed by zamundaaa into branch 'Plasma/5.25'. backends/drm: don't remove connectors the kernel doesn't consider removed Removing connectors that are still powered leads to a mismatch in atomic commits: the crtc is still powered, but the connector also still there. If KWin tries to disable the crtc afterwards, the atomic commits fail because the connector needs to be disabled at the same time and it's missing from the atomic commit request. To fix this, whenever we fail to fetch information or get wrong data from the kernel (like 0 modes), use the cached information instead and keep the connector. (cherry picked from commit a71146c999728b06654ba247644b6b22609f0dff) M +22 -28 src/backends/drm/drm_gpu.cpp M +5 -4 src/backends/drm/drm_object_connector.cpp https://invent.kde.org/plasma/kwin/commit/913ca1d6e8cf06602816cd3c7f26b0c2a47bdbd7 |