Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

Cannot init renderer for external monitor on i915 (Requested display configuration exceeds system DDB limitations) #1877

Closed
colemickens opened this issue Oct 26, 2019 · 31 comments

Comments

@colemickens
Copy link
Contributor

This is from the debug logs, after I've plugged in an external monitor, waited, and then tried to enable via an IPC command:

2019-10-25 18:31:35 - [sway/ipc-server.c:154] Event on IPC listening socket
2019-10-25 18:31:35 - [sway/ipc-server.c:200] New client: fd 116
2019-10-25 18:31:35 - [sway/ipc-server.c:220] Client 116 readable
2019-10-25 18:31:35 - [sway/commands.c:250] Handling command 'output DP-1 enable'
2019-10-25 18:31:35 - [sway/commands.c:418] Subcommand: enable
2019-10-25 18:31:35 - [sway/config/output.c:133] Merging on top of existing id on name config
2019-10-25 18:31:35 - [sway/config/output.c:172] Merging on top of existing output config
2019-10-25 18:31:35 - [sway/config/output.c:199] Config stored for output DP-1 (enabled: 1) (3440x1440@-1.000000Hz position -1,-1 scale -1.000000 subpixel unknown transform -1) (bg #111111 solid_color) (dpms 0)
2019-10-25 18:31:35 - [backend/drm/atomic.c:57] DP-1: Atomic commit failed (modeset): Invalid argument
2019-10-25 18:31:35 - [sway/config/output.c:264] Set Dell Inc. Dell AW3418DW NDRWF78Q0G8L on DP-1 mode to 3440x1440 (-1.000000 Hz)
2019-10-25 18:31:35 - [sway/config/output.c:227] Assigning configured mode to DP-1
2019-10-25 18:31:35 - [backend/drm/drm.c:654] Modesetting 'DP-1' with '3440x1440@49987 mHz'
2019-10-25 18:31:35 - [backend/drm/drm.c:549] Initializing renderer on connector 'DP-1'
2019-10-25 18:31:35 - [backend/drm/atomic.c:57] DP-1: Atomic commit failed (modeset): Invalid argument
2019-10-25 18:31:35 - [backend/drm/drm.c:568] Page-flip failed with primary FB modifiers enabled, retrying without modifiers
2019-10-25 18:31:35 - [backend/drm/atomic.c:57] DP-1: Atomic commit failed (modeset): Invalid argument
2019-10-25 18:31:35 - [backend/drm/drm.c:577] Failed to initialize renderer on connector 'DP-1': initial page-flip failed
2019-10-25 18:31:35 - [backend/drm/drm.c:658] Failed to initialize renderer for plane
2019-10-25 18:31:35 - [sway/config/output.c:279] Failed to modeset output DP-1
2019-10-25 18:31:35 - [sway/ipc-server.c:938] Added IPC reply of type 0x0 to client 116 queue: [ { "success": true } ]
2019-10-25 18:31:35 - [sway/ipc-server.c:524] Client 116 writable
2019-10-25 18:31:35 - [sway/ipc-server.c:215] Client 116 hung up
2019-10-25 18:31:35 - [sway/ipc-server.c:554] IPC Client 116 disconnected
2019-10-25 18:31:36 - [sway/ipc-server.c:154] Event on IPC listening socket
2019-10-25 18:31:36 - [sway/ipc-server.c:200] New client: fd 116
2019-10-25 18:31:36 - [sway/ipc-server.c:220] Client 116 readable

This used to work.

@emersion
Copy link
Member

Can you do this from a TTY:

echo 0xFE | sudo tee /sys/module/drm/parameters/debug # Enable verbose DRM logging
sudo dmesg -C
dmesg -f >dmesg.log & # Continuously write DRM logs to a file
sway -d >sway.log 2>&1 # Run sway with the external monitor plugged, don't move the mouse, exit immediately when sway has started
fg # Kill dmesg with Ctrl+C
echo 0x00 | sudo tee /sys/module/drm/parameters/debug

@colemickens
Copy link
Contributor Author

So, the external monitor works fine if it is attached when sway is started. I followed your instructions (through dmesg -w is dmesg --follow, not -f) but instead started sway without the monitor attached and then attached it. I couldn't see any relevant output.

Do you want me to try anything different knowing this, or should I still try the scenario you suggested (start with ext monitor attached) even if it works normally?

@emersion
Copy link
Member

dmesg -w

Oh, right, sorry about that, typo on my end.

Can you try enabling DRM debug logs, starting sway without the external monitor, plugging it to reproduce the issue, then quit sway?

@colemickens
Copy link
Contributor Author

This is a good copy/pastable one-liner. Run it, kill sway, tap ctrl-c, done: echo 0xFE | sudo tee /sys/module/drm/parameters/debug; sudo dmesg -C; date > ~/dmesg.log; { dmesg --follow >> ~/dmesg.log & }; sway -d &>sway.log; echo 0x00 | sudo tee /sys/module/drm/parameters/debug; fg.

sway.log
dmesg.log

I don't see much jumping out at me, other than this. These fastset errors from the drm dmesg log pop up around the time of the atomic commit failing:

[22975.180026] [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000e4cd1f5b
[22975.180035] [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:67:plane 1C] 0000000013efb530 state to 00000000e4cd1f5b
[22975.180042] [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:84:pipe C] 00000000c6896215 state to 00000000e4cd1f5b
[22975.180051] [drm:drm_atomic_set_crtc_for_plane [drm]] Link [PLANE:67:plane 1C] state 0000000013efb530 to [CRTC:84:pipe C]
[22975.180056] [drm:drm_atomic_set_fb_for_plane [drm]] Set [FB:113] for [PLANE:67:plane 1C] state 0000000013efb530
[22975.180062] [drm:drm_atomic_set_mode_prop_for_crtc [drm]] Set [MODE:3440x1440] for [CRTC:84:pipe C] state 00000000c6896215
[22975.180070] [drm:drm_atomic_get_connector_state [drm]] Added [CONNECTOR:92:DP-1] 0000000037424b7b state to 00000000e4cd1f5b
[22975.180074] [drm:drm_atomic_set_crtc_for_connector [drm]] Link [CONNECTOR:92:DP-1] state 0000000037424b7b to [CRTC:84:pipe C]
[22975.180081] [drm:drm_atomic_print_state [drm]] checking 00000000e4cd1f5b
[22975.180083] i915 0000:00:02.0: [drm] plane[67]: plane 1C
[22975.180084] i915 0000:00:02.0: [drm] 	crtc=pipe C
[22975.180085] i915 0000:00:02.0: [drm] 	fb=113
[22975.180086] i915 0000:00:02.0: [drm] 		allocated by = sway
[22975.180086] i915 0000:00:02.0: [drm] 		refcount=2
[22975.180087] i915 0000:00:02.0: [drm] 		format=AR24 little-endian (0x34325241)
[22975.180088] i915 0000:00:02.0: [drm] 		modifier=0x100000000000002
[22975.180089] i915 0000:00:02.0: [drm] 		size=3440x1440
[22975.180089] i915 0000:00:02.0: [drm] 		layers:
[22975.180090] i915 0000:00:02.0: [drm] 			size[0]=3440x1440
[22975.180090] i915 0000:00:02.0: [drm] 			pitch[0]=13824
[22975.180091] i915 0000:00:02.0: [drm] 			offset[0]=0
[22975.180091] i915 0000:00:02.0: [drm] 			obj[0]:
[22975.180092] i915 0000:00:02.0: [drm] 				name=0
[22975.180092] i915 0000:00:02.0: [drm] 				refcount=4
[22975.180093] i915 0000:00:02.0: [drm] 				start=00000000
[22975.180094] i915 0000:00:02.0: [drm] 				size=20971520
[22975.180094] i915 0000:00:02.0: [drm] 				imported=no
[22975.180095] i915 0000:00:02.0: [drm] 	crtc-pos=3440x1440+0+0
[22975.180096] i915 0000:00:02.0: [drm] 	src-pos=3440.000000x1440.000000+0.000000+0.000000
[22975.180096] i915 0000:00:02.0: [drm] 	rotation=1
[22975.180097] i915 0000:00:02.0: [drm] 	normalized-zpos=0
[22975.180097] i915 0000:00:02.0: [drm] 	color-encoding=ITU-R BT.709 YCbCr
[22975.180098] i915 0000:00:02.0: [drm] 	color-range=YCbCr limited range
[22975.180099] i915 0000:00:02.0: [drm] crtc[84]: pipe C
[22975.180099] i915 0000:00:02.0: [drm] 	enable=1
[22975.180100] i915 0000:00:02.0: [drm] 	active=1
[22975.180100] i915 0000:00:02.0: [drm] 	self_refresh_active=0
[22975.180101] i915 0000:00:02.0: [drm] 	planes_changed=0
[22975.180101] i915 0000:00:02.0: [drm] 	mode_changed=0
[22975.180102] i915 0000:00:02.0: [drm] 	active_changed=0
[22975.180102] i915 0000:00:02.0: [drm] 	connectors_changed=0
[22975.180102] i915 0000:00:02.0: [drm] 	color_mgmt_changed=0
[22975.180103] i915 0000:00:02.0: [drm] 	plane_mask=40
[22975.180103] i915 0000:00:02.0: [drm] 	connector_mask=2
[22975.180104] i915 0000:00:02.0: [drm] 	encoder_mask=0
[22975.180105] i915 0000:00:02.0: [drm] 	mode: "3440x1440": 50 265250 3440 3488 3520 3600 1440 1443 1453 1474 0x48 0x9
[22975.180105] i915 0000:00:02.0: [drm] connector[92]: DP-1
[22975.180106] i915 0000:00:02.0: [drm] 	crtc=pipe C
[22975.180106] i915 0000:00:02.0: [drm] 	self_refresh_aware=0
[22975.180112] [drm:drm_atomic_check_only [drm]] checking 00000000e4cd1f5b
[22975.180117] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:84:pipe C] mode changed
[22975.180120] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:84:pipe C] enable changed
[22975.180122] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:84:pipe C] active changed
[22975.180126] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] Updating routing for [CONNECTOR:92:DP-1]
[22975.180129] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CONNECTOR:92:DP-1] using [ENCODER:91:DDI B] on [CRTC:84:pipe C]
[22975.180132] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:84:pipe C] needs all connectors, enable: y, active: y
[22975.180138] [drm:drm_atomic_add_affected_connectors [drm]] Adding all current connectors for [CRTC:84:pipe C] to 00000000e4cd1f5b
[22975.180144] [drm:drm_atomic_add_affected_planes [drm]] Adding all current planes for [CRTC:84:pipe C] to 00000000e4cd1f5b
[22975.180171] [drm:intel_atomic_check [i915]] [CONNECTOR:92:DP-1] Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform bpp 36
[22975.180187] [drm:intel_dp_compute_config [i915]] DP link computation with max lane count 2 max rate 540000 max bpp 24 pixel clock 265250KHz
[22975.180198] [drm:intel_dp_compute_config [i915]] Force DSC en = 0
[22975.180209] [drm:intel_dp_compute_config [i915]] DP lane count 2 clock 540000 bpp 24
[22975.180219] [drm:intel_dp_compute_config [i915]] DP link rate required 795750 available 1080000
[22975.180236] [drm:intel_atomic_check [i915]] hw max bpp: 24, pipe bpp: 24, dithering: 0
[22975.180250] [drm:pipe_config_mismatch [i915]] fastset mismatch in lane_count (expected 0, found 2)
[22975.180264] [drm:pipe_config_mismatch [i915]] fastset mismatch in dp_m_n (expected tu 0 gmch 0/0 link 0/0, or tu 0 gmch 0/0 link 0/0, found tu 64, gmch 6180772/8388608 link 515064/1048576)
[22975.180277] [drm:pipe_config_mismatch [i915]] fastset mismatch in output_types (expected 0x00000000, found 0x00000080)
[22975.180290] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_hdisplay (expected 0, found 3440)
[22975.180303] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_htotal (expected 0, found 3600)
[22975.180317] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_hblank_start (expected 0, found 3440)
[22975.180330] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_hblank_end (expected 0, found 3600)
[22975.180343] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_hsync_start (expected 0, found 3488)
[22975.180356] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_hsync_end (expected 0, found 3520)
[22975.180370] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vdisplay (expected 0, found 1440)
[22975.180384] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vtotal (expected 0, found 1474)
[22975.180397] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vblank_start (expected 0, found 1440)
[22975.180412] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vblank_end (expected 0, found 1474)
[22975.180426] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vsync_start (expected 0, found 1443)
[22975.180440] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_vsync_end (expected 0, found 1453)
[22975.180453] [drm:pipe_config_mismatch [i915]] fastset mismatch in pixel_multiplier (expected 0, found 1)
[22975.180467] [drm:pipe_config_mismatch [i915]] fastset mismatch in output_format (expected 0, found 1)
[22975.180481] [drm:pipe_config_mismatch [i915]] fastset mismatch in has_audio (expected no, found yes)
[22975.180507] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.flags (1) (expected 0, found 1)
[22975.180551] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.flags (8) (expected 0, found 8)
[22975.180569] [drm:pipe_config_mismatch [i915]] fastset mismatch in pipe_bpp (expected 0, found 24)
[22975.180589] [drm:pipe_config_mismatch [i915]] fastset mismatch in base.adjusted_mode.crtc_clock (expected 0, found 265250)
[22975.180606] [drm:pipe_config_mismatch [i915]] fastset mismatch in port_clock (expected 0, found 540000)
[22975.180627] [drm:intel_atomic_check [i915]] New cdclk calculated to be logical 540000 kHz, actual 540000 kHz
[22975.180644] [drm:intel_atomic_check [i915]] New voltage level calculated to be logical 2, actual 2
[22975.180666] [drm:intel_plane_atomic_calc_changes [i915]] [CRTC:84:pipe C] has [PLANE:67:plane 1C] with fb 113
[22975.180683] [drm:intel_plane_atomic_calc_changes [i915]] [PLANE:67:plane 1C] visible 0 -> 1, off 0, on 1, ms 1
[22975.180702] [drm:intel_find_shared_dpll [i915]] [CRTC:84:pipe C] allocated DPLL 1
[22975.180718] [drm:intel_reference_shared_dpll [i915]] using DPLL 1 for pipe C
[22975.180733] [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:48:pipe A] 0000000012b50826 state to 00000000e4cd1f5b
[22975.180741] [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:66:pipe B] 0000000084ae6bdd state to 00000000e4cd1f5b
[22975.180753] [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:74:plane 2C] 00000000252ed5d2 state to 00000000e4cd1f5b
[22975.180760] [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:81:cursor C] 00000000bac685a2 state to 00000000e4cd1f5b
[22975.180772] [drm:skl_allocate_pipe_ddb [i915]] Requested display configuration exceeds system DDB limitations
[22975.180782] [drm:skl_allocate_pipe_ddb [i915]] minimum required 482/425
[22975.180799] [drm:intel_dump_pipe_config [i915]] [CRTC:48:pipe A] enable: yes [failed]
...

