From 0584467980142415294a44fc7049c187580603f5 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Wed, 24 Aug 2022 12:04:01 +0300 Subject: weston_10.0_aglcore.inc: Update wl_output to version 4 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 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 --- ...end-name-description-update-wl_output-to-.patch | 115 +++++++++++++++++++++ .../wayland/weston_10.0_aglcore.inc | 4 +- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Send-name-description-update-wl_output-to-.patch 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 index 000000000..46e305d12 --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Send-name-description-update-wl_output-to-.patch @@ -0,0 +1,115 @@ +From 5361d157ff6b11d5cb7a9f989abe5f376c9e2efa Mon Sep 17 00:00:00 2001 +From: Marius Vlad +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 +--- + 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 + diff --git a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc index 6cd2ce17a..0e09ca528 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc +++ b/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc @@ -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)}" -- cgit 1.2.3-korg