stm-st-stm32mp: weston: sync weston recipes with v13.0.1
This commit removes all outdated weston recipes and synchronizes it with the latest v13.0.1 from the meta-st-openstlinux layer, based on the openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06 tag for Yocto 5.0 (scarthgap). https://onedigi.atlassian.net/browse/DEL-9381 Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
parent
d29d7149a7
commit
661d1dc620
|
|
@ -39,16 +39,13 @@ do_install:append() {
|
|||
|
||||
install -d ${D}${systemd_system_unitdir} ${D}${sbindir}
|
||||
|
||||
if [ -e ${D}/${systemd_system_unitdir}/weston.service ]; then
|
||||
rm ${D}/${systemd_system_unitdir}/weston.service ${D}/${systemd_system_unitdir}/weston.socket
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
install -D -p -m0644 ${WORKDIR}/weston-launch.service ${D}${systemd_system_unitdir}/weston-launch.service
|
||||
sed -i -e s:/etc:${sysconfdir}:g \
|
||||
-e s:/usr/bin:${bindir}:g \
|
||||
-e s:/var:${localstatedir}:g \
|
||||
${D}${systemd_unitdir}/system/weston-launch.service
|
||||
install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants/
|
||||
#ln -s /lib/systemd/system/weston-launch.service ${D}${sysconfdir}/systemd/system/multi-user.target.wants/display-manager.service
|
||||
install -D -p -m0644 ${WORKDIR}/weston-checkgpu.service ${D}${systemd_system_unitdir}/
|
||||
install -D -p -m0644 ${WORKDIR}/weston-checkgpu.service ${D}${systemd_system_unitdir}/weston-checkgpu.service
|
||||
fi
|
||||
|
||||
install -d ${D}${sysconfdir}/profile.d
|
||||
|
|
@ -59,9 +56,10 @@ do_install:append() {
|
|||
sed -i -e 's,#xwayland=true,xwayland=true,g' ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ -e ${D}${bindir}/weston-start ]; then
|
||||
install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
|
||||
sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
|
||||
fi
|
||||
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
|
||||
|
||||
# /etc/default/weston
|
||||
install -d ${D}${sysconfdir}/default
|
||||
echo "WESTON_USER=root" > ${D}${sysconfdir}/default/weston
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
SUBSYSTEMS=="drm", ACTION=="change", RUN+="/usr/bin/pulseaudio_hdmi_switch.sh
|
||||
SUBSYSTEMS=="drm", ACTION=="change", RUN+="/usr/bin/pulseaudio_hdmi_switch.sh"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,32 @@ check_default_weston_config() {
|
|||
fi
|
||||
fi
|
||||
}
|
||||
add_weston_force_renderer() {
|
||||
# with HDMI and GPU with 2 planes
|
||||
# sometime we need to force WESTON_FORCE_RENDERER
|
||||
if $(cat /proc/device-tree/compatible | grep -q "stm32mp15")
|
||||
then
|
||||
hdmi_status=$(cat /sys/class/drm/card0-HDMI-A-1/status)
|
||||
if [ -e /etc/default/weston ] && ! $(grep -q "WESTON_FORCE_RENDERER" /etc/default/weston) ; then
|
||||
echo "#" >> /etc/default/weston
|
||||
echo "# if \"LTDC fifo underrun\" messages occur " >> /etc/default/weston
|
||||
echo "# You can force the RENDERER on weston" >> /etc/default/weston
|
||||
echo "#WESTON_FORCE_RENDERER=1" >> /etc/default/weston
|
||||
fi
|
||||
if [ "$hdmi_status" = "connected" ]; then
|
||||
if [ -e /etc/default/weston ] && $(grep -q "WESTON_FORCE_RENDERER" /etc/default/weston) ; then
|
||||
sed -i "s/^#WESTON_FORCE_RENDERER=1/WESTON_FORCE_RENDERER=1/g" /etc/default/weston
|
||||
fi
|
||||
else
|
||||
if [ -e /etc/default/weston ] && $(grep -q "Autogenerated" /etc/default/weston) ; then
|
||||
# disable WESTON_FORCE_RENDERER
|
||||
sed -i "s/^WESTON_FORCE_RENDERER=1/#WESTON_FORCE_RENDERER=1/g" /etc/default/weston
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Main
|
||||
#
|
||||
|
|
@ -92,9 +118,10 @@ check_devices
|
|||
if [ "$gcnano_status" = "okay" ] && [ -n "$galcore_module" ] && [ -n "$galcore_device" ];
|
||||
then
|
||||
#echo "Gcnano is present and activated" > /dev/kmsg
|
||||
add_weston_force_renderer
|
||||
if [ -f /etc/default/weston ] && $(grep -q "Autogenerated" /etc/default/weston) ;
|
||||
then
|
||||
sed -i "s/OPTARGS=--use-pixman/#OPTARGS=--use-pixman/g" /etc/default/weston
|
||||
sed -i "s/^OPTARGS=--use-pixman/#OPTARGS=--use-pixman/g" /etc/default/weston
|
||||
sed -i "/#Autogenerated/d" /etc/default/weston
|
||||
fi
|
||||
if [ ! -f /etc/default/weston ];
|
||||
|
|
@ -102,6 +129,7 @@ then
|
|||
echo "#Autogenerated" > /etc/default/weston
|
||||
echo "#OPTARGS=--use-pixman" >> /etc/default/weston
|
||||
echo "WESTON_USER=root" >> /etc/default/weston
|
||||
add_weston_force_renderer
|
||||
fi
|
||||
else
|
||||
if [ -f /etc/default/weston ] && $(grep -q "pixman" /etc/default/weston) ;
|
||||
|
|
@ -112,6 +140,7 @@ else
|
|||
echo "#Autogenerated" > /etc/default/weston
|
||||
echo "OPTARGS=--use-pixman" >> /etc/default/weston
|
||||
echo "WESTON_USER=root" >> /etc/default/weston
|
||||
add_weston_force_renderer
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -11,16 +11,17 @@ else
|
|||
fi
|
||||
cat > /tmp/pulse_temp_switch.sh <<EOF
|
||||
#!/bin/sh
|
||||
cards=\$(pactl list cards | egrep -i 'Card #' | sed 's/Card //g')
|
||||
cards=\$(pactl list cards | grep -i 'Card #' | sed 's/Card //g')
|
||||
index=0
|
||||
for i in \$cards;
|
||||
do
|
||||
card_info=\$(pactl list cards | grep "Card \$i" -A15 | grep "alsa.card_name" | sed 's/ //g'| sed 's/alsa.card_name=\"//g'| sed 's/\"//g' | tr '\t' ' ' | sed 's/^\s*//g')
|
||||
echo "\$i \$card_info"
|
||||
# for each card, search alsa.card_name
|
||||
card_info=\$(pactl list cards | grep "Card \$i" -A15 | grep "api.alsa.card.name" | sed 's/ //g'| sed 's/api.alsa.card.name=\"//g'| sed 's/\"//g' | tr '\t' ' ' | sed 's/^\s*//g')
|
||||
echo ">\$i< \$card_info"
|
||||
# for each card, search alsa_card
|
||||
found=\$(echo \$card_info | grep -n STM32MP | wc -l)
|
||||
if [ \$found -eq 1 ];
|
||||
then
|
||||
index=\$(echo \$i | sed 's/#//')
|
||||
echo "pactl set-card-profile \$index $PROFILE"
|
||||
pactl set-card-profile \$index $PROFILE
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ Environment="WESTON_USER=root"
|
|||
Environment="WL_EGL_GBM_FENCE=0"
|
||||
#ExecStart=/usr/bin/weston-launch -- --modules=systemd-notify.so --log=/tmp/weston.log $OPTARGS
|
||||
ExecStart=/usr/bin/weston-start --modules=systemd-notify.so --log=/tmp/weston.log $OPTARGS
|
||||
ExecStop=/usr/bin/killall weston-launch
|
||||
ExecStop=/usr/bin/killall weston
|
||||
|
||||
# Optional watchdog setup
|
||||
#TimeoutStartSec=60
|
||||
|
|
|
|||
|
|
@ -5,10 +5,6 @@ weston_args=$*
|
|||
if [ -z "$WESTON_USER" ]; then
|
||||
WESTON_USER=root
|
||||
fi
|
||||
if [ "$USER" != "$WESTON_USER" ]; then
|
||||
weston_args_user="-u $WESTON_USER"
|
||||
fi
|
||||
|
||||
|
||||
# for associated service: pulseaudio
|
||||
if [ ! -d "/var/run/pulse" ]; then
|
||||
|
|
@ -37,5 +33,9 @@ if [ "$USER" == "$WESTON_USER" ]; then
|
|||
done
|
||||
fi
|
||||
fi
|
||||
exec /usr/bin/weston-launch $weston_args_user -- $weston_args
|
||||
if [ -f /home/weston/weston.log ]; then
|
||||
mv /home/weston/weston.log /home/weston/weston-previous.log
|
||||
fi
|
||||
|
||||
exec /usr/bin/weston $weston_args
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
[core]
|
||||
#modules=cms-colord.so
|
||||
modules=screen-share.so
|
||||
#xwayland=true
|
||||
shell=desktop-shell.so
|
||||
shell=desktop
|
||||
#gbm-format=xrgb2101010
|
||||
backend=drm-backend.so
|
||||
backend=drm
|
||||
idle-time=0
|
||||
repaint-window=100
|
||||
require-input=false
|
||||
remoting=remoting-plugin.so
|
||||
|
||||
[keyboard]
|
||||
keymap_layout=us
|
||||
|
|
@ -34,12 +35,17 @@ app-ids=1000
|
|||
name=DPI-1
|
||||
mode=preferred
|
||||
|
||||
# LVDS connector
|
||||
[output]
|
||||
name=LVDS-1
|
||||
mode=preferred
|
||||
|
||||
[libinput]
|
||||
touchscreen_calibrator=true
|
||||
calibration_helper=/bin/echo
|
||||
|
||||
[screen-share]
|
||||
command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
|
||||
command=/usr/bin/weston --backend=rdp --shell=fullscreen --no-clients-resize
|
||||
#start-on-startup=false
|
||||
|
||||
#[xwayland]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
[Unit]
|
||||
Description=Weston, a Wayland compositor, as a user service
|
||||
Documentation=man:weston(1) man:weston.ini(5)
|
||||
Documentation=https://wayland.freedesktop.org/
|
||||
|
||||
# Activate using a systemd socket
|
||||
Requires=weston.socket
|
||||
After=weston.socket
|
||||
|
||||
# Since we are part of the graphical session, make sure we are started before
|
||||
Before=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
TimeoutStartSec=60
|
||||
WatchdogSec=20
|
||||
# Defaults to journal
|
||||
#StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
EnvironmentFile=-/etc/default/weston
|
||||
Environment="XDG_RUNTIME_DIR=/home/weston"
|
||||
Environment="WESTON_USER=weston"
|
||||
Environment="WL_EGL_GBM_FENCE=0"
|
||||
# add a ~/.config/weston.ini and weston will pick-it up
|
||||
ExecStart=/usr/bin/weston-start --modules=systemd-notify.so --log=/home/weston/weston.log $OPTARGS
|
||||
ExecStop=/usr/bin/killall weston
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[Unit]
|
||||
Description=Weston, a Wayland compositor
|
||||
Documentation=man:weston(1) man:weston.ini(5)
|
||||
Documentation=https://wayland.freedesktop.org/
|
||||
|
||||
[Socket]
|
||||
ListenStream=%t/wayland-0
|
||||
|
|
@ -5,6 +5,9 @@ if [ "$USER" == "root" ]; then
|
|||
export ECORE_EVAS_ENGINE=wayland_shm
|
||||
export ECORE_EVAS_ENGINE=wayland_shm
|
||||
export GDK_BACKEND=wayland
|
||||
export PULSE_RUNTIME_PATH=/run/user/`id -u root`/pulse
|
||||
export USE_PLAYBIN3=1
|
||||
|
||||
if [ -e $XDG_RUNTIME_DIR/wayland-0 ]; then
|
||||
export WAYLAND_DISPLAY=wayland-0
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
From: Christophe Priouzeau <christophe.priouzeau@st.com>
|
||||
Date: Thu, 19 Mar 2020 12:15:19 +0100
|
||||
Subject: [PATCH 1/4] Allow to get hdmi output with several outputs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If an ouput fail to be attach or enable then this output must be only
|
||||
destroyed and an error doesn't be re which detach & destroy
|
||||
all other output.
|
||||
|
||||
Upstream-Status: Inappropriate [DEY specific]
|
||||
|
||||
Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
|
||||
---
|
||||
compositor/main.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/compositor/main.c b/compositor/main.c
|
||||
index 322f2ff..055eed3 100644
|
||||
--- a/compositor/main.c
|
||||
+++ b/compositor/main.c
|
||||
@@ -2246,8 +2246,14 @@ drm_process_layoutput(struct wet_compositor *wet, struct wet_layoutput *lo)
|
||||
return -1;
|
||||
|
||||
if (drm_try_attach_enable(output->output, lo) < 0) {
|
||||
+ /*
|
||||
+ * if a wet_ouput fail to be attach or enable
|
||||
+ * then this output must be destroyed
|
||||
+ * but don't return an error which dettatch & destroy
|
||||
+ * all other output.
|
||||
+ */
|
||||
wet_output_destroy(output);
|
||||
- return -1;
|
||||
+ //return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
From aa4cb0e6576a98dc6212ed11af0e8fd129b21d15 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
Date: Mon, 18 Mar 2024 16:43:33 +0100
|
||||
Subject: [PATCH 1/4] Clone mode not supported
|
||||
|
||||
Display controller doesn't support several outputs.
|
||||
During a head changed, get & close the weston head which is enabled.
|
||||
Then an output can enabled (only one even if several output have
|
||||
connected).
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Yannick Fertre <yannick.fertre@foss.st.com>
|
||||
---
|
||||
compositor/main.c | 24 ++++++++++++++++--------
|
||||
1 file changed, 16 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/compositor/main.c b/compositor/main.c
|
||||
index 0e3d375..365dc1c 100644
|
||||
--- a/compositor/main.c
|
||||
+++ b/compositor/main.c
|
||||
@@ -2668,22 +2668,30 @@ drm_heads_changed(struct wl_listener *listener, void *arg)
|
||||
/* We need to collect all cloned heads into outputs before enabling the
|
||||
* output.
|
||||
*/
|
||||
+ while ((head = weston_compositor_iterate_heads(compositor, head))) {
|
||||
+ enabled = weston_head_is_enabled(head);
|
||||
+
|
||||
+ if (enabled) {
|
||||
+ drm_head_disable(head);
|
||||
+ weston_head_reset_device_changed(head);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
while ((head = wet_backend_iterate_heads(wet, wb, head))) {
|
||||
connected = weston_head_is_connected(head);
|
||||
enabled = weston_head_is_enabled(head);
|
||||
- changed = weston_head_is_device_changed(head);
|
||||
forced = drm_head_should_force_enable(wet, head);
|
||||
|
||||
if ((connected || forced) && !enabled) {
|
||||
+ /*
|
||||
+ * Prepare & enable only the first head connected.
|
||||
+ * CRTC doesn't support several output.
|
||||
+ */
|
||||
drm_head_prepare_enable(wet, head);
|
||||
- } else if (!(connected || forced) && enabled) {
|
||||
- drm_head_disable(head);
|
||||
- } else if (enabled && changed) {
|
||||
- weston_log("Detected a monitor change on head '%s', "
|
||||
- "not bothering to do anything about it.\n",
|
||||
- weston_head_get_name(head));
|
||||
+
|
||||
+ weston_head_reset_device_changed(head);
|
||||
+ break;
|
||||
}
|
||||
- weston_head_reset_device_changed(head);
|
||||
}
|
||||
|
||||
if (drm_process_layoutputs(wet) < 0)
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -1,23 +1,23 @@
|
|||
From 953cbf79c877b4bb4af7c54cfaa779da346513f5 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
Date: Thu, 25 Aug 2022 09:34:23 +0200
|
||||
Subject: [PATCH 4/4] Disable request to EGL_DRM_RENDER_NODE_FILE_EXT
|
||||
Date: Fri, 24 Mar 2023 11:58:06 +0100
|
||||
Subject: [PATCH 2/4] Disable request to EGL_DRM_RENDER_NODE_FILE_EXT
|
||||
|
||||
Depending on GPU userland implementationn the reqest of EGL_DRM_RENDER_NODE_FILE_EXT
|
||||
return /dev/dri/renderD128 but this interface are not always present.
|
||||
|
||||
Upstream-Status: Inappropriate [DEY specific]
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
---
|
||||
libweston/renderer-gl/egl-glue.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libweston/renderer-gl/egl-glue.c b/libweston/renderer-gl/egl-glue.c
|
||||
index 013172a..46063c5 100644
|
||||
index 8a0381c..90f499f 100644
|
||||
--- a/libweston/renderer-gl/egl-glue.c
|
||||
+++ b/libweston/renderer-gl/egl-glue.c
|
||||
@@ -480,9 +480,9 @@ gl_renderer_set_egl_device(struct gl_renderer *gr)
|
||||
gl_renderer_log_extensions("EGL device extensions", extensions);
|
||||
@@ -481,9 +481,9 @@ gl_renderer_set_egl_device(struct gl_renderer *gr)
|
||||
gl_renderer_log_extensions(gr, "EGL device extensions", extensions);
|
||||
|
||||
/* Try to query the render node using EGL_DRM_RENDER_NODE_FILE_EXT */
|
||||
- if (weston_check_egl_extension(extensions, "EGL_EXT_device_drm_render_node"))
|
||||
|
|
@ -30,3 +30,5 @@ index 013172a..46063c5 100644
|
|||
/* The extension is not supported by the Mesa version of the system or
|
||||
* the query failed. Fallback to EGL_DRM_DEVICE_FILE_EXT */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From: Christophe Priouzeau <christophe.priouzeau@st.com>
|
||||
Date: Thu, 19 Mar 2020 12:20:32 +0100
|
||||
Subject: [PATCH 2/4] Force to close all output
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In case of plug/unplug HMDI, it's necessary to close all output enabled.
|
||||
Without this patch, weston is stuck on DSI output.
|
||||
|
||||
Upstream-Status: Inappropriate [DEY specific]
|
||||
|
||||
Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
|
||||
---
|
||||
compositor/main.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/compositor/main.c b/compositor/main.c
|
||||
index 055eed3..ac366a0 100644
|
||||
--- a/compositor/main.c
|
||||
+++ b/compositor/main.c
|
||||
@@ -2322,7 +2322,11 @@ drm_heads_changed(struct wl_listener *listener, void *arg)
|
||||
|
||||
if ((connected || forced) && !enabled) {
|
||||
drm_head_prepare_enable(wet, head);
|
||||
- } else if (!(connected || forced) && enabled) {
|
||||
+ } else if (enabled) {
|
||||
+ /*
|
||||
+ * closed all output (connected or not connected)
|
||||
+ * this is neccessary to switch between HDMI <> DSI
|
||||
+ */
|
||||
drm_head_disable(head);
|
||||
} else if (enabled && changed) {
|
||||
weston_log("Detected a monitor change on head '%s', "
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
From 3ca655e561099b11c70961c5132bbab8fa3f0c63 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
|
||||
Date: Tue, 9 May 2023 15:06:09 +0200
|
||||
Subject: [PATCH 3/4] Revert "compositor: improve opacity handling for scaled
|
||||
surfaces"
|
||||
|
||||
This reverts commit 81912dc2a69f24c8fbcb43a2bc1f7860f3085c01.
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
libweston/compositor.c | 13 +------------
|
||||
1 file changed, 1 insertion(+), 12 deletions(-)
|
||||
|
||||
diff --git a/libweston/compositor.c b/libweston/compositor.c
|
||||
index 6cfcba2..ff029f7 100644
|
||||
--- a/libweston/compositor.c
|
||||
+++ b/libweston/compositor.c
|
||||
@@ -1581,6 +1581,7 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
surfbox = pixman_region32_extents(&surfregion);
|
||||
|
||||
view_compute_bbox(view, surfbox, &view->transform.boundingbox);
|
||||
+ pixman_region32_fini(&surfregion);
|
||||
|
||||
if (view->alpha == 1.0 &&
|
||||
matrix->type == WESTON_MATRIX_TRANSFORM_TRANSLATE) {
|
||||
@@ -1598,19 +1599,7 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
matrix->d[12],
|
||||
matrix->d[13]);
|
||||
}
|
||||
- } else if (view->alpha == 1.0 &&
|
||||
- matrix->type < WESTON_MATRIX_TRANSFORM_ROTATE &&
|
||||
- pixman_region32_n_rects(&surfregion) == 1 &&
|
||||
- (pixman_region32_equal(&surfregion, &view->surface->opaque) ||
|
||||
- view->surface->is_opaque)) {
|
||||
- /* The whole surface is opaque and it is only translated and
|
||||
- * scaled and after applying the scissor, the result is still
|
||||
- * a single rectangle. In this case the boundingbox matches the
|
||||
- * view exactly and can be used as opaque area. */
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
}
|
||||
- pixman_region32_fini(&surfregion);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From 363deb1145453f443250078f5db7472500593d88 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
Date: Fri, 8 Sep 2023 13:34:00 +0200
|
||||
Subject: [PATCH 4/4] Revert "compositor: set transform.opaque for surfaces
|
||||
without alpha channel"
|
||||
|
||||
This reverts commit e2426960d479a84ad66ee865404a925d66d9a55b.
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
libweston/compositor.c | 46 +++++++++++++++++-------------------------
|
||||
1 file changed, 18 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/libweston/compositor.c b/libweston/compositor.c
|
||||
index ba5ed5d..8575bdd 100644
|
||||
--- a/libweston/compositor.c
|
||||
+++ b/libweston/compositor.c
|
||||
@@ -1366,20 +1366,15 @@ weston_view_update_transform_disable(struct weston_view *view)
|
||||
view->geometry.pos_offset.y);
|
||||
|
||||
if (view->alpha == 1.0) {
|
||||
- if (view->surface->is_opaque) {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
- } else {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->surface->opaque);
|
||||
- if (view->geometry.scissor_enabled)
|
||||
- pixman_region32_intersect(&view->transform.opaque,
|
||||
- &view->transform.opaque,
|
||||
- &view->geometry.scissor);
|
||||
- pixman_region32_translate(&view->transform.opaque,
|
||||
- view->geometry.pos_offset.x,
|
||||
- view->geometry.pos_offset.y);
|
||||
- }
|
||||
+ pixman_region32_copy(&view->transform.opaque,
|
||||
+ &view->surface->opaque);
|
||||
+ if (view->geometry.scissor_enabled)
|
||||
+ pixman_region32_intersect(&view->transform.opaque,
|
||||
+ &view->transform.opaque,
|
||||
+ &view->geometry.scissor);
|
||||
+ pixman_region32_translate(&view->transform.opaque,
|
||||
+ view->geometry.pos_offset.x,
|
||||
+ view->geometry.pos_offset.y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1426,20 +1421,15 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
|
||||
if (view->alpha == 1.0 &&
|
||||
matrix->type == WESTON_MATRIX_TRANSFORM_TRANSLATE) {
|
||||
- if (view->surface->is_opaque) {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
- } else {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->surface->opaque);
|
||||
- if (view->geometry.scissor_enabled)
|
||||
- pixman_region32_intersect(&view->transform.opaque,
|
||||
- &view->transform.opaque,
|
||||
- &view->geometry.scissor);
|
||||
- pixman_region32_translate(&view->transform.opaque,
|
||||
- matrix->d[12],
|
||||
- matrix->d[13]);
|
||||
- }
|
||||
+ pixman_region32_copy(&view->transform.opaque,
|
||||
+ &view->surface->opaque);
|
||||
+ if (view->geometry.scissor_enabled)
|
||||
+ pixman_region32_intersect(&view->transform.opaque,
|
||||
+ &view->transform.opaque,
|
||||
+ &view->geometry.scissor);
|
||||
+ pixman_region32_translate(&view->transform.opaque,
|
||||
+ matrix->d[12],
|
||||
+ matrix->d[13]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From: Erik Kurzinger <ekurzinger@nvidia.com>
|
||||
Date: Fri, 12 Aug 2022 08:22:26 -0700
|
||||
Subject: [PATCH] clients/simple-egl: call eglSwapInterval after eglMakeCurrent
|
||||
|
||||
If weston-simple-egl is run with the "-b" flag, it will attempt to set
|
||||
the swap interval to 0 during create_surface. However, at that point, it
|
||||
will not have made its EGLContext current yet, causing the
|
||||
eglSwapInterval call to have no effect. To fix this, wait until the
|
||||
EGLContext has been made current in init_gl before updating the swap
|
||||
interval.
|
||||
|
||||
Upstream-Status: Inappropriate [DEY specific]
|
||||
|
||||
Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
|
||||
---
|
||||
clients/simple-egl.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
|
||||
index 2c7059c0..79d296a9 100644
|
||||
--- a/clients/simple-egl.c
|
||||
+++ b/clients/simple-egl.c
|
||||
@@ -276,6 +276,9 @@ init_gl(struct window *window)
|
||||
window->egl_surface, window->display->egl.ctx);
|
||||
assert(ret == EGL_TRUE);
|
||||
|
||||
+ if (!window->frame_sync)
|
||||
+ eglSwapInterval(window->display->egl.dpy, 0);
|
||||
+
|
||||
frag = create_shader(window, frag_shader_text, GL_FRAGMENT_SHADER);
|
||||
vert = create_shader(window, vert_shader_text, GL_VERTEX_SHADER);
|
||||
|
||||
@@ -399,9 +402,6 @@ create_surface(struct window *window)
|
||||
|
||||
window->wait_for_configure = true;
|
||||
wl_surface_commit(window->surface);
|
||||
-
|
||||
- if (!window->frame_sync)
|
||||
- eglSwapInterval(display->egl.dpy, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
FILESEXTRAPATHS:prepend:stm32mpcommon := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:stm32mpcommon = " \
|
||||
file://0001-Allow-to-get-hdmi-output-with-several-outputs.patch \
|
||||
file://0002-Force-to-close-all-output.patch \
|
||||
file://0004-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \
|
||||
file://0005-clients-simple-egl-call-eglSwapInterval-after-eglMak.patch \
|
||||
file://0006-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
|
||||
file://0001-Clone-mode-not-supported.patch \
|
||||
file://0002-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \
|
||||
file://0003-Revert-compositor-improve-opacity-handling-for-scale.patch \
|
||||
file://0004-Revert-compositor-set-transform.opaque-for-surfaces-.patch \
|
||||
file://0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
|
||||
"
|
||||
|
||||
SIMPLECLIENTS="egl,touch,dmabuf-v4l,dmabuf-egl"
|
||||
|
|
@ -14,11 +14,11 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayla
|
|||
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
|
||||
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
|
||||
${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \
|
||||
image-jpeg \
|
||||
webp \
|
||||
screenshare \
|
||||
shell-desktop \
|
||||
shell-fullscreen \
|
||||
launch"
|
||||
|
||||
EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
|
||||
shell-kiosk \
|
||||
remoting \
|
||||
"
|
||||
Loading…
Reference in New Issue