weston_10.0_aglcore.inc: Update wl_output to version 4 49/27949/2
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 24 Aug 2022 09:04:01 +0000 (12:04 +0300)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 1 Sep 2022 12:20:04 +0000 (12:20 +0000)
This allows clients to query the output name and description name as
seen by the compositor. Previously this was only possible only with
xdg_output_manager extension but a recent update to the core wayland
protocol allows us to do just that.

Patch is posted upstream
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/987, but
will take some time to get in, as we're in the process of a release.

Bug-AGL: SPEC-4530
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I709b941a220e9906078944ee585435df7141d448
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27949
Tested-by: Jenkins Job builder account
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Send-name-description-update-wl_output-to-.patch [new file with mode: 0644]
meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc

diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Send-name-description-update-wl_output-to-.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Send-name-description-update-wl_output-to-.patch
new file mode 100644 (file)
index 0000000..46e305d
--- /dev/null
@@ -0,0 +1,115 @@
+From 5361d157ff6b11d5cb7a9f989abe5f376c9e2efa Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Wed, 24 Aug 2022 11:43:06 +0300
+Subject: [PATCH] libweston: Send name,description, update wl_output to ver 4
+
+These have been in wayland a while back with version 1.20.0.
+
+We also need to update the test client helper with this bump, as
+those bind to version 4.
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ libweston/compositor.c            | 14 +++++++++++++-
+ tests/weston-test-client-helper.c | 18 ++++++++++++++++++
+ tests/weston-test-client-helper.h |  2 ++
+ 3 files changed, 33 insertions(+), 1 deletion(-)
+
+diff --git a/libweston/compositor.c b/libweston/compositor.c
+index 1670c50..af7c71e 100644
+--- a/libweston/compositor.c
++++ b/libweston/compositor.c
+@@ -184,6 +184,12 @@ weston_mode_switch_send_events(struct weston_head *head,
+               if (version >= WL_OUTPUT_SCALE_SINCE_VERSION && scale_changed)
+                       wl_output_send_scale(resource, output->current_scale);
++              if (version >= WL_OUTPUT_NAME_SINCE_VERSION)
++                      wl_output_send_name(resource, head->name);
++
++              if (version >= WL_OUTPUT_DESCRIPTION_SINCE_VERSION)
++                      wl_output_send_description(resource, head->model);
++
+               if (version >= WL_OUTPUT_DONE_SINCE_VERSION)
+                       wl_output_send_done(resource);
+       }
+@@ -5198,6 +5204,12 @@ bind_output(struct wl_client *client,
+                                   mode->refresh);
+       }
++      if (version >= WL_OUTPUT_NAME_SINCE_VERSION)
++              wl_output_send_name(resource, head->name);
++
++      if (version >= WL_OUTPUT_DESCRIPTION_SINCE_VERSION)
++              wl_output_send_description(resource, head->model);
++
+       if (version >= WL_OUTPUT_DONE_SINCE_VERSION)
+               wl_output_send_done(resource);
+ }
+@@ -5206,7 +5218,7 @@ static void
+ weston_head_add_global(struct weston_head *head)
+ {
+       head->global = wl_global_create(head->compositor->wl_display,
+-                                      &wl_output_interface, 3,
++                                      &wl_output_interface, 4,
+                                       head, bind_output);
+ }
+diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c
+index 01c4b80..8369c40 100644
+--- a/tests/weston-test-client-helper.c
++++ b/tests/weston-test-client-helper.c
+@@ -715,6 +715,20 @@ output_handle_scale(void *data,
+       output->scale = scale;
+ }
++static void
++output_handle_name(void *data, struct wl_output *wl_output, const char *name)
++{
++      struct output *output = data;
++      output->name = strdup(name);
++}
++
++static void
++output_handle_description(void *data, struct wl_output *wl_output, const char *desc)
++{
++      struct output *output = data;
++      output->name = strdup(desc);
++}
++
+ static void
+ output_handle_done(void *data,
+                  struct wl_output *wl_output)
+@@ -729,6 +743,8 @@ static const struct wl_output_listener output_listener = {
+       output_handle_mode,
+       output_handle_done,
+       output_handle_scale,
++      output_handle_name,
++      output_handle_description,
+ };
+ static void
+@@ -737,6 +753,8 @@ output_destroy(struct output *output)
+       assert(wl_proxy_get_version((struct wl_proxy *)output->wl_output) >= 3);
+       wl_output_release(output->wl_output);
+       wl_list_remove(&output->link);
++      free(output->name);
++      free(output->desc);
+       free(output);
+ }
+diff --git a/tests/weston-test-client-helper.h b/tests/weston-test-client-helper.h
+index 8e1505d..9e05009 100644
+--- a/tests/weston-test-client-helper.h
++++ b/tests/weston-test-client-helper.h
+@@ -163,6 +163,8 @@ struct output {
+       int height;
+       int scale;
+       int initialized;
++      char *name;
++      char *desc;
+ };
+ struct buffer {
+-- 
+2.35.1
+
index 6cd2ce1..0e09ca5 100644 (file)
@@ -6,6 +6,8 @@ PACKAGECONFIG[headless] = "-Dbackend-headless=true"
 PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
 PACKAGECONFIG:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', ' remoting', '', d)}"
 
-SRC_URI:append = "file://0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch"
+SRC_URI:append = "file://0001-libweston-Send-name-description-update-wl_output-to-.patch \
+                 file://0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch"
+
 # seat management is only for waltham-transmitter-plugin
 SRC_URI:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', ' file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch', '', d)}"