summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorAlexandros Frantzis <alexandros.frantzis@collabora.com>2018-10-19 12:14:11 +0300
committerPekka Paalanen <pq@iki.fi>2019-02-06 12:21:56 +0000
commit27d7c395c7600e9bf6b13dd8b3d06ee19aab1aba (patch)
tree275bd901df119c98784817c4944b3607a08efb1e /Makefile.am
parenta37920e77c1ca8bb5252da38e165cc0da2acadf1 (diff)
downloadweston-27d7c395c7600e9bf6b13dd8b3d06ee19aab1aba.tar.gz
libweston: Introduce zwp_linux_explicit_synchronization_v1
Introduce support for the zwp_linux_explicit_synchronization_unstable_v1 protocol with an implementation of the zwp_linux_explicit_synchronization_v1 interface. Explicit synchronization provides a more versatile notification mechanism for buffer readiness and availability, and can be used to improve efficiency by integrating with related functionality in display and graphics APIs. In addition, the per-commit nature of the release events provided by this protocol potentially offers a solution to a deficiency of the wl_buffer.release event (see https://gitlab.freedesktop.org/wayland/wayland/issues/46). Support for this protocol depends on the capabilities of the backend, so we don't register it by default but provide a function which each backend will need to call. In this commit only the headless backend when using the noop renderer supports this to enable testing. Note that the zwp_surface_synchronization_v1 interface, which contains the core functionality of the protocol, is not implemented in this commit. Support for it will be added in future commits. Changes in v7: - Added some information in the commit message about the benefits of the explicit sync protocol. Changes in v6: - Fall back to advertising minor version 1 of the explicit sync protocol, although we support minor version 2 features, until the new wayland-protocols version is released. Changes in v5: - Meson support. - Advertise minor version 2 of the explicit sync protocol. Changes in v4: - Enable explicit sync support in the headless backend for all renderers. Changes in v3: - Use wl_resource_get_version() instead of hardcoding version 1. - Use updated protocol interface names. - Use correct format specifier for resource id. - Change test name to 'linux-explicit-synchronization.weston' (s/_/-/g). Changes in v2: - Move implementation to separate file so protocol can be registered on demand by backends. - Register protocol in headless+noop backend for testing purposes. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am21
1 files changed, 18 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 24561a58..358dd7bb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -94,6 +94,8 @@ libweston_@LIBWESTON_MAJOR@_la_SOURCES = \
libweston/timeline-object.h \
libweston/linux-dmabuf.c \
libweston/linux-dmabuf.h \
+ libweston/linux-explicit-synchronization.c \
+ libweston/linux-explicit-synchronization.h \
libweston/pixel-formats.c \
libweston/pixel-formats.h \
libweston/weston-debug.c \
@@ -177,7 +179,9 @@ nodist_libweston_@LIBWESTON_MAJOR@_la_SOURCES = \
protocol/input-timestamps-unstable-v1-protocol.c \
protocol/input-timestamps-unstable-v1-server-protocol.h \
protocol/weston-touch-calibration-protocol.c \
- protocol/weston-touch-calibration-server-protocol.h
+ protocol/weston-touch-calibration-server-protocol.h \
+ protocol/linux-explicit-synchronization-unstable-v1-protocol.c \
+ protocol/linux-explicit-synchronization-unstable-v1-server-protocol.h
BUILT_SOURCES += $(nodist_libweston_@LIBWESTON_MAJOR@_la_SOURCES)
@@ -968,7 +972,9 @@ BUILT_SOURCES += \
protocol/input-timestamps-unstable-v1-protocol.c \
protocol/input-timestamps-unstable-v1-client-protocol.h \
protocol/xdg-output-unstable-v1-protocol.c \
- protocol/xdg-output-unstable-v1-client-protocol.h
+ protocol/xdg-output-unstable-v1-client-protocol.h \
+ protocol/linux-explicit-synchronization-unstable-v1-protocol.c \
+ protocol/linux-explicit-synchronization-unstable-v1-client-protocol.h
westondatadir = $(datadir)/weston
dist_westondata_DATA = \
@@ -1308,7 +1314,8 @@ weston_tests = \
subsurface.weston \
subsurface-shot.weston \
devices.weston \
- touch.weston
+ touch.weston \
+ linux-explicit-synchronization.weston
AM_TESTS_ENVIRONMENT = \
abs_builddir='$(abs_builddir)'; export abs_builddir; \
@@ -1502,6 +1509,14 @@ touch_weston_SOURCES = tests/touch-test.c
touch_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
touch_weston_LDADD = libtest-client.la
+linux_explicit_synchronization_weston_SOURCES = \
+ tests/linux-explicit-synchronization-test.c
+nodist_linux_explicit_synchronization_weston_SOURCES = \
+ protocol/linux-explicit-synchronization-unstable-v1-protocol.c \
+ protocol/linux-explicit-synchronization-unstable-v1-client-protocol.h
+linux_explicit_synchronization_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
+linux_explicit_synchronization_weston_LDADD = libtest-client.la
+
if ENABLE_XWAYLAND_TEST
weston_tests += xwayland-test.weston
xwayland_test_weston_SOURCES = tests/xwayland-test.c