GNOME On Wayland Screencasting Is About To Be A Heck Of A Lot More Efficient
GNOME's screencasting / monitor sharing support under Wayland has already been in quite good shape compared to other desktops/compositors on Wayland, but with PipeWire 0.3 and pending Mutter changes is a big step forward. With PipeWire 0.3 is support for importing DMA-BUF file descriptors and sharing it with clients, which can avoid excess image copies between CPU and GPU memory. As we see time and time again, using DMA-BUF can provide big wins for performance thanks to properly designed zero-copy buffer sharing between drivers and hardware blocks.
Georges Stavracas worked on this DMA-BUF-based GNOME Wayland screencasting support and shared a brief video on his blog and embedded below.
In the pending merge request, Georges commented, "The result is, as expected, massive: with this MR applied, Mutter / GNOME Shell consumes almost no extra CPU beyond what it consumes regularly." It remains to be seen though if this code will land in Mutter ahead of GNOME 3.36.