xserver/hw
Olivier Fourdan 37f59e1a4d xwayland: Avoid premature surface commit running rootfull
When running rootful, i.e. as a regular Wayland client, Xwayland needs
to wait for the initial configure event before posting its initial
buffer and commit the surface.

Not doing so may cause mutter to log a warning when Xwayland is started
rootful:

 | Buggy client (org.freedesktop.Xwayland) committed initial non-empty
 | content without acknowledging configuration, working around.

Or running rootful with libdecor:

 | Client provided invalid window geometry for xdg_surface#nn
 | (org.freedesktop.Xwayland - Wnn (Xwayland on :nn)). Working around.
 |
 | Buggy client (org.freedesktop.Xwayland) committed initial non-empty
 | content without acknowledging configuration, working around.

This is actually mutter being nice, as this should be treated as a
protocol error and Xwayland would be terminated.

To avoid the issue, we need to hold on attaching a buffer and committing
the surface until we actually get the first configure event from the
compositor.

That, however, only applies to rootful mode, so we can leave the default
code path for rootless untouched.

Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1853
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>

v2: commit the surface after attaching the first buffer on configure
event only for the initial configure (Michel Dänzer).
v3: return early in present flip if we didn't get the initial configure
event (Michel Dänzer).

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2110>
2026-01-12 10:00:02 +01:00
..
kdrive Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
vfb Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
xfree86 Fix drmModeCreatePropertyBlob() length parameter after f894801fa2 2026-01-04 15:39:33 -08:00
xnest Revert "dix: unexport NewCurrentScreen()" 2025-09-06 17:01:37 +00:00
xquartz Revert "dix: unexport dixLookupProperty()" 2025-11-17 21:33:26 +01:00
xwayland xwayland: Avoid premature surface commit running rootfull 2026-01-12 10:00:02 +01:00
xwin Strip trailing whitespace from source files 2025-10-05 11:56:48 -07:00
meson.build meson.build: print a summary of the DDX to build 2025-03-24 03:05:35 +00:00