diff options
Diffstat (limited to 'meta-agl-core')
9 files changed, 65 insertions, 271 deletions
diff --git a/meta-agl-core/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf index ce52bf279..2cac79148 100644 --- a/meta-agl-core/conf/distro/poky-agl.conf +++ b/meta-agl-core/conf/distro/poky-agl.conf @@ -144,13 +144,3 @@ AGL_DEFAULT_INITRAMFS_FSTYPES ?= "ext4.gz" IMAGE_FSTYPES = "${AGL_DEFAULT_IMAGE_FSTYPES} ${AGL_EXTRA_IMAGE_FSTYPES}" INITRAMFS_FSTYPES = "${AGL_DEFAULT_INITRAMFS_FSTYPES} ${AGL_EXTRA_INITRAMFS_FSTYPES}" # - -# Fix for rpm metadata clash between nativesdk-cmake and nativesdk-qtbase-tools -# (revalidate after 2017-10-15, 2018-06-12: still required) -DIRFILES:pn-nativesdk-cmake = "1" - -# For https://jira.automotivelinux.org/browse/SPEC-1629 : -# We exclude the conflicting vars from the sstate task hash. -# This needs to be verified. -do_package_write_rpm[vardepsexclude] += "ARCHIVER_TOPDIR PF" - diff --git a/meta-agl-core/conf/layer.conf b/meta-agl-core/conf/layer.conf index 4c7d7f898..8047df519 100644 --- a/meta-agl-core/conf/layer.conf +++ b/meta-agl-core/conf/layer.conf @@ -20,7 +20,7 @@ BBFILES_DYNAMIC += " \ qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bbappend \ " -LAYERSERIES_COMPAT_aglcore = "kirkstone langdale mickledore nanbield scarthgap" +LAYERSERIES_COMPAT_aglcore = "scarthgap" LAYERDEPENDS_aglcore = "core" # Sanity check for meta-virtualization layer. diff --git a/meta-agl-core/files/group b/meta-agl-core/files/group index 69a86186e..a7e0cd17f 100644 --- a/meta-agl-core/files/group +++ b/meta-agl-core/files/group @@ -99,3 +99,4 @@ sgx::1010: kuksa::900: qemu::901: kvm::902: +ptest::2001: diff --git a/meta-agl-core/files/passwd b/meta-agl-core/files/passwd index 3e6639d86..ea54d06e4 100644 --- a/meta-agl-core/files/passwd +++ b/meta-agl-core/files/passwd @@ -65,3 +65,4 @@ pipewire::1008:1008::: kuksa::900:900::: qemu::901:901::: user::1004:100::: +ptest::2001:2001::: diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb index 3596cbb06..41240309b 100644 --- a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb +++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fac6abe0003c4d142ff8fa1f18316df0" DEPENDS = "wayland wayland-protocols wayland-native weston" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-compositor.git;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "d5ecd12729734b788546e0d80edc492454bec251" +SRCREV = "18e93caca8ad397d504215d673765871b2c88f25" AGL_BRANCH:aglnext = "next" SRCREV:aglnext = "${AUTOREV}" diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch new file mode 100644 index 000000000..19eadcf7f --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch @@ -0,0 +1,60 @@ +From cfde02d47a503cbfd0629bbfe0cb776686af8a91 Mon Sep 17 00:00:00 2001 +From: Marius Vlad <marius.vlad@collabora.com> +Date: Tue, 9 Apr 2024 18:34:22 +0300 +Subject: [PATCH] libweston: Add paint node destruction into + weston_layer_entry_remove() + +This prevents a potential crash where users of +weston_layer_entry_insert/layer_entry_remove() would see when moving +views into a NULL layer (effectively unmapping the surface/view). + +Users that have migrated to the weston_view_move_to_layer() are immune +to this issue because that takes care paint node destruction. + +Signed-off-by: Marius Vlad <marius.vlad@collabora.com> +--- + libweston/compositor.c | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +diff --git a/libweston/compositor.c b/libweston/compositor.c +index bb29b83b5..ea257bb90 100644 +--- a/libweston/compositor.c ++++ b/libweston/compositor.c +@@ -3980,17 +3980,10 @@ weston_view_move_to_layer(struct weston_view *view, + struct weston_layer_entry *layer) + { + bool was_mapped = view->is_mapped; +- struct weston_paint_node *pnode, *pntmp; + + if (layer == &view->layer_link) + return; + +- /* Remove all paint nodes because we have no idea what a layer change +- * does to view visibility on any output. +- */ +- wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link) +- weston_paint_node_destroy(pnode); +- + view->surface->compositor->view_list_needs_rebuild = true; + + /* Damage the view's old region, and remove it from the layer. */ +@@ -4020,6 +4013,16 @@ weston_view_move_to_layer(struct weston_view *view, + WL_EXPORT void + weston_layer_entry_remove(struct weston_layer_entry *entry) + { ++ struct weston_paint_node *pnode, *pntmp; ++ struct weston_view *view; ++ ++ /* Remove all paint nodes because we have no idea what a layer change ++ * does to view visibility on any output. ++ */ ++ view = container_of(entry, struct weston_view, layer_link); ++ wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link) ++ weston_paint_node_destroy(pnode); ++ + wl_list_remove(&entry->link); + wl_list_init(&entry->link); + entry->layer = NULL; +-- +2.43.0 + diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch deleted file mode 100644 index 924308cb9..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch +++ /dev/null @@ -1,227 +0,0 @@ -From d8517b45bf11f5a1a838637a0474375549292d9a Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Mon, 29 May 2023 16:30:02 +0300 -Subject: [PATCH] libweston/weston-log: Add a iterator helper for debug scope - -This adds three new helpers: one to iterate over all debug scopes -created/added and other two are for simpler getters for the scope name -and the description. - -Included with this change is also a simple test to retrieve them. - -This is an alternative to using the debug scope list advertised when -using the weston-debug private extension. libweston users can use this -directly to know which scopes they can subscribe to, and there's no need -to have a client implementation for the weston-debug protocol. - -Upstream-Status: Pending - -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> - ---- - include/libweston/weston-log.h | 10 ++++ - libweston/weston-log.c | 63 +++++++++++++++++++++++ - tests/iterate-debug-scopes-test.c | 84 +++++++++++++++++++++++++++++++ - tests/meson.build | 6 +++ - 4 files changed, 163 insertions(+) - create mode 100644 tests/iterate-debug-scopes-test.c - -diff --git a/include/libweston/weston-log.h b/include/libweston/weston-log.h -index 1786dea..818d9de 100644 ---- a/include/libweston/weston-log.h -+++ b/include/libweston/weston-log.h -@@ -136,6 +136,16 @@ weston_log_subscription_iterate(struct weston_log_scope *scope, - void - weston_log_flight_recorder_display_buffer(FILE *file); - -+const char * -+weston_log_scope_get_description(struct weston_log_scope *scope); -+ -+const char * -+weston_log_scope_get_name(struct weston_log_scope *scope); -+ -+struct weston_log_scope * -+weston_log_scopes_iterate(struct weston_log_context *log_ctx, -+ struct weston_log_scope *nscope); -+ - #ifdef __cplusplus - } - #endif -diff --git a/libweston/weston-log.c b/libweston/weston-log.c -index 93f95c9..5d6ff2b 100644 ---- a/libweston/weston-log.c -+++ b/libweston/weston-log.c -@@ -1057,3 +1057,66 @@ weston_log_subscription_iterate(struct weston_log_scope *scope, - - return container_of(node, struct weston_log_subscription, source_link); - } -+ -+/** Iterate over all debug scopes added to a weston_log_context -+ * -+ * @param log_ctx the log context -+ * @param nscope the iterator, use NULL to start from the head of the list -+ * @returns the next log scope from list added to weston_log_ctx -+ * -+ * Note that that \c nscope needs to be NULL-initialized before calling -+ * this function. -+ * -+ * This helper can be used by libweston users to grab all the debug scopes -+ * created. This would be an alternative to using weston-debug private -+ * extension. -+ * -+ */ -+WL_EXPORT struct weston_log_scope * -+weston_log_scopes_iterate(struct weston_log_context *log_ctx, -+ struct weston_log_scope *nscope) -+{ -+ struct wl_list *list; -+ struct wl_list *node; -+ -+ assert(log_ctx); -+ -+ list = &log_ctx->scope_list; -+ -+ if (nscope) { -+ node = nscope->compositor_link.next; -+ } else { -+ node = list->next; -+ } -+ -+ assert(node); -+ assert(!nscope || node != &nscope->compositor_link); -+ -+ if (node == list) -+ return NULL; -+ -+ return container_of(node, struct weston_log_scope, compositor_link); -+} -+ -+/** Helper to retrieve, in human readable form, the name of a log scope -+ * -+ * @param scope the scope in question -+ * @returns the name of the scope as a pointer to a string -+ */ -+WL_EXPORT const char * -+weston_log_scope_get_name(struct weston_log_scope *scope) -+{ -+ return scope->name; -+} -+ -+/** Helper to retreive, in human reable form, the description of a log scope -+ * -+ * @param scope the scope in question -+ * @returns the description of the scope as pointer to a string -+ * -+ */ -+WL_EXPORT const char * -+weston_log_scope_get_description(struct weston_log_scope *scope) -+{ -+ return scope->desc; -+} -diff --git a/tests/iterate-debug-scopes-test.c b/tests/iterate-debug-scopes-test.c -new file mode 100644 -index 0000000..82c6c5c ---- /dev/null -+++ b/tests/iterate-debug-scopes-test.c -@@ -0,0 +1,84 @@ -+/* -+ * Copyright 2023 Collabora, Ltd. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining -+ * a copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sublicense, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial -+ * portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+#include "config.h" -+ -+#include <unistd.h> -+#include <assert.h> -+#include <stdlib.h> -+#include <stdio.h> -+#include <string.h> -+ -+#include <libweston/weston-log.h> -+#include "weston-test-client-helper.h" -+#include "weston-test-fixture-compositor.h" -+ -+ -+static enum test_result_code -+fixture_setup(struct weston_test_harness *harness) -+{ -+ struct compositor_setup setup; -+ -+ compositor_setup_defaults(&setup); -+ setup.shell = SHELL_TEST_DESKTOP; -+ -+ return weston_test_harness_execute_as_plugin(harness, &setup); -+} -+ -+DECLARE_FIXTURE_SETUP(fixture_setup); -+ -+static void -+iterate_debug_scopes(struct weston_compositor *compositor) -+{ -+ struct weston_log_scope *nscope = NULL; -+ const char *test_harness_scope = "test-harness-plugin"; -+ bool found_test_harness_debug_scope = false; -+ struct weston_log_context *log_ctx = compositor->weston_log_ctx; -+ -+ weston_log("Printing available debug scopes:\n"); -+ -+ while ((nscope = weston_log_scopes_iterate(log_ctx, nscope))) { -+ const char *scope_name; -+ const char *desc_name; -+ -+ scope_name = weston_log_scope_get_name(nscope); -+ assert(scope_name); -+ -+ desc_name = weston_log_scope_get_description(nscope); -+ assert(desc_name); -+ -+ weston_log("\tscope name: %s, desc: %s\n", scope_name, desc_name); -+ -+ if (strcmp(test_harness_scope, scope_name) == 0) -+ found_test_harness_debug_scope = true; -+ } -+ weston_log("\n"); -+ -+ assert(found_test_harness_debug_scope); -+} -+ -+PLUGIN_TEST(iterate_default_debug_scopes) -+{ -+ iterate_debug_scopes(compositor); -+} -diff --git a/tests/meson.build b/tests/meson.build -index 1d59a93..7908896 100644 ---- a/tests/meson.build -+++ b/tests/meson.build -@@ -269,6 +269,12 @@ tests = [ - ], - 'dep_objs': [ dep_libweston_public ] - }, -+ { 'name': 'iterate-debug-scopes', -+ 'sources': [ -+ 'iterate-debug-scopes-test.c', -+ ], -+ 'dep_objs': [ dep_libweston_public ] -+ }, - ] - - if get_option('renderer-gl') diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-toy-toolkit-Fix-rotations.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-toy-toolkit-Fix-rotations.patch deleted file mode 100644 index 8c506409c..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-toy-toolkit-Fix-rotations.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dbdbc6b5bce99f370e9627aeff9cfeaa7fe018c2 Mon Sep 17 00:00:00 2001 -From: Derek Foreman <derek.foreman@collabora.com> -Date: Mon, 26 Jun 2023 11:19:23 -0500 -Subject: [PATCH] toy-toolkit: Fix rotations - -Ever since commit 3012934 some rotations have been broken. This is because -I transposed xy and yx in the cairo_matrix_init() call. - -Upstream-Status: Pending - -Signed-off-by: Derek Foreman <derek.foreman@collabora.com> -(cherry picked from commit f0196739ae42195f178ce889e12460228a7a25cb) ---- - clients/window.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/clients/window.c b/clients/window.c -index f8bcd4d77..30f64109e 100644 ---- a/clients/window.c -+++ b/clients/window.c -@@ -1661,7 +1661,7 @@ widget_cairo_update_transform(struct widget *widget, cairo_t *cr) - surface->allocation.width, - surface->allocation.height, - surface->buffer_scale); -- cairo_matrix_init(&m, matrix.d[0], matrix.d[4], matrix.d[1], -+ cairo_matrix_init(&m, matrix.d[0], matrix.d[1], matrix.d[4], - matrix.d[5], matrix.d[12], matrix.d[13]); - cairo_transform(cr, &m); - } --- -2.40.1 - diff --git a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc index 14387898e..843a068b4 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc +++ b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc @@ -4,6 +4,7 @@ PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting SRC_URI:append = " \ file://0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch \ + file://0001-libweston-Add-paint-node-destruction-into-weston_lay.patch \ " |