weston/tests
Alexandros Frantzis 27d7c395c7 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>
2019-02-06 12:21:56 +00:00
..
reference tests: add subsurface-shot test 2017-02-07 14:25:27 +02:00
.gitignore Revert "gitignore: Ignore generated header test files" 2015-05-26 23:22:19 -07:00
bad-buffer-test.c Remove redundant #include path component. 2015-06-15 17:11:09 -07:00
config-parser-test.c Re-apply "config-parser: Catch negative numbers assigned to unsigned config values" 2016-07-26 16:21:20 -07:00
devices-test.c tests: Add test for seat destruction and creation 2018-02-15 13:14:57 +02:00
event-test.c tests: Move wl_pointer tests to their own file 2017-12-12 12:17:08 +02:00
input-timestamps-helper.c tests: fix include in input-timestamps-helper.c 2018-12-09 14:49:07 +02:00
input-timestamps-helper.h tests: Introduce input timestamps helper 2018-02-20 10:20:29 +02:00
internal-screenshot-test.c tests: Add checks for pointer motion and button event timestamps 2017-12-18 11:27:43 +02:00
internal-screenshot.ini tests: Add internal test for the weston test screenshot capability 2015-05-21 15:06:11 -07:00
ivi-layout-internal-test.c tests: Reshuffle IVI layout tests 2018-06-20 16:10:12 +03:00
ivi-layout-test-client.c tests: Reshuffle IVI layout tests 2018-06-20 16:10:12 +03:00
ivi-layout-test-plugin.c tests: Reshuffle IVI layout tests 2018-06-20 16:10:12 +03:00
ivi-shell-app-test.c tests: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:19 -07:00
ivi-test.h ivi-shell: implement surface_on_many_layer test 2016-06-29 11:32:23 +03:00
keyboard-test.c libweston: Implement keyboard timestamps for input_timestamps_unstable_v1 2018-02-20 15:09:53 +02:00
linux-explicit-synchronization-test.c libweston: Introduce zwp_linux_explicit_synchronization_v1 2019-02-06 12:21:56 +00:00
matrix-test.c Remove redundant #include path component. 2015-06-15 17:11:09 -07:00
meson.build libweston: Introduce zwp_linux_explicit_synchronization_v1 2019-02-06 12:21:56 +00:00
plugin-registry-test.c tests: use weston_compositor_exit 2019-02-06 10:58:22 +00:00
pointer-test.c libweston: Implement pointer timestamps for input_timestamps_unstable_v1 2018-02-20 15:09:53 +02:00
presentation-test.c shared: Add timespec_from_proto helper function 2017-12-18 11:27:43 +02:00
roles-test.c tests: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:19 -07:00
setbacklight.c tests: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:19 -07:00
string-test.c tests: add missing include 2017-01-23 14:12:06 +02:00
subsurface-shot-test.c tests: Add checks for pointer motion and button event timestamps 2017-12-18 11:27:43 +02:00
subsurface-test.c Fix 'implicit fallthrough' warning with new GCC 2017-03-13 17:56:07 +00:00
surface-global-test.c tests: use weston_compositor_exit 2019-02-06 10:58:22 +00:00
surface-screenshot-test.c tests: Rename surface-screenshot 2018-12-09 12:13:36 +02:00
surface-test.c tests: use weston_compositor_exit 2019-02-06 10:58:22 +00:00
text-test.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
timespec-test.c shared: Add timespec_eq helper function 2018-02-20 10:20:29 +02:00
touch-test.c libweston: Implement touch timestamps for input_timestamps_unstable_v1 2018-02-20 15:09:53 +02:00
vertex-clip-test.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
viewporter-test.c tests: introduce struct buffer for client-helper 2016-06-29 12:39:30 +03:00
weston-test-client-helper.c tests: Introduce input timestamps helper 2018-02-20 10:20:29 +02:00
weston-test-client-helper.h tests: Introduce input timestamps helper 2018-02-20 10:20:29 +02:00
weston-test-desktop-shell.c helpers: Move static_assert definition to shared 2018-07-09 15:39:20 +01:00
weston-test-runner.c tests: doc iterating in the runner 2017-02-07 14:25:27 +02:00
weston-test-runner.h tests: Mark tests as used so they don’t get removed at link time 2017-12-01 16:53:53 +00:00
weston-test.c tests: use weston_compositor_exit 2019-02-06 10:58:22 +00:00
weston-tests-env tests: Reshuffle IVI layout tests 2018-06-20 16:10:12 +03:00
xwayland-test.c tests: Skip Xwayland test if binary isn't available 2016-11-30 10:28:04 +00:00