Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

DPMS does not turn on again

Open randomn4me opened this issue 1 year ago • 17 comments
trafficstars

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

randomn4me avatar Jan 24 '24 08:01 randomn4me

I need a log

vaxerski avatar Jan 25 '24 01:01 vaxerski

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

randomn4me avatar Jan 25 '24 08:01 randomn4me

[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

vaxerski avatar Jan 25 '24 12:01 vaxerski

Okay, thank you. Then feel free to close the issue here.

randomn4me avatar Jan 25 '24 14:01 randomn4me

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.

hholst80 avatar Jan 27 '24 18:01 hholst80

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.

hholst80 avatar Feb 06 '24 14:02 hholst80

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.

vaxerski avatar Feb 07 '24 11:02 vaxerski

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.

hholst80 avatar Feb 07 '24 13:02 hholst80

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.

vaxerski avatar Feb 07 '24 13:02 vaxerski

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.

GyaneshW avatar Feb 29 '24 04:02 GyaneshW

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.

hholst80 avatar Feb 29 '24 10:02 hholst80

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.

GyaneshW avatar Mar 13 '24 13:03 GyaneshW

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.

sefodopo avatar Mar 26 '24 20:03 sefodopo

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?

meck avatar Apr 02 '24 17:04 meck

Just a heads up. I tested it in sway, where turning it off and on again works. I try to look deeper into it.

randomn4me avatar Apr 12 '24 08:04 randomn4me

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

IrrerPolterer avatar Apr 22 '24 15:04 IrrerPolterer

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?

ppenguin avatar May 16 '24 08:05 ppenguin

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"

efueyo avatar May 28 '24 18:05 efueyo