@emersion
Copy link
Member

Weird. Seems like we're still using Y_TILED even when we fallback to no modifiers.

@colemickens
Copy link
Contributor Author

Would bisecting this help?

@jivox92362
Copy link

Version 0.7.0-1 of wlroots works for me on archlinux with sway 1.2-5.

I couldn't figure out how to get wlroots tag 0.7.0 to compile, but you can get the old version of the package from http://archive.virtapi.org/packages/w/wlroots/wlroots-0.7.0-1-x86_64.pkg.tar.xz if you need a working system.

@colemickens
Copy link
Contributor Author

Thanks @jivox92362 but this doesn't block me, fortunately. If I have the output present when I start Sway... it will generally work. I might have to hotplug the monitor, it will work. However, if the output is not connected when Sway starts, I don't seem to ever get it to work until quitting and restarting sway.

@KenMacD
Copy link

KenMacD commented Dec 10, 2019

@emersion I'm seeing the same issue, but only with my second external monitor. I've attached the files you requested above.

sway.dmesg.log
sway.log

@KenMacD
Copy link

KenMacD commented Jan 6, 2020

Any update on this issue? I can do another capture if it would help.

@emersion
Copy link
Member

emersion commented Jan 8, 2020

Apparently Sway tries to use modifier=0x100000000000002, then fallbacks to no modifier but i915 uses modifier=0x100000000000001 implicitly and that fails too.

