xserver/hw
Olivier Fourdan aab01c7391 xwayland/window-buffers: Do not always set syncpnts
The function xwl_window_swap_pixmap() can be called from two places,
either from xwl_window_attach_buffer() or from damage_report().

When called from xwl_window_attach_buffer(), the new buffer is attached
and the surface committed.

However, when called from damage_report(), a new buffer might not be
attached before the surface is committed.

That's fine with implicit synchronization, but if we use explicit
synchronization, committing a surface without a new buffer attached but
with a release timeline point set is a protocol error:

| If at surface commit time there is a pending release timeline point
| set but no pending buffer attached, a no_buffer error is raised.

To avoid such an issue, add a new parameter to xwl_window_swap_pixmap()
to hint whether it should set the synchronization points, and have the
synchronization points set only from xwl_window_attach_buffer().

v2: Rename param to handle_sync (Michel)

Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1571>
2024-07-04 08:13:36 +00:00
..
kdrive kdrive: drop Solaris specific hack 2024-06-18 00:41:38 +00:00
vfb dix: unexport fields from opaque.h not used by modules/drivers 2024-06-23 21:19:27 +00:00
xfree86 modesetting: Fix hang when all probed cursor sizes fail to find a minimum one 2024-06-24 09:53:11 -04:00
xnest os: unexport ddx callbacks 2024-05-08 09:37:35 +02:00
xquartz os: unexport ddx callbacks 2024-05-08 09:37:35 +02:00
xwayland xwayland/window-buffers: Do not always set syncpnts 2024-07-04 08:13:36 +00:00
xwin dix: unexport fields from opaque.h not used by modules/drivers 2024-06-23 21:19:27 +00:00
meson.build Drop DMX DDX 2021-09-07 09:34:31 +00:00