Black screen when Chrome gets unredirected
Affected version
- Fedora 32
- Kernel 5.8.4-200.fc32.x86_64 (happens with 5.7, too)
- xorg-x11-server 1.20.8-1.fc32
- Mesa 20.1.6-1.fc32 (Intel UHD 620 / iris driver)
- mutter master
- gnome-shell master
- Wayland session
- Google Chrome 85.0.4183.83
Bug summary
This could be related to !798 (merged). When moving a maximized Chrome window to a screen where it covers the entire space (i.e., no shell UI is visible and unredirection is triggered), that screen will go black and gnome-shell hangs. The session can be recovered by switching to another TTY and back again or by suspending and waking the device.
The issue seems to be related to the screen layout. I can reproduce the bug nearly every time using a setup with two 1080p screens at 100% scale. If I add a 4K screen with 200% scale, I can move the window as much as I like and everything is fine. A friend is able to reproduce the issue using a setup with three 1080p screens.
The other oddity is that this is only reproducible with Google Chrome, but not with Fedora's Chromium builds. Chrome ships its own libEGL
and libGLESv2
and definitely doesn't like using Fedora's libraries instead (spews a bunch of EGL-related errors in chrome://gpu
). It's difficult to say whether the root cause is in Chrome or mutter (or perhaps even Xwayland), but in any case I guess that even a broken client shouldn't be able to trigger such behavior in mutter.
Steps to reproduce
- Have multiple screens (in a configuration as described above)
- Run Chrome
- Maximize Chrome
- Move the window to an empty screen without any shell UI (e.g., Super+Shift+Left/Right). Perhaps move it a few times back and forth.
What happened
Screen turns black.
Relevant logs, screenshots, screencasts etc.
Nothing that seems remotely related appears in the kernel log or the journal.