Maybe we need to re-allocate other FBs without modifiers as well. We have no way to know why an atomic commit failed from userspace, so some guessing will be involved anyway.

This will be difficult to implement with the current wlroots architecture. It's something I've definitely been thinking about though and I have in mind for the future.

As a workaround, adding an env variable to disable modifiers is probably a reasonable idea. This would short-circuit the logic here: https://github.com/swaywm/wlroots/blob/master/backend/drm/drm.c#L606

Patches to do this are welcome.

@KenMacD
Copy link

KenMacD commented Jan 9, 2020

@emersion I appreciate work you've done in looking at this. I wanted to share an odd workaround I seem to have found. To get the second monitor working I can do this:

  • Start sway
  • Plug in the external thunderbolt dock (with the two monitors connected)
  • Switch to VT2, and run 'startx'
  • Wait until i3 comes up with both monitors enabled
  • Switch back to VT1 with sway (still only 1 monitor works)
  • Unplug the HDMI cable for monitor 2 from the dock
  • Plug the HDMI cable for monitor 2 in to the dock

I'm not sure if some steps are not needed, I may try to distill later. I'll attach my sway.log here in case it helps. I could do a dmesg one too if you think that would help.

sway.log

@KenMacD
Copy link

KenMacD commented Jan 20, 2020

