Hyprland
Hyprland copied to clipboard
DPMS does not turn on again
Hyprland Version
System/Version info
Hyprland, built from branch at commit 791e1b96b3cd12d56648b3ce7ffb0832eba2b37d ().
Date: 2024-01-23
Tag:
flags: (if any)
Bug or Regression?
Bug
Description
When I turn my monitors off with hyprctl dispatch dpms off everything turns off, but when I try to turn them back on again with hyprctl dispatch dpms on only my secondary/external monitor turns on. I also checked the versions v0.33.0 and v0.34.0 and the problem is there as well.
My current preferred monitor config is:
monitor=eDP-1,1920x1080@60,0x0,1
monitor=, preferred, auto, 1
But this config results in the mentioned problem.
When changing the monitor config to just monitor=, preferred, auto, 1 or to
monitor=eDP-1, preferred, auto, 1.333333
monitor=, preferred, auto, 1
the problem only occurs after some time, i.e., dpms off and on again turn off and on all monitors. I usually notice it again during lid-switching during a normal workday.
The default resolution of eDP-1 is 2560x1440 but I want to use 1920x1080 without scaling to prevent scaling issues with some programs.
How to reproduce
Set a custom resolution and run hyprctl dispatch dpms off and hyprctl dispatch dpms on.
Crash reports, logs, images, videos
No response
I need a log
Here is such an log file, where I killed the session using the TTY because I was unable to do anything without the external monitor.
Log
--------------------------------------------
Hyprland Crash Report
--------------------------------------------
"stable"
Hyprland received signal 6 (Aborted)
Version: 4d403dac3244aab217fb9bf17a68e9a009fcadd8
Tag:
System info:
System name: Linux
Node name: peasec
Release: 6.7.0
Version: #1-NixOS SMP PREEMPT_DYNAMIC Sun Jan 7 20:18:38 UTC 2024
GPU:
00:02.0 VGA compatible controller [0300]: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620] [8086:3ea0] (rev 02) (prog-if 00 [VGA controller])
os-release:
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20240119.bbe7d8f"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"
Backtrace:
#0 | /home/phil/.nix-profile/bin/Hyprland(_Z12getBacktracev+0x48) [0x57ca28]
_Z12getBacktracev
??:?
#1 | /home/phil/.nix-profile/bin/Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x659) [0x533f19]
_ZN13CrashReporter18createAndSaveCrashEi
??:?
#2 | /home/phil/.nix-profile/bin/Hyprland(_Z25handleUnrecoverableSignali+0x44) [0x4a4564]
_Z25handleUnrecoverableSignali
??:?
#3 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x3deb0) [0x7fd5c2572eb0]
??
??:0
#4 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x8d02c) [0x7fd5c25c202c]
??
??:0
#5 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(raise+0x16) [0x7fd5c2572e06]
??
??:0
#6 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(abort+0xd7) [0x7fd5c255b8f5]
??
??:0
#7 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x277a1) [0x7fd5c255c7a1]
??
??:0
#8 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x96d05) [0x7fd5c25cbd05]
??
??:0
#9 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x98c3c) [0x7fd5c25cdc3c]
??
??:0
#10 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x98f39) [0x7fd5c25cdf39]
??
??:0
#11 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(free+0x73) [0x7fd5c25d0703]
??
??:0
#12 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x9b7f2) [0x7fd5c25d07f2]
??
??:0
#13 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x8b1c4) [0x7fd5c25c01c4]
??
??:0
#14 | /nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/lib/libc.so.6(+0x10defc) [0x7fd5c2642efc]
??
??:0
Log tail:
[LOG] Callback 251e020 -> 251e018, layerSurface removed.
[LOG] Callback 251e0f0 -> 251e0e8, layerSurface removed.
[LOG] Removed monitor HEADLESS-1!
[LOG] moveWorkspaceToMonitor: Moving 5 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 2 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 1 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 3 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 4 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 6 to monitor 0
[LOG] moveWorkspaceToMonitor: Plugging gap with new 8
[LOG] moveWorkspaceToMonitor: Plugging gap with existing 8
[LOG] Disallowing setting focus to a window due to there being an active input inhibitor layer.
[LOG] LayerSurface 1d070a0 mapped
[LOG] Registered signal for owner 1c38b40: 15720f0 -> 1c38b68 (owner: CWLSurface)
[LOG] CWLSurface 1c38b40 called init()
[LOG] SessionLockSurface 1393d10 destroyed
[LOG] Callback 1393e18 -> 1393e10, SSessionLockSurface removed.
[LOG] Callback 1393db0 -> 1393da8, SSessionLockSurface removed.
[LOG] Callback 1393d48 -> 1393d40, SSessionLockSurface removed.
[LOG] Registered signal for owner 251de60: 13869d0 -> 251e060 (owner: layerSurface)
[LOG] Registered signal for owner 251de60: 250bec8 -> 251df28 (owner: layerSurface)
[LOG] Registered signal for owner 251de60: 13869e0 -> 251df90 (owner: layerSurface)
[LOG] Registered signal for owner 251de60: 13869f0 -> 251dff8 (owner: layerSurface)
[LOG] Registered signal for owner 251de60: 250bed8 -> 251e0c8 (owner: layerSurface)
[LOG] LayerSurface 250be00 (namespace waybar layer 2) created on monitor eDP-1
[WARN] Orphaned wlr_surface 13866e0 in setPreferredScaleForSurface
[WARN] Orphaned wlr_surface 13866e0 in setPreferredTransformForSurface
[LOG] LayerSurface 250be00 mapped
[LOG] Registered signal for owner 251de80: 1386a10 -> 251dea8 (owner: CWLSurface)
[LOG] CWLSurface 251de80 called init()
[types/output/swapchain.c:109] Swapchain for output 'eDP-1' failed test
[ERR] Couldn't commit output eDP-1
[LOG] Hyprctl: dispatcher dpms : on
[types/output/swapchain.c:109] Swapchain for output 'eDP-1' failed test
[ERR] Couldn't commit output eDP-1
[LOG] Hyprctl: dispatcher dpms : on
[LOG] Keybind handling only locked (inhibitor)
[LOG] Keybind handling only locked (inhibitor)
[LOG] Switching from VT 1 to VT 2
[LOG] Switched to VT 2, destroyed all render data, frames to skip for each: 2
[LOG] Callback 15baaa8 -> 15baaa0, Keyboard removed.
[LOG] Callback 15ba970 -> 15ba968, Keyboard removed.
[LOG] Callback 15ba9d8 -> 15ba9d0, Keyboard removed.
[LOG] Callback 15baa40 -> 15baa38, Keyboard removed.
[LOG] Destroyed keyboard 15ba940
[LOG] Callback 136d8d8 -> 136d8d0, Keyboard removed.
[LOG] Callback 136d7a0 -> 136d798, Keyboard removed.
[LOG] Callback 136d808 -> 136d800, Keyboard removed.
[LOG] Callback 136d870 -> 136d868, Keyboard removed.
[LOG] Destroyed keyboard 136d770
[LOG] Callback 12296d0 -> 12296c8, SwitchDevice removed.
[LOG] Callback 1229668 -> 1229660, SwitchDevice removed.
[LOG] Callback 12ffa08 -> 12ffa00, Keyboard removed.
[LOG] Callback 12ff8d0 -> 12ff8c8, Keyboard removed.
[LOG] Callback 12ff938 -> 12ff930, Keyboard removed.
[LOG] Callback 12ff9a0 -> 12ff998, Keyboard removed.
[LOG] Destroyed keyboard 12ff8a0
[LOG] Callback 15bbdc8 -> 15bbdc0, Mouse removed.
[LOG] Callback 9e5738 -> 9e5730, Keyboard removed.
[LOG] Callback 9e5600 -> 9e55f8, Keyboard removed.
[LOG] Callback 9e5668 -> 9e5660, Keyboard removed.
[LOG] Callback 9e56d0 -> 9e56c8, Keyboard removed.
[LOG] Destroyed keyboard 9e55d0
[LOG] Callback 16025e8 -> 16025e0, Keyboard removed.
[LOG] Callback 16024b0 -> 16024a8, Keyboard removed.
[LOG] Callback 1602518 -> 1602510, Keyboard removed.
[LOG] Callback 1602580 -> 1602578, Keyboard removed.
[LOG] Destroyed keyboard 1602480
[LOG] Callback 12e6638 -> 12e6630, Keyboard removed.
[LOG] Callback 12e6500 -> 12e64f8, Keyboard removed.
[LOG] Callback 12e6568 -> 12e6560, Keyboard removed.
[LOG] Callback 12e65d0 -> 12e65c8, Keyboard removed.
[LOG] Destroyed keyboard 12e64d0
[LOG] Callback 157f8d8 -> 157f8d0, Mouse removed.
[LOG] Session got activated!
[LOG] Hyprland received signal 15
[ERR] Couldn't commit output eDP-1
[LOG] Hyprctl: dispatcher dpms : on
[types/output/swapchain.c:109] Swapchain for output 'eDP-1' failed test
[ERR] Couldn't commit output eDP-1
looks like a wlroots issue tbh... sucks that wlr doesn't log why the test fails
Okay, thank you. Then feel free to close the issue here.
Keep it open it's definitely an Issue with hyprland dependency or not the users will find it here and know it's a known issue and not be frustrated trying to fix it.
I just got permanent burn in on my LCD screen due to this problem. This bug is literally destroying screens and it should be a priority to fix DPMS mgmt for the sake of the environment and the LCD of the users.
bullshitting is not a way to get issues to be fixed. If it's of such importance to you then clone the codebase and fix it yourself.
bullshitting? I got burnin, however it was not as bad as it looked initially where all button outlines where left ingrained on the screen.
claiming your users are "bullshitting" is not the way to deal with well known errors.
firstly, LCD does not get permanent burn in. secondly, burn in from 2 weeks of anything is laughable and if it is there you should rather refund your monitor and not cry online. thirdly, this issue is about monitors being unable to wake up, so you got burn in from your screen being off? lastly, your entitled attitude as if you're paying for hyprland is out of place.
I have never encountered this and neither has anyone from the active hyprland users I have constant contact with.
You are not an authority, you are not entitled to any bugfixes whatsoever, and I will continue to lead the project as I deem fitting. Claiming this bug is "destroying screens" is laughable.
Again, if you can reproduce it and it's such a big deal to you, this is FOSS, you can try and fix it yourself.
I just got permanent burn in on my LCD screen due to this problem. This bug is literally destroying screens and it should be a priority to fix DPMS mgmt for the sake of the environment and the LCD of the users.
I have the same problem, but my LCD display was not broken. So I think your destroying LCD is not related to the problem, maybe another reasons.
I had outlines of the buttons and status bars on the screen. Ofc it does not matter what the maintainer thinks or not, his poor people skills aside, things are what they are. Luckily, the error was not permanent in the end. It still looks like shit to have button imprints on the screen that only goes away after turning the screen off for a long time.
I do not mind that the maintainer has poor people skills. I do however mind that he leaves poor code. Sway has the same problem with community mgmt. so I think it is just a fact of the kind of people that are capable of developing this kind of software that I use will be lacking in how they deal with criticism of their work.
I have the same problem. I change my monitor configuration as below.
# monitor=eDP-1,1920x1200@60,0x0,1 # error happens when using this comfiguration
monitor=eDP-1,2560x1600@60,0x0,1.333333
monitor=HDMI-A-1,1920x1080@60,0x-1080,1
That works for me.
I also have the same problem. Thanks to WuG978 for a workaround! I have this issue on my Dell Laptop with a 4k screen. I was setting the resolution of the eDP-1 display to monitor=eDP-1,1920x1080@60,0x0,1 changing it back to native resolution: monitor=eDP-1,3840x2160@60,0x0,2 prevents the issue.
As long as I have the monitor set to 1920x1080, hyprctl dispatch dpms off will permanently turn off the monitor on that tty until Hyprland is killed, with no way to turn it on as hyprctl dispatch dpms on does nothing.
I'm seeing this issue as well using a dell 6k monitor. Switching DPMS on/off fails with the swapchain error:
[LOG] Hyprctl: dispatcher dpms : off
[wlr] [types/output/swapchain.c:109] Swapchain for output 'DP-3' failed test
[ERR] Couldn't commit output DP-3
[LOG] Hyprctl: dispatcher dpms : on
Running the display in native resolution does not help.
If i switch VTE the display turns on and works again but if i switch back to VTE7 (hyprland) i still have a black screen and the following in the log:
[LOG] Setting preferred mode for DP-3
[ERR] output DP-3 failed basic test on format DRM_FORMAT_XRGB8888
[ERR] output DP-3 failed basic test on format DRM_FORMAT_XBGR8888
[wlr] [types/output/output.c:579] Failed to pick primary buffer format for output
[ERR] output DP-3 failed basic test on format DRM_FORMAT_INVALID
[wlr] [types/output/output.c:579] Failed to pick primary buffer format for output
[wlr] [types/output/output.c:676] Basic output test failed for DP-3
[ERR] Couldn't commit output named DP-3
Are there any relevant wlr specific logging options that can be enabled?
Just a heads up. I tested it in sway, where turning it off and on again works. I try to look deeper into it.
I'm running into the same issue on my Tuxedo Infinnitybook Pro 14.
The display's native (preferred) resolution is 2880x1800 at 90Hz. However, I want it to render at 1920x1200, in order to be able to read things on my screen without a magnifying glass.
To test the behavior, I am simply running:
hyprctl dispatch dpms off && sleep 2 && hyprctl dispatch dpms on
Display does not turn back on with hyprctl dispatch dpms on with my monitor configuration:
monitor = eDP-1, 1920x1200@90, 0x0, 1 # fails to turn screen back on
It does however work, when I set the monitor to full resolution, using the preferred setting:
monitor = eDP-1, preferred, 0x0, 1 # succeeds to turn screen back on
Interestingly, one workaround for me that does achieve my preferred display size and appears to work is tweaking the scale factor, rather than the resolution. This however has some other downsides (I found that some applications fail to properly render at the correct display size when changing the scale factor):
monitor = eDP-1, preferred, 0x0, 1.5 # succeeds to turn the screen back on, but has some drawbacks
I have the same issue, I haven't experimented with any different settings for eDP-1, but when I execute wdisplays (I can still interact normally on the external monitor while eDP-1 remains turned off after dpms on), it shows eDP-1 as not enabled. Simply checking the Enabled box brings the monitor back up again...
Could that mean that the things that hyprctl dispatch dpms on does are missing (a possibly in most cases optional) command/flag/whatever which amount to the same effect?
I had the same issue, setting the monitor to the preferred solved the issue. Then I moved to the scaling solution as @IrrerPolterer suggests https://github.com/hyprwm/Hyprland/issues/4522#issuecomment-2070004862 but I had the major issue that, for me, Wezterm crashes when executed on a scaled window using Hyprland.
eventually this is what works for me:
setting it to preferred BEFORE any operation (disabling it or enabling it) and then setting it to my desired state.
monitor=eDP-1,1368x768,0x0,1
# Laptop lid:
bindl=,switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1,prefered,0x0,1" && hyprctl keyword monitor "eDP-1, disable"
bindl=,switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1,prefered,0x0,1" && hyprctl keyword monitor "eDP-1,1368x768,0x0,1"