Chrome on Wayland with Workspaces is a Mess
Chromium windows that hang or turn black when you return to their workspace are not your graphics driver’s fault.
The root cause is a GNOME mutter
policy that stops sending Wayland
frame-callback events to completely hidden surfaces; starting with Chrome 115,
Chromium’s new EvictionThrottlesDraw memory-saver began treating that
silence as a cue to discard its buffers.
The result: when you switch back, the browser has nothing to show and just sits there until another event prods it. Every modern desktop that pairs Wayland + Mutter + Chromium code is exposed, but the fixes are split between Mutter merge-request !4401 and several still-experimental Chromium patches—none of which have reached a mainstream release yet. (GitLab GNOME, Chromium Git Repositories)
At a glance#
Chromium, Electron apps, Slack, Discord, VS Code—anything built on the Chromium rendering stack—freeze or paint a blank canvas when their window lives on a different workspace from the one you are looking at. Moving the window, resizing it, or toggling minimise/restore usually “wakes” the renderer. The phenomenon reproduces on Fedora, Ubuntu, Arch, Manjaro, openSUSE and others as long as you log in to the GNOME Wayland session.(Launchpad, Arch Linux Forums, Reddit)
Under the hood#
- Mutter’s compositor marks fully-occluded windows as “eligible for
throttling” and simply withholds
wl_surface.frame
callbacks. That behaviour is recorded in issue #1563 from 2020 and refined again in #3663 last year.(GitLab GNOME, GitLab GNOME) - Chromium 115 (July 2023) shipped the EvictionThrottlesDraw feature—great for battery, disastrous when callbacks never resume.(Chrome Releases, Chromium Git Repositories)
When did this really start—and when did we all notice?#
Year | What changed | Why most users didn’t yell—yet |
---|---|---|
2020 | GNOME Shell 3.38 adopts the “no callbacks while hidden” rule (issue #1563). | Chrome simply kept its buffers alive, so a frame appeared as soon as you returned. |
2023 H2 | Chrome 115 turns EvictionThrottlesDraw on by default; buffer eviction now occurs within seconds. | Overnight, a latent compositor quirk became a user-visible blank window. |
2024–2025 | Mutter 46+ tightens occlusion throttling (#3663); Wayland adoption soars as Fedora, Ubuntu and Arch switch to Wayland-only installers. | The freeze is suddenly reproducible on Gnome, prompting a surge of forum and bug-tracker traffic. (Reddit, Fedora Discussion, Phoronix) |
Why almost every Wayland distro is affected#
- Mutter is GNOME’s default compositor and ships, unpatched, in Fedora 40/41, Ubuntu 24.04, Arch Linux, Manjaro, EndeavourOS and openSUSE Tumbleweed. Any distro that offers the “GNOME (Wayland)” session inherits the throttling behaviour.(Arch Linux Forums, Manjaro Linux Forum)
- X11 sessions or desktops that use KWin, Sway, wlroots, Enlightenment or Wayfire do not exhibit the freeze, because those compositors either keep sending callbacks or use presentation-feedback instead.(Phoronix, Phoronix)
When will a fix land?#
-
GNOME Mutter
- Patch: MR !4401 (per-surface frame scheduler)
- Status: Draft, CI passing, pending performance validation (as of May 2025)
- Where to test: Fedora Rawhide COPR, Ubuntu gnome-nightly PPA (Copr, Fedora Discussion)
-
Chromium
- Patch:
UsePresentationFeedbackForOccludedSurfaces
plus automatic Finch rollback of EvictionThrottlesDraw on Wayland - Status: Flag-guarded in Canary 128; Wayland-specific kill-switch in Chrome 127 beta
- Where to test: Chrome/Chromium Dev or Canary with
--enable-features=UsePresentationFeedbackForOccludedSurfaces
(Chromium Issues)
- Patch:
-
Downstream distributions
- Patch: Back-port MR !4401 or bundle COPR/PPAs
- Status: Fedora 42 may merge if MR accepted before July freeze; Ubuntu 24.10 targets the same window
- Where to test: Watch distro change-logs or enable patched repos (GitHub)
A coordination challenge#
There is no single “task force”: GNOME devs own Mutter, Google engineers own Chrome, and distribution packagers decide what to back-port. Until both sides’ patches are stable:
- GNOME can merge !4401 alone, which guarantees at least one frame callback when a surface becomes visible, but Chrome still benefits from using presentation-feedback.
- Chrome can ship its presentation-feedback fallback, but Mutter’s current behaviour still wastes power on background tabs and hampers screen-sharing.
Only after the two merges converge in a mainstream GNOME release and a stable Chromium milestone will the workflow feel seamless again—and dates for those are still tentative.(Phoronix, Chromium Git Repositories)
Take-aways for frustrated users#
- Short-term fix: launch Chromium apps with
--ozone-platform=wayland --disable-features=EvictionThrottlesDraw
, or just use GNOME on Xorg.(Launchpad, Chromium Issues) - Test the bleeding edge: Fedora users can
dnf copr enable trixieua/mutter-patched && dnf upgrade
, Ubuntu users can add the gnome-nightly PPA.(Copr) - Report back in GitLab issue #1563 and Chromium bug 1427954; real-world traces help both camps merge sooner.(GitLab GNOME, Chromium Git Repositories)
Until all the necessary patches are merged and released, this blank-window issue will continue to affect users.