Not sure if it's related, but I noticed from my dmesg this line show up during the above process, after which it worked:

[  189.180009] broken atomic modeset userspace detected, disabling atomic

@Emantor
Copy link
Contributor

Emantor commented Jan 20, 2020

This indicates that X with the modesetting driver was started, see https://patchwork.kernel.org/patch/11133739/ Are you starting sway on X11? This is due to i3 being started on X11.

@colemickens
Copy link
Contributor Author

colemickens commented Jan 20, 2020 via email

@Emantor
Copy link
Contributor

Emantor commented Jan 20, 2020

Sorry, I meant to respond to the comment above which mentions the dmesg line. I did not quote unfortunately.

@KenMacD
Copy link

KenMacD commented Jan 20, 2020

@Emantor I'm following the list of steps in #1877 (comment). It's the only way I've found to get both external monitors working.

I start sway on VT1, only 1 monitor starts. I switch to VT2 and start xorg. I switch back to VT1 and unplug-replug in my second monitor, and the second monitor starts working.

I suspect it has something to do with how xorg is setting up the display. Switching to VT2 and back without starting X isn't enough even though I the 3 monitors work in the terminal in VT2.

@Emantor
Copy link
Contributor

Emantor commented Jan 24, 2020

Please try #2009 while setting WLR_DRM_NO_MODIFIERS=1.

