summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-11-08 11:01:32 -0500
committerScott Murray <scott.murray@konsulko.com>2024-04-18 17:35:39 -0400
commitd87c74b1ff5e2fb7602da34d0664289780c514db (patch)
tree358f6529671e8e83014424333229c4a8bcad40df
parent5f2e51df9bcedd3a3d6e1cfe0c5c5907ad0f4136 (diff)
weston: handle upgrade to 11.0
Changes: - Renamed local bbappend for weston to handle upstream upgrade to 11.0.0. - The local PACKAGECONFIG definitions have been removed as they are now present upstream. - Removed backported patch. Bug-AGL: SPEC-4578 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I3dc3c7042bf2ce8058df30ccd691232bf1d2a442
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-make-sure-all-buffers-are-released-when-.patch71
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch171
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_11.0.%.bbappend (renamed from meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend)2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_11.0_aglcore.inc (renamed from meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc)8
4 files changed, 2 insertions, 250 deletions
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-make-sure-all-buffers-are-released-when-.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-make-sure-all-buffers-are-released-when-.patch
deleted file mode 100644
index fc2f35bd6..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-make-sure-all-buffers-are-released-when-.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 6d9e9dfa0479abc0ed7921a4ebf42228c0da7533 Mon Sep 17 00:00:00 2001
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 22 Jun 2022 08:58:21 +0200
-Subject: [PATCH] backend-drm: make sure all buffers are released when an
- output is removed
-
-When an output is destroyed then the output state is freed immediately. In this
-case, the plane state is only partially destroyed because it is the currently
-active state. This includes the buffer reference.
-
-Without the output, the plane will not be updated any more until it is used by a
-different output (if possible) or the output returns and the plane is used
-again.
-As a result, the buffer reference is kept for a long time. This will cause some
-applications to stall because weston now keeps two buffers (the one here and
-another one for a different output where the application is now displayed).
-
-To avoid this, do a synchronous commit that disables the output. The output
-needs to be disabled anyways and this way the current state contains no
-buffers that would remain.
-
-`device->state_invalid = true` in drm_output_detach_crtc() is no longer
-needed, because drm_output_detach_crtc() is called only when initialization
-failed and the crtc was not yet used or in drm_output_deinit() when the
-crtc was already disabled with the new synchronous commit.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-(cherry picked from commit f5a4fb5abcb8aeb6b078b6235834cc4ab6176c26)
-
-Upstream-Status: Pending
-
----
- libweston/backend-drm/drm.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c
-index 42787702..8425b0e9 100644
---- a/libweston/backend-drm/drm.c
-+++ b/libweston/backend-drm/drm.c
-@@ -1769,14 +1769,11 @@ drm_output_attach_crtc(struct drm_output *output)
- static void
- drm_output_detach_crtc(struct drm_output *output)
- {
-- struct drm_backend *b = output->backend;
- struct drm_crtc *crtc = output->crtc;
-
- crtc->output = NULL;
- output->crtc = NULL;
-
-- /* Force resetting unused CRTCs */
-- b->state_invalid = true;
- }
-
- static int
-@@ -1839,6 +1836,13 @@ drm_output_deinit(struct weston_output *base)
- {
- struct drm_output *output = to_drm_output(base);
- struct drm_backend *b = to_drm_backend(base->compositor);
-+ struct drm_pending_state *pending;
-+
-+ if (!b->shutting_down) {
-+ pending = drm_pending_state_alloc(b);
-+ drm_output_get_disable_state(pending, output);
-+ drm_pending_state_apply_sync(pending);
-+ }
-
- if (b->use_pixman)
- drm_output_fini_pixman(output);
---
-2.39.2
-
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch
deleted file mode 100644
index 02349c098..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-desktop-xdg-shell-Add-tiled-orientation-st.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 6ab4713d3eba589aa1f39eee2b48c81906d7ba87 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Tue, 16 Aug 2022 13:34:19 +0300
-Subject: [PATCH] libweston/desktop/xdg-shell: Add tiled orientation states
-
-With the help of a newly introduced function, weston_desktop_surface_set_orientation(),
-this patch adds missing tiled states from the xdg-shell protocol.
-The orientation state is passed on as a bitmask enumeration flag, which the
-shell can set, allowing multiple tiling states at once.
-
-These new states are incorporated the same way as the others, retaining
-the set state, but also avoiding sending new configure events if nothing
-changed since previously acked data.
-
-Upstream-Status: Pending
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-(cherry-picked from 37a3025d893def991dec59587d17672aa3bf967a)
-
-Note that this was actually ported because libweston-desktop is not
-embedded into libweston and the structure changed in upstream.
----
- include/libweston-desktop/libweston-desktop.h | 11 ++++++
- libweston-desktop/internal.h | 2 +
- libweston-desktop/surface.c | 10 +++++
- libweston-desktop/xdg-shell.c | 38 +++++++++++++++++++
- 4 files changed, 61 insertions(+)
-
-diff --git a/include/libweston-desktop/libweston-desktop.h b/include/libweston-desktop/libweston-desktop.h
-index 3e7ac73..c296d16 100644
---- a/include/libweston-desktop/libweston-desktop.h
-+++ b/include/libweston-desktop/libweston-desktop.h
-@@ -44,6 +44,14 @@ enum weston_desktop_surface_edge {
- WESTON_DESKTOP_SURFACE_EDGE_BOTTOM_RIGHT = 10,
- };
-
-+enum weston_top_level_tiled_orientation {
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_NONE = 0 << 0,
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_LEFT = 1 << 1,
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_RIGHT = 1 << 2,
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_TOP = 1 << 3,
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_BOTTOM = 1 << 4,
-+};
-+
- struct weston_desktop;
- struct weston_desktop_client;
- struct weston_desktop_surface;
-@@ -163,6 +171,9 @@ void
- weston_desktop_surface_set_size(struct weston_desktop_surface *surface,
- int32_t width, int32_t height);
- void
-+weston_desktop_surface_set_orientation(struct weston_desktop_surface *surface,
-+ enum weston_top_level_tiled_orientation tile_orientation);
-+void
- weston_desktop_surface_close(struct weston_desktop_surface *surface);
- void
- weston_desktop_surface_add_metadata_listener(struct weston_desktop_surface *surface,
-diff --git a/libweston-desktop/internal.h b/libweston-desktop/internal.h
-index 2606d27..8afdede 100644
---- a/libweston-desktop/internal.h
-+++ b/libweston-desktop/internal.h
-@@ -100,6 +100,8 @@ struct weston_desktop_surface_implementation {
- void *user_data, bool resizing);
- void (*set_size)(struct weston_desktop_surface *surface,
- void *user_data, int32_t width, int32_t height);
-+ void (*set_orientation)(struct weston_desktop_surface *surface,
-+ void *user_data, enum weston_top_level_tiled_orientation tiled_orientation);
- void (*committed)(struct weston_desktop_surface *surface, void *user_data,
- int32_t sx, int32_t sy);
- void (*update_position)(struct weston_desktop_surface *surface,
-diff --git a/libweston-desktop/surface.c b/libweston-desktop/surface.c
-index 433f08a..6b3f4ae 100644
---- a/libweston-desktop/surface.c
-+++ b/libweston-desktop/surface.c
-@@ -506,6 +506,16 @@ weston_desktop_surface_set_size(struct weston_desktop_surface *surface, int32_t
- width, height);
- }
-
-+WL_EXPORT void
-+weston_desktop_surface_set_orientation(struct weston_desktop_surface *surface,
-+ enum weston_top_level_tiled_orientation tile_orientation)
-+{
-+ if (surface->implementation->set_orientation != NULL)
-+ surface->implementation->set_orientation(surface,
-+ surface->implementation_data,
-+ tile_orientation);
-+}
-+
- WL_EXPORT void
- weston_desktop_surface_close(struct weston_desktop_surface *surface)
- {
-diff --git a/libweston-desktop/xdg-shell.c b/libweston-desktop/xdg-shell.c
-index ff76c39..1e49147 100644
---- a/libweston-desktop/xdg-shell.c
-+++ b/libweston-desktop/xdg-shell.c
-@@ -94,6 +94,7 @@ struct weston_desktop_xdg_toplevel_state {
- bool fullscreen;
- bool resizing;
- bool activated;
-+ uint32_t tiled_orientation;
- };
-
- struct weston_desktop_xdg_toplevel_configure {
-@@ -624,6 +625,29 @@ weston_desktop_xdg_toplevel_send_configure(struct weston_desktop_xdg_toplevel *t
- s = wl_array_add(&states, sizeof(uint32_t));
- *s = XDG_TOPLEVEL_STATE_ACTIVATED;
- }
-+ if (toplevel->pending.state.tiled_orientation &
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_LEFT) {
-+ s = wl_array_add(&states, sizeof(uint32_t));
-+ *s = XDG_TOPLEVEL_STATE_TILED_LEFT;
-+ }
-+
-+ if (toplevel->pending.state.tiled_orientation &
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_RIGHT) {
-+ s = wl_array_add(&states, sizeof(uint32_t));
-+ *s = XDG_TOPLEVEL_STATE_TILED_RIGHT;
-+ }
-+
-+ if (toplevel->pending.state.tiled_orientation &
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_TOP) {
-+ s = wl_array_add(&states, sizeof(uint32_t));
-+ *s = XDG_TOPLEVEL_STATE_TILED_TOP;
-+ }
-+
-+ if (toplevel->pending.state.tiled_orientation &
-+ WESTON_TOP_LEVEL_TILED_ORIENTATION_BOTTOM) {
-+ s = wl_array_add(&states, sizeof(uint32_t));
-+ *s = XDG_TOPLEVEL_STATE_TILED_BOTTOM;
-+ }
-
- xdg_toplevel_send_configure(toplevel->resource,
- toplevel->pending.size.width,
-@@ -686,6 +710,16 @@ weston_desktop_xdg_toplevel_set_size(struct weston_desktop_surface *dsurface,
- weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
- }
-
-+static void
-+weston_desktop_xdg_toplevel_set_orientation(struct weston_desktop_surface *surface, void *user_data,
-+ enum weston_top_level_tiled_orientation tiled_orientation)
-+{
-+ struct weston_desktop_xdg_toplevel *toplevel = user_data;
-+
-+ toplevel->pending.state.tiled_orientation = tiled_orientation;
-+ weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
-+}
-+
- static void
- weston_desktop_xdg_toplevel_committed(struct weston_desktop_xdg_toplevel *toplevel,
- int32_t sx, int32_t sy)
-@@ -1096,6 +1130,9 @@ weston_desktop_xdg_toplevel_state_compare(struct weston_desktop_xdg_toplevel *to
- return false;
- if (toplevel->pending.state.resizing != configured.state.resizing)
- return false;
-+ if (toplevel->pending.state.tiled_orientation !=
-+ configured.state.tiled_orientation)
-+ return false;
-
- if (toplevel->pending.size.width == configured.size.width &&
- toplevel->pending.size.height == configured.size.height)
-@@ -1440,6 +1477,7 @@ static const struct weston_desktop_surface_implementation weston_desktop_xdg_sur
- .set_resizing = weston_desktop_xdg_toplevel_set_resizing,
- .set_activated = weston_desktop_xdg_toplevel_set_activated,
- .set_size = weston_desktop_xdg_toplevel_set_size,
-+ .set_orientation = weston_desktop_xdg_toplevel_set_orientation,
-
- .get_maximized = weston_desktop_xdg_toplevel_get_maximized,
- .get_fullscreen = weston_desktop_xdg_toplevel_get_fullscreen,
---
-2.35.1
-
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend b/meta-agl-core/recipes-graphics/wayland/weston_11.0.%.bbappend
index 685894116..d968cc01e 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston_11.0.%.bbappend
@@ -1 +1 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_10.0_aglcore.inc', '', d)}
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_11.0_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_11.0_aglcore.inc
index a19e0f344..de816736a 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc
+++ b/meta-agl-core/recipes-graphics/wayland/weston_11.0_aglcore.inc
@@ -1,16 +1,10 @@
FILESEXTRAPATHS:append := ":${THISDIR}/weston"
-# Workaround for incorrect upstream definition
-PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[headless] = "-Dbackend-headless=true"
PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
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 \
file://0001-simple-touch-Add-maximized-fullscreen-states.patch \
- file://0001-backend-drm-make-sure-all-buffers-are-released-when-.patch \
- file://0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch \
-"
+ file://0001-libweston-weston-log-Add-a-iterator-helper-for-debug.patch "
# Split weston-terminal out of the main package to allow installing it
# separately for use with other compositors. The icons, etc. that end