Skip to content

Draft: xwayland: Set opaque region for all x11 surfaces

Set the opaque region for all x11 surfaces based on the _NET_WM_OPAQUE_REGION property.

This is intended for the Wayland compositors who do not monitor the X11 property _NET_WM_OPAQUE_REGION.

This is however a layering violation in the sense that Xwayland now monitors a property set by the X11 clients for the X11 compositor / window manager, but some Wayland compositors struggle with supporting that property because it doesn't fit the wl_surface abstractions.

Also, this could possibly cause additional wl_surface commits that other compositors who do not use the wl_surface opaque region for Xwayland surfaces.

Lastly, with this, the opaque region goes through the Wayland protocols, whereas the property is set by the X11 client using the X11 protocol, which may induce visual glitches especially on window resizes, as the compositor will not update the content hidden behind opaque regions.

So this is meant as an optimization for Wayland compositors who do not or cannot use the X11 property _NET_WM_OPAQUE_REGION.

/cc @zzag

Edited by Olivier Fourdan

Merge request reports