@KenMacD
Copy link

KenMacD commented Jan 24, 2020

@Emantor Env works perfectly for me both when starting sway with the monitors plugged in, and when plugging them in afterwards. Thank you!

@emersion
Copy link
Member

Interesting. This confirms my guesses in #1877 (comment).

@simaoafonso-pwt
Copy link

simaoafonso-pwt commented Jan 28, 2020

Please try #2009 while setting WLR_DRM_NO_MODIFIERS=1.

I was affected by this, can confirm #2009 fixes it.

On Arch Linux, you can just build and install wlroots-git, and edit ~/.config/environment.d/wlroots.conf:

WLR_DRM_NO_MODIFIERS=1

@nitaigao
Copy link

nitaigao commented Feb 8, 2020

Hello, im using wlroots on a project and can confirm this happens when plugging my external monitor in after booting the compositor. The env var workaround helps in the short term.

@colemickens
Copy link
Contributor Author

colemickens commented Feb 8, 2020 via email

@jstephenson
Copy link

Sway 1.4
Intel UHD 620 (i7-8550U)

I'm experiencing this too and it exhibits some interesting behaviour. In particular the following statements are true for me:

  • If I start Sway with the external monitor already connected it works as expected
  • If I plug the monitor in at the GDM login screen it works as expected
  • If I launch Sway from a tty, attach the external monitor, and then exit Sway, the monitor will start working in 'pure' KMS (as a mirror of the tty)

