Merge branch 'jorth/explicit-sync-any' into 'main'

linux-drm-syncobj-v1: allow explicit sync with any buffer type

See merge request wayland/wayland-protocols!452
This commit is contained in:
Julian Orth 2025-12-17 16:10:13 +01:00
commit 3e572c72f0

View file

@ -55,7 +55,7 @@
only be done by creating a new major version of the extension.
</description>
<interface name="wp_linux_drm_syncobj_manager_v1" version="1">
<interface name="wp_linux_drm_syncobj_manager_v1" version="2">
<description summary="global for providing explicit synchronization">
This global is a factory interface, allowing clients to request
explicit synchronization for buffers on a per-surface basis.
@ -106,9 +106,16 @@
<arg name="id" type="new_id" interface="wp_linux_drm_syncobj_timeline_v1"/>
<arg name="fd" type="fd" summary="drm_syncobj file descriptor"/>
</request>
<event name="supports_any_buffer_type" since="2">
<description summary="the compositor supports any buffer type">
This event is sent immediately after binding the global to indicate that
the compositor supports explicit synchronization with any buffer type.
</description>
</event>
</interface>
<interface name="wp_linux_drm_syncobj_timeline_v1" version="1">
<interface name="wp_linux_drm_syncobj_timeline_v1" version="2">
<description summary="synchronization object timeline">
This object represents an explicit synchronization object timeline
imported by the client to the compositor.
@ -123,7 +130,7 @@
</request>
</interface>
<interface name="wp_linux_drm_syncobj_surface_v1" version="1">
<interface name="wp_linux_drm_syncobj_surface_v1" version="2">
<description summary="per-surface explicit synchronization">
This object is an add-on interface for wl_surface to enable explicit
synchronization.
@ -137,6 +144,10 @@
If at surface commit time the attached buffer does not support explicit
synchronization, an unsupported_buffer error is raised.
In version 2 and above, the compositor can send the
supports_any_buffer_type event to indicate that it supports explicit
synchronization with any buffer type.
As long as the wp_linux_drm_syncobj_surface_v1 object is alive, the
compositor may ignore implicit synchronization for buffers attached and
committed to the wl_surface. The delivery of wl_buffer.release events