[PATCH xserver v2 5/5] xwayland: use _XWAYLAND_ALLOW_COMMITS property
Olivier Fourdan
ofourdan at redhat.com
Tue Jan 3 09:31:39 UTC 2017
Hi,
----- Original Message -----
> On Fri, 2016-12-09 at 14:24 +0200, Pekka Paalanen wrote:
> > From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> >
> > The X11 window manager (XWM) of a Wayland compositor can use the
> > _XWAYLAND_ALLOW_COMMITS property to control when Xwayland sends
> > wl_surface.commit requests. If the property is not set, the behaviour
> > remains what it was.
>
> I'm still thinking over whether I like this or whether I'd rather have
> this keyed off the netwm sync props. (Did we think that was a thing
> that could work? Forgive me, I'm freshly back from holidays.) [...]
Maybe it's two different goals. If I understand correctly, this patch was initially intended for the initial map of the window.
FWIW I spent quite a few days before the holidays experimenting with this, trying to see if that could be used to help with the black border issue reported in mutter with server-side decorations [1] on applications implementing the NET_WM_SYNC extended protocol [2].
Unfortunately, I didn't have much success in doing so.
Freezing the commit in either meta_window_actor_freeze() or meta_window_actor_pre_paint() and re-allowing the commit in meta_window_actor_thaw() or meta_window_actor_post_paint() didn't help at all with the visible black border during resize, and made the resize more sluggish because while the commit is frozen, the surface is not resized but can still be moved so resizing from the left or top looks awful, from a user stand point.
I think I could trace the black border issue in mutter back to meta_window_actor_update_opaque_region(), but I was not able to use the _XWAYLAND_ALLOW_COMMITS property to fix or even improve the problem, so I am not even sure _XWAYLAND_ALLOW_COMMITS is the solution for the problem I am trying to fix - Granted, I am not an expert in this area of mutter, but I start to wonder if _XWAYLAND_ALLOW_COMMITS is the solution to the specific issue I am trying to solve.
So, we might eventually need both, something like _XWAYLAND_ALLOW_COMMITS for the initial map and also have Xwayland monitoring NET_WM_SYNC properties.
Cheers,
Olivier
[1] https://bugzilla.gnome.org/show_bug.cgi?id=767212
[2] http://fishsoup.net/misc/wm-spec-synchronization.html
More information about the xorg-devel
mailing list