24-28 August 2020
US/Pacific timezone

A Look Inside Mutter / GNOME Shell

28 Aug 2020, 07:45
Microconference3/Virtual-Room (LPC 2020)


LPC 2020

Application Ecosystem MC Application Ecosystem MC


Georges Basile Stavracas Neto (Endless OS Foundation)


Mutter is a Wayland compositor and X11 compositing window manager based on the Clutter toolkit. GNOME Shell is GNOME's signature desktop, and is built on top of Mutter.

In this presentation, I'll start with a quick overview of various aspects of Mutter internals, such as:

  • The different abstractions layers for rendering the scene graph (Clutter, Cogl, Graphene)
  • GBM/EGL native renderer
  • Ongoing transition to atomic KMS
  • Usage of hardware planes, and the challenges of assigning planes
  • Nesting compositors with an X11 / Wayland hybrid
  • DMA-BUF based screencasts with PipeWire

After that, I'll cover ongoing changes, as well as future plans. Some of these topics are:

  • Experimenting with libliftoff
  • The path to atomic modesetting
  • Plane assignment
  • Support for DMA-BUF modifiers in PipeWire
  • Usage of modern OpenGL features in Cogl (UBO)
  • Vulkan API on a compositor

Ideally, we will be able to create a proof-of-concept branch of Mutter using libliftoff; a proof-of-concept branch of PipeWire with better DMA-BUF support; and understand what's missing / what's feasible to implement Vulkan-based rendering.

I agree to abide by the anti-harassment policy I agree

Primary author

Georges Basile Stavracas Neto (Endless OS Foundation)

Presentation Materials