La combinación de Chrome y Wayland con espacios de trabajo en entornos GNOME ha generado una serie de problemas frustrantes para muchos usuarios de Linux. Desde ventanas que se quedan colgadas hasta pantallas en negro cuando se cambia entre espacios de trabajo, la experiencia en algunos casos ha llegado a ser prácticamente inutilizable. Sin embargo, contrariamente a lo que inicialmente se pensaba, estos fallos no son culpa de los controladores gráficos, sino de una interacción entre las políticas internas de Mutter —el compositor gráfico de GNOME— y nuevas características de Chromium introducidas recientemente. Este artículo detalla el origen del problema, por qué afecta a tantas distribuciones Linux populares y ofrece una mirada a las soluciones en curso y alternativas para los usuarios que enfrentan estas molestias. En primer lugar, es importante entender el rol que juega Mutter en este inconveniente.
Mutter es el compositor predeterminado en GNOME y administra la forma en que las ventanas son dibujadas y gestionadas en pantalla, especialmente bajo Wayland, un protocolo más moderno que X11 para la gestión del servidor gráfico en Linux. Desde la versión 3.38 de GNOME Shell, Mutter introdujo una política que suspende el envío de eventos llamados frame-callbacks a ventanas que están completamente ocultas, es decir, aquellas que no están visibles en ningún espacio de trabajo activo. Esta medida tenía sentido para optimizar el uso de recursos del sistema, evitando que las aplicaciones dibujaran cuadros innecesarios cuando no se las estaba visualizando. No obstante, a partir de la versión 115 de Chrome, lanzada en la segunda mitad de 2023, Chromium activó por defecto una función llamada EvictionThrottlesDraw, orientada a conservar memoria al desechar buffers gráficos cuando no detecta actividad en estas llamadas de refresco.
En escenarios tradicionales bajo X11 o compositores que no bloquean estos callbacks, esta función opera sin problemas. Pero en combinación con Mutter y su suspensión de callbacks, Chromium interpreta correctamente la ausencia de señales como una indicación para despejar su memoria gráfica, dejando la ventana sin contenido visible. Al regresar al espacio de trabajo donde está esa ventana, el navegador no puede mostrar nada porque no tiene datos preparados para pintar, por lo que la ventana aparece congelada o completamente negra hasta que el usuario interactúa de alguna manera para forzar un repintado, como mover, redimensionar o minimizar la ventana. Este fenómeno ha escalado debido a que muchas distribuciones Linux líderes han migrado hacia Wayland como sesión predeterminada, incluyendo Fedora, Ubuntu, Arch, Manjaro y openSUSE. Todas estas adoptan GNOME junto con Mutter sin modificaciones que mitiguen este problema, lo que significa que millones de usuarios están expuestos a esta situación cuando usan Chrome o aplicaciones basadas en el motor Chromium como Slack, Discord o Visual Studio Code.
Otros entornos gráficos que utilizan compositores diferentes —como KWin en KDE, o wlroots en Sway— no presentan este problema ya que emiten continuamente los frame callbacks o emplean mecanismos alternativos de presentación que evitan la pérdida de contenido en las ventanas ocultas. La historia del problema es también un ejemplo de cómo la evolución acelerada y descoordinada de proyectos de código abierto con múltiples mantenedores puede introducir problemas significativos en la experiencia de uso final. La regla de Mutter para suspender callbacks mientras la ventana está oculta se aplicó en 2020, pero la forma en que Chrome gestiona sus buffers solo cambió radicalmente en 2023 con EvictionThrottlesDraw. Por años, los buffers gráficos de Chromium simplemente se mantenían vivos a pesar de la suspensión de eventos, lo que hacía que el usuario no notara problemas al cambiar entre espacios de trabajo. Lo que era un comportamiento latente y benigno de Mutter se convirtió en un problema crítico al emplear simultáneamente la nueva política de Chromium.
Más recientemente, Mutter ha incrementado la severidad de su gestión de ventanas ocultas en la versión 46 en adelante, lo que ha provocado un aumento de reportes y discusiones en foros y rastreadores de bugs desde 2024 y principios de 2025. Para abordar el problema se han desarrollado parches tanto por parte de los desarrolladores de GNOME como de Chromium, aunque la coordinación entre equipos independientes representa un desafío adicional. GNOME está trabajando en una actualización para Mutter (llamada MR !4401) que implementa un programador de frames por superficie, el cual garantiza un mínimo de callbacks incluso cuando la ventana está oculta, permitido así que la aplicación mantenga sus buffers actualizados. Este arreglo está aún en estado de borrador pero ha sido probado en configuraciones experimentales, pendientes de validación final de rendimiento. En paralelo, Chromium está introduciendo una característica que utiliza presentación-feedback para gestionar superficies ocultas y un mecanismo para desactivar EvictionThrottlesDraw específicamente bajo Wayland.
Estas mejoras están disponibles actualmente detrás de banderas experimentales en versiones Canary o beta, lo que significa que aún no han llegado a la mayoría de las instalaciones estables. Cuando ambas soluciones converjan en una actualización estable, la compatibilidad y fluidez al usar Chrome bajo Wayland en GNOME mejorará sustancialmente. Respecto a las distribuciones, algunas como Fedora y Ubuntu están considerando incluir estas mejoras en sus próximas ediciones, pero la fecha de publicación depende de la aceptación del código por parte de los mantenedores y del calendario de congelación de paquetes. Mientras tanto, los usuarios interesados pueden probar repositorios experimentales o versiones de desarrollo para mitigar el problema. En términos prácticos, para los usuarios que se encuentran molestos por el congelamiento o pantalla negra de Chromium y aplicaciones similares en Wayland-GNOME, existen soluciones temporales.
Lanzar Chrome con los parámetros --ozone-platform=wayland y --disable-features=EvictionThrottlesDraw desactiva temporalmente la función problemática, evitando la pérdida de contenido. Otra alternativa es utilizar la sesión de GNOME bajo Xorg, que aunque menos moderna, proporciona compatibilidad total sin el problema descrito. La importancia de reportar errores en las plataformas oficiales, como el issue #1563 en GitLab de GNOME y la incidencia 1427954 en Chromium, no puede ser subestimada. La acumulación de datos reales de uso beneficia a los desarrolladores para priorizar y perfeccionar sus soluciones. La comunidad de usuarios y desarrolladores trabaja constantemente para que cuando estas actualizaciones se hagan estables y ampliamente distribuidas, la experiencia se normalice y recupere la fluidez que se espera en estos entornos modernos.
En conclusión, la combinación de Mutter, Wayland y Chrome con EvictionThrottlesDraw ha generado un problema complejo que afecta a numerosos usuarios en diferentes distribuciones Linux. Aunque el problema técnico se entiende y existen soluciones en desarrollo activas, el despliegue puede tardar aún meses en alcanzar a la mayoría de los usuarios. Mientras tanto, conocer las causas y posibles alternativas de uso es fundamental para quienes dependen diariamente de estos entornos para su trabajo o actividades diarias. La evolución de Wayland representa un gran avance en la gestión gráfica en GNU/Linux, pero también implica adaptaciones y mejoras colaborativas que reflejan la dinámica inherente de software libre y de código abierto.