Having enabled DRM debug output my replication is in line with those above--roughly:

2020-05-06 19:46:37 - [sway/desktop/output.c:871] New output 0x5646b84d2d20: DP-1
2020-05-06 19:46:37 - [sway/config/output.c:337] Turning on output DP-1
2020-05-06 19:46:37 - [sway/config/output.c:357] Auto-detected output scale: 1.000000
2020-05-06 19:46:37 - [sway/config/output.c:396] Committing output DP-1
2020-05-06 19:46:37 - [backend/drm/drm.c:695] Modesetting 'DP-1' with '3840x2160@30000 mHz'
2020-05-06 19:46:37 - [backend/drm/drm.c:591] Initializing renderer on connector 'DP-1'
2020-05-06 19:46:37 - [backend/drm/atomic.c:56] DP-1: Atomic commit failed (modeset): Invalid argument
2020-05-06 19:46:37 - [backend/drm/drm.c:610] Page-flip failed with primary FB modifiers enabled, retrying without modifiers
2020-05-06 19:46:37 - [backend/drm/atomic.c:56] DP-1: Atomic commit failed (modeset): Invalid argument
2020-05-06 19:46:37 - [backend/drm/drm.c:618] Failed to initialize renderer on connector 'DP-1': initial page-flip failed
2020-05-06 19:46:37 - [backend/drm/drm.c:701] Failed to initialize renderer for plane
2020-05-06 19:46:37 - [sway/config/output.c:401] Failed to modeset output DP-1

I did however perform a comparison of its output when entering Sway with the monitor already connected (which works) vs hotplugging the monitor whilst already in Sway (which does not).

I was interested to see that Sway seemed to take the same actions in both situations but that in the failing case it was using pipe C instead of B (see attached), and that after exiting Sway the tty KMS seemed to use B. I don't have a good enough understanding of CRTC allocation to know whether or not this is of significance.

attach_after_config_only.log
attach_before_config_only.log

@emersion emersion changed the title Sway cannot initailize rendered for external monitor - DP-1: Atomic commit failed (modeset): Invalid argument Sway cannot initailize rendered for external monitor on i915 (Requested display configuration exceeds system DDB limitations) Jul 3, 2020
@emersion emersion changed the title Sway cannot initailize rendered for external monitor on i915 (Requested display configuration exceeds system DDB limitations) Cannot initailize rendered for external monitor on i915 (Requested display configuration exceeds system DDB limitations) Jul 3, 2020
@emersion emersion changed the title Cannot initailize rendered for external monitor on i915 (Requested display configuration exceeds system DDB limitations) Cannot init renderer for external monitor on i915 (Requested display configuration exceeds system DDB limitations) Jul 3, 2020
@emersion
Copy link
Member

The planned fix for this issue is #1873, however it requires a few architectural changes to wlroots.

@WhyNotHugo
Copy link

WhyNotHugo commented Dec 11, 2020

Running this does not fix it:

swaymsg output eDP-1 disable
swaymsg output eDP-1 enable

Workaround

I've this in my config:

# Disable the laptop screen when the lid is closed.
bindswitch --reload lid:on output eDP-1 disable
bindswitch --reload lid:off output eDP-1 enable

Closing the lid and re-opening it makes screen come back to life. Hopefully this'll serve as a workaround for others.

Note: If you ever run swaymsg output eDP-1 disable, then flipping the won't work any more.

@luispabon
Copy link

It might be working if your laptop is going to sleep then waking up again?

@WhyNotHugo
Copy link

Nope, sleeping / suspending the laptop does not help

@emersion
Copy link
Member

64a2ca4 may help making WLR_DRM_NO_MODIFIERS work better. I think we were doing allocations with modifiers even if it was set before (and only the KMS import without modifiers).

@emersion
Copy link
Member

Hm, disregard, I just need more coffee.

Jamedjo added a commit to Jamedjo/dotfiles that referenced this issue May 12, 2021
Possibly due to sway exceeding intel bandwidth limits,
by allocating new buffers before releasing old ones.

See: swaywm/wlroots#1877,
swaywm/sway#5008 and
swaywm/wlroots#1873
@emersion
Copy link
Member

Closing as a duplicate of #1873.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

11 participants