-
Notifications
You must be signed in to change notification settings - Fork 341
Sway starts with black screen, only cursor visible #1852
Comments
Needs debug logs. |
This is the commit in wlroots that causes it anyway: 2bdd1d0 |
Here's a debug log (I killed sway from other VT after a while fyi): |
Note, this is an Intel KBL machine.
Then followed by:
Can you do this:
And upload |
If it matters, this is a Dell XPS 13 9370. Haven't had any issues like this with sway/wlroots otherwise. Will get back to you with the requested log in a while. |
If you could also try to use Weston and see if it does the same thing, that would be helpful. |
Not sure whether this is a i915 watermark bug or if we should try to fallback to linear… Can you try Weston? It does the same thing as wlroots. |
Tried weston, latest commit as of now https://github.com/wayland-project/weston/commit/c57a8cccd3e89170b503b597830b91b94ba2e518, and it has basically the same issue - black screen. With sway I got the mouse pointer over the console but otherwise nothing, with weston same - but no pointer even. Tried running weston with "--use-pixman" which works fine. This just started being an issue in sway after above mentioned commit to wlroots. |
Seems like the driver is picking 0x100000000000004 (I915_FORMAT_MOD_Y_TILED_CCS) for the modifier, and this cannot be scanned out because of bandwidth limitations. Reported a bug upstream: https://bugs.freedesktop.org/show_bug.cgi?id=111995 |
|
It seems as if in my case, having frame buffer compression enabled somehow caused this. Setting the kernel param |
This seems to happen anyway actually, perhaps less frequently. Now sway won't start when external display is connected via USB-C -> HDMI adapter. I end up with just the console background and a cursor. If I disconnect the external display, sway continues to appear on the built-in display. Can't get it to show on external display though (I've used this setup for months without issues). |
I tried downgrading the linux kernel from 5.3.6 to 5.2.21, unfortunately that didn't help. I've tried enabling / disabling fbc and psr which also doesn't help it turns out. I did note further up that that helped but since then I upgraded sway / wlroots and honestly not sure whether that affected this or not. I think I may have seen this happen when connected to a HIDPI external display which is why I may have thought the fbc etc actually fixes the issue when it was because I wasn't connected to that display - if not connected to any external display, I don't have any problem launching sway. What helps, in the end, is to downgrade sway/wlroots to: sway: swaywm/sway@533acbe The downgrade of sway is probably not what helps, however it seems that to compile sway from tip of master you need a later commit of wlroots (which obviously wouldn't work for me). So the commit to wlroots that causes this for me really does seem to be: 2bdd1d0 Just to be clear - using the two commits further up means I can use my external display just fine and sway launches just fine regardless of whether connected to external display or not. |
I've also tried bulding tip of master sway and tip of master wlroots with a patch that reverts commit 2bdd1d0 - this also enables me to run sway just fine. So it's quite clear that commit causes this on my setup. |
@johnae Thank you! I owe you a beer for saving me from having to bisect this to get my second external monitor working. Reverting that commit fixed it. In case it helps in debugging:
|
|
On some Intel cards using modifiers can fill the FIFO and prevent hotplugged outputs from being properly enabled. Add a fallback without modifiers. References: swaywm#1840 Closes: swaywm#1852
Can you try #1870? |
On some Intel cards using modifiers can fill the FIFO and prevent hotplugged outputs from being properly enabled. Add a fallback without modifiers. Fixes: 2bdd1d0 ("backend/drm: use modifiers for our GBM buffers") References: swaywm#1840 Closes: swaywm#1852
Thanks for looking into this @emersion! Unfortunately that didn't help, if anything it is slightly worse since before I could yank the external monitor cable and sway would continue launching, now I have to do a reboot to get the machine into a state where I can undo this patch (and yet again apply the revert patch of earlier mentioned commit). |
Do you have logs with the PR applied? |
On some Intel cards using modifiers can fill the FIFO and prevent hotplugged outputs from being properly enabled. Add a fallback without modifiers. Fixes: 2bdd1d0 ("backend/drm: use modifiers for our GBM buffers") References: swaywm#1840 Closes: swaywm#1852
Oh, right, sorry about that, I messed up my patch. Can you try with the updated PR? |
@emersion I still have this issue with my second external monitor. It's the same commit that causes it. From some logs:
Oddly the other external monitor is the exact same model and works fine. |
Can you post full debug logs? Can you also post |
On some Intel cards using modifiers can fill the FIFO and prevent hotplugged outputs from being properly enabled. Add a fallback without modifiers. Fixes: 2bdd1d0 ("backend/drm: use modifiers for our GBM buffers") References: swaywm#1840 Closes: swaywm#1852
I know there's a similar issue posted already, however, in my case this started happening when compiling sway against wlroots after commit 3b4824a (which is only three commits). So this is very new.
I don't know which one is causing this yet. The sway commit compiled against wlroots is swaywm/sway@533acbe (so latest commit as of right now).
The text was updated successfully, but these errors were encountered: