wayland/actor-surface: Always set opaque region on alpha-less textures
Wayland clients using buffers without alpha channel are not expected to
set an opaque region. However, we rely on the opaque region for the fast
painting path in MetaShapedTexture
.
Thus, make sure to always set an opaque region internally in those cases. For X11 clients, wo do so already.
How to test:
-
lg
->Meta.add_debug_paint_flag(Meta.DebugPaintFlag.OPAQUE_REGION)
weston-simple-dmabuf-egl
- should be purple without this MR and green with it
To verify the culling still works:
weston-simple-dmabuf-egl
weston-simple-damage --verbose --width=100 --height=100
- hide the
weston-simple-damage
behind theweston-simple-dmabuf-egl
one - output should stop as frame callbacks are not send to culled out actors
Edited by Robert Mader