diff options
author | Alexandros Frantzis <alexandros.frantzis@collabora.com> | 2018-10-19 12:14:11 +0300 |
---|---|---|
committer | Pekka Paalanen <pq@iki.fi> | 2019-02-06 12:21:56 +0000 |
commit | 27d7c395c7600e9bf6b13dd8b3d06ee19aab1aba (patch) | |
tree | 275bd901df119c98784817c4944b3607a08efb1e /Makefile.am | |
parent | a37920e77c1ca8bb5252da38e165cc0da2acadf1 (diff) | |
download | weston-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.am | 21 |
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 |