summaryrefslogtreecommitdiffstats
path: root/meta-agl-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-core')
-rw-r--r--meta-agl-core/conf/distro/poky-agl.conf10
-rw-r--r--meta-agl-core/conf/layer.conf2
-rw-r--r--meta-agl-core/files/group1
-rw-r--r--meta-agl-core/files/passwd1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch60
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch227
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-toy-toolkit-Fix-rotations.patch32
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc1
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 \
"