Another change to look forward to with GNOME 49 come September is better/faster direct scanout for more applications thanks to a change that was merged to the Mutter compositor this past week.
The Mutter change authored by Robert Mader is for using opaque formats substitutes for direct scanout along the Wayland DMA-BUF code path.
Mader explained in the merge request:
“Many display engines, especially older or simpler ones, only support opaque formats. Many clients, however, require formats with alpha for decorations and can’t easily change formats on demand in situations when their windows are fully opaque, e.g. fullscreen or tiled modes. Instead they use opaque regions – a feature present both in Wayland and EWMH – to let compositors know about partial or full opaqueness. In cases of full opaqueness we can this knowledge and replace the alpha format with its opaque variant when handing buffers to KMS for scanout. I.e. we “lie” to KMS about the format, because we know that the visual result is equal to the one we’d get if the display engine supported the alpha format.
As a result we hit direct scanout paths for common use-cases like fullscreen video playback much more often on affected devices, reducing resource usage.
This “trick” has been used by other compositors like Weston for many years and appears to work with all upstream modifiers. In theory there could be modifiers for which this assumption doesn’t hold, however it seems unlikely enought to not block on it for now.
In order to make clients (Mesa) switch to scanout modifiers/flags/etc. accordingly, we also need to add the actually not supported alpha formats in scanout tranches.”
Long story short, more applications running under GNOME 49 Mutter will be applicable for direct scanout now and thus enjoying better performance and efficiency.