Allow direct scanout in more situations
This series makes our current scanout implementation work in way more situations. Most importantly:
- clients using alpha channels for decorations but being fully opaque when fullscreened (Firefox on Xwayland / GTK4 on Xwayland)
- Wayland clients on Intel hardware (weston-simple-egl)
- Wayland clients using subsurfaces (Firefox)
cc: @jadahl, @daenzer, @YaLTeR
How to test: the opaque region overlay appears to be the most reliable and easy to use indicator. If the overlay is not painted, then direct scanout was used. lg
-> Meta.add_debug_paint_flag(Meta.DebugPaintFlag.OPAQUE_REGION)
(Meta.remove_debug_paint_flag(Meta.DebugPaintFlag.OPAQUE_REGION)
to disable it again).
P.S.: the commit "onscreen/native: Allow invalid buffer modifier for scanout" is likely the most delicate one.
Edited by Robert Mader