| Summary: | kwin_wayland loses DRM master during S3 suspend and never re-acquires it on resume, resulting in a permanent black screen. The GPU and NVIDIA kernel modules are fully functional after resume (proven by SysRq test), but kwin enters an unrecoverable error l | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | thedarkbird |
| Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | REPORTED --- | ||
| Severity: | major | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
thedarkbird
2026-02-15 14:11:38 UTC
UPDATE: POSSIBLE WORKAROUND AND ADDITIONAL DATA
Setting KWIN_DRM_DEVICES=/dev/dri/card1 in /etc/environment (restricting kwin to only the NVIDIA GPU) appears to resolve
the issue — suspend/resume worked on the next attempt. However, the bug may be intermittent, so this needs more testing.
With this variable set, kwin still hits the same "Permission denied" race with nvidia-resume.service, but recovers on its
own within milliseconds:
19:08:53.100 session-2.scope thawed
19:08:53.103 nvidia-resume.service starts
19:08:53.109 kwin: Atomic modeset test failed! Permission denied
19:08:53.109 kwin: Setting dpms mode failed!
19:08:53.122 nvidia-resume.service finishes
(kwin recovers silently, session resumes normally)
Compare with the failed resume (without KWIN_DRM_DEVICES):
14:31:06.826 session-2.scope thawed
14:31:06.828 nvidia-resume.service starts
14:31:06.831 kwin: Failed to open drm node: "/dev/dri/card0"
14:31:06.835 kwin: Failed to open drm node: "/dev/dri/card0"
14:31:06.849 kwin: Atomic modeset test failed! Permission denied
14:31:06.849 kwin: Applying output configuration failed!
14:31:06.851 kwin: Atomic modeset test failed! Permission denied
14:31:06.856 nvidia-resume.service finishes
14:31:15 Error storm begins — 2766+ errors, never recovers
One visible difference is kwin trying to open /dev/dri/card0 during the failed resume, which doesn't exist (only
card1=NVIDIA and card2=amdgpu are present). This might be what pushes kwin into the "Applying output configuration failed!"
code path, which might in turn trigger the unrecoverable retry loop 9 seconds later.
That said, a previous boot without KWIN_DRM_DEVICES also hit "Applying output configuration failed!" (from a failed card2
open) and recovered fine — so the card0 probe failure alone doesn't guarantee the loop. The catastrophic failure might
require a specific combination of conditions.
What does seem clear is that the "Permission denied" modeset error by itself is recoverable — every boot has it briefly
during the nvidia-resume race, and kwin handles it. Something additional has to go wrong to trigger the permanent loop.
|