wayland: Implement linux-drm-syncobj-v1

This implements the explicit sync protocol linux-drm-syncobj-v1. This
works by importing a DRM syncobj timeline and importing/exporting fds
to/from the sync points on the timeline corresponding to buffer acquire
and release. We take fds for sync points provided during a surface
commit and use them to delay transaction application, and fetch fds
from Cogl to signal when we are done using a particular buffer.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3300>
This commit is contained in:
Austin Shafer
2023-09-08 16:40:56 -04:00
parent 7ca01867f7
commit e8b890ab53
12 changed files with 853 additions and 9 deletions

View File

@ -60,6 +60,8 @@ typedef struct _MetaWaylandActivation MetaWaylandActivation;
typedef struct _MetaWaylandDmaBufManager MetaWaylandDmaBufManager;
typedef struct _MetaWaylandSyncobjTimeline MetaWaylandSyncobjTimeline;
typedef struct _MetaWaylandXdgPositioner MetaWaylandXdgPositioner;
typedef struct _MetaXWaylandManager MetaXWaylandManager;