wayland/actor-surface: Always set opaque region on alpha-less textures

Merged Robert Mader requested to merge rmader/mutter:opaque-alpha-less-2 into master

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 the weston-simple-dmabuf-egl one - output should stop as frame callbacks are not send to culled out actors
Edited by Robert Mader

Merge request reports