-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Outputs refuse to enable after being disabled #5101
Comments
Debug logsThese are logs from a reproduction, where I left sway idle for a long time, woke it up, and DP-2 was then dead. I got the screen back alive by switching to another VT, switching back. This made the screen wake up, say no signal, and shut down again. When it shut down, sway registered it and got it back up correctly.
And the following snippets that I keep in /etc/sway/config.d/:
|
Interesting part from debug log:
Failed modeset... |
This sounds and nearly identical to my symptoms in swaywm/wlroots#1877 which I still suffer from frequently even with the environment varialble set. (though, I also wonder about this XPS's usb ports, so I have just been dealing with it by un/re-plugging until it comes back) |
EINVAL actually means that the driver doesn't like our atomic commit. Obtaining DRM logs would be useful… |
Hmm, so far my attempts to reproduce with DRM debug enabled has failed. I wonder if it's a race. |
This DRM log was started after the issue occurred (i.e. dead screen). The screen was turned on/off a few times to no avail (despite having worked previously), but it does appear to populate the log. There's a bunch of failed atomic driver checks in there. A sway reload was also executed under this log recording, as that has helped before. During the time the log was recorded, 3 4k screens were connected to the machine (which is known to exceed DDB limitations of this system), but only one is operable. |
Fun-but-possibly-unrelated fact: Every time I power toggle the dead monitor, it accumulates available modes in sway:
|
About your fun observation, sounds like this: #5044 |
Using I do find this rather weird, as the device can drive all 3 displays without a hitch (although attempts to direct scan-out can lead to DDB limitation warnings), and yet a configuration with only two of these displays fail to resume. :| |
So, I have a few reproductions with debug: Reproduction one: Reproduction two, where there is also some i915 debugfs stuff: Reproduction three, drm_info: |
It just happened with WLR_DRM_NO_MODIFIERS. :/ |
This one is fixed by swaywm/wlroots#2147. |
Can you still reproduce? |
Unfortunately, yes. I get the new and improved error message in the debug log. Not much else, though. Haven't tried to get new DRM logs though. |
|
Interestingly, the behavior seems to have changed after the atomic commit rework. The way a display fails to enable has changed (it is now just black, but is part of the layout and reports as enabled), and it seems to now be fixable by simply disabling and re-enabling the display. It still seems to happen pretty consistently, though, so the problem is still there - just different. I'll take a look at the debug logs again soon. |
This patch fixes this failure: 01:57:16.642 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:732] Failed to initialize renderer on connector 'eDP-1': initial page-flip failed 01:57:16.684 [ERROR] [backend/drm/drm.c:805] Failed to initialize renderer for plane 01:57:16.684 [sway/config/output.c:423] Failed to commit output eDP-1 References: swaywm/sway#5101
This patch fixes this failure: 01:57:16.642 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:732] Failed to initialize renderer on connector 'eDP-1': initial page-flip failed 01:57:16.684 [ERROR] [backend/drm/drm.c:805] Failed to initialize renderer for plane 01:57:16.684 [sway/config/output.c:423] Failed to commit output eDP-1 References: swaywm/sway#5101
This patch fixes this failure: 01:57:16.642 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:360] Failed to page-flip output 'eDP-1': a page-flip is already pending 01:57:16.684 [ERROR] [backend/drm/drm.c:732] Failed to initialize renderer on connector 'eDP-1': initial page-flip failed 01:57:16.684 [ERROR] [backend/drm/drm.c:805] Failed to initialize renderer for plane 01:57:16.684 [sway/config/output.c:423] Failed to commit output eDP-1 References: swaywm/sway#5101
I can happily say that I have not seen this since swaywm/wlroots@8f28f5b was merged! It also appears to have fixed the situation I had where a monitor after being disabled occasionally would re-enable at a wrong mode, being stuck at e.g. 2k for a 4k display. |
Do you still come across the issue mentioned above and in #5044? |
Issue is still present for me in sway 1.5, anybody else tried the fix? |
Outputs can refuse to enable for a number of reasons. Please open a separate bug report with debug logs. |
To reproduce
swayidle
todpms off
/dpms on
on idle/wake-up.Observed to happen on three different computers with each their own dual-screen setup.
Expected output
Everything wakes up.
Actual result
One output remains inactive, and is listed as such by
swaymsg -t get_outputs
, as well as/sys/class/drm/card0-DP-2/enabled
. It cannot be enabled by swaymsg.Switching to another VT shows that the screen is fine and dandy under the linux console. Switching back will generally still show the display as disabled, but sometimes this will cause it to come back to life.
Workaround
Physically turning the screen off, waiting a moment, and turning it back on seems to do the trick.EDIT: This is rarely the case.The text was updated successfully, but these errors were encountered: