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}
|
install -d ${D}${systemd_system_unitdir} ${D}${sbindir}
|
||||||
|
|
||||||
if [ -e ${D}/${systemd_system_unitdir}/weston.service ]; then
|
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||||
rm ${D}/${systemd_system_unitdir}/weston.service ${D}/${systemd_system_unitdir}/weston.socket
|
|
||||||
install -D -p -m0644 ${WORKDIR}/weston-launch.service ${D}${systemd_system_unitdir}/weston-launch.service
|
install -D -p -m0644 ${WORKDIR}/weston-launch.service ${D}${systemd_system_unitdir}/weston-launch.service
|
||||||
sed -i -e s:/etc:${sysconfdir}:g \
|
sed -i -e s:/etc:${sysconfdir}:g \
|
||||||
-e s:/usr/bin:${bindir}:g \
|
-e s:/usr/bin:${bindir}:g \
|
||||||
-e s:/var:${localstatedir}:g \
|
-e s:/var:${localstatedir}:g \
|
||||||
${D}${systemd_unitdir}/system/weston-launch.service
|
${D}${systemd_unitdir}/system/weston-launch.service
|
||||||
install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants/
|
install -D -p -m0644 ${WORKDIR}/weston-checkgpu.service ${D}${systemd_system_unitdir}/weston-checkgpu.service
|
||||||
#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}/
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install -d ${D}${sysconfdir}/profile.d
|
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
|
sed -i -e 's,#xwayland=true,xwayland=true,g' ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||||
fi
|
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
|
sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
|
||||||
fi
|
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
|
||||||
|
|
||||||
# /etc/default/weston
|
# /etc/default/weston
|
||||||
install -d ${D}${sysconfdir}/default
|
install -d ${D}${sysconfdir}/default
|
||||||
echo "WESTON_USER=root" > ${D}${sysconfdir}/default/weston
|
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
|
||||||
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
|
# Main
|
||||||
#
|
#
|
||||||
|
|
@ -92,9 +118,10 @@ check_devices
|
||||||
if [ "$gcnano_status" = "okay" ] && [ -n "$galcore_module" ] && [ -n "$galcore_device" ];
|
if [ "$gcnano_status" = "okay" ] && [ -n "$galcore_module" ] && [ -n "$galcore_device" ];
|
||||||
then
|
then
|
||||||
#echo "Gcnano is present and activated" > /dev/kmsg
|
#echo "Gcnano is present and activated" > /dev/kmsg
|
||||||
|
add_weston_force_renderer
|
||||||
if [ -f /etc/default/weston ] && $(grep -q "Autogenerated" /etc/default/weston) ;
|
if [ -f /etc/default/weston ] && $(grep -q "Autogenerated" /etc/default/weston) ;
|
||||||
then
|
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
|
sed -i "/#Autogenerated/d" /etc/default/weston
|
||||||
fi
|
fi
|
||||||
if [ ! -f /etc/default/weston ];
|
if [ ! -f /etc/default/weston ];
|
||||||
|
|
@ -102,6 +129,7 @@ then
|
||||||
echo "#Autogenerated" > /etc/default/weston
|
echo "#Autogenerated" > /etc/default/weston
|
||||||
echo "#OPTARGS=--use-pixman" >> /etc/default/weston
|
echo "#OPTARGS=--use-pixman" >> /etc/default/weston
|
||||||
echo "WESTON_USER=root" >> /etc/default/weston
|
echo "WESTON_USER=root" >> /etc/default/weston
|
||||||
|
add_weston_force_renderer
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ -f /etc/default/weston ] && $(grep -q "pixman" /etc/default/weston) ;
|
if [ -f /etc/default/weston ] && $(grep -q "pixman" /etc/default/weston) ;
|
||||||
|
|
@ -112,6 +140,7 @@ else
|
||||||
echo "#Autogenerated" > /etc/default/weston
|
echo "#Autogenerated" > /etc/default/weston
|
||||||
echo "OPTARGS=--use-pixman" >> /etc/default/weston
|
echo "OPTARGS=--use-pixman" >> /etc/default/weston
|
||||||
echo "WESTON_USER=root" >> /etc/default/weston
|
echo "WESTON_USER=root" >> /etc/default/weston
|
||||||
|
add_weston_force_renderer
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,16 +11,17 @@ else
|
||||||
fi
|
fi
|
||||||
cat > /tmp/pulse_temp_switch.sh <<EOF
|
cat > /tmp/pulse_temp_switch.sh <<EOF
|
||||||
#!/bin/sh
|
#!/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
|
index=0
|
||||||
for i in \$cards;
|
for i in \$cards;
|
||||||
do
|
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')
|
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"
|
echo ">\$i< \$card_info"
|
||||||
# for each card, search alsa.card_name
|
# for each card, search alsa_card
|
||||||
found=\$(echo \$card_info | grep -n STM32MP | wc -l)
|
found=\$(echo \$card_info | grep -n STM32MP | wc -l)
|
||||||
if [ \$found -eq 1 ];
|
if [ \$found -eq 1 ];
|
||||||
then
|
then
|
||||||
|
index=\$(echo \$i | sed 's/#//')
|
||||||
echo "pactl set-card-profile \$index $PROFILE"
|
echo "pactl set-card-profile \$index $PROFILE"
|
||||||
pactl set-card-profile \$index $PROFILE
|
pactl set-card-profile \$index $PROFILE
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ Environment="WESTON_USER=root"
|
||||||
Environment="WL_EGL_GBM_FENCE=0"
|
Environment="WL_EGL_GBM_FENCE=0"
|
||||||
#ExecStart=/usr/bin/weston-launch -- --modules=systemd-notify.so --log=/tmp/weston.log $OPTARGS
|
#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
|
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
|
# Optional watchdog setup
|
||||||
#TimeoutStartSec=60
|
#TimeoutStartSec=60
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ weston_args=$*
|
||||||
if [ -z "$WESTON_USER" ]; then
|
if [ -z "$WESTON_USER" ]; then
|
||||||
WESTON_USER=root
|
WESTON_USER=root
|
||||||
fi
|
fi
|
||||||
if [ "$USER" != "$WESTON_USER" ]; then
|
|
||||||
weston_args_user="-u $WESTON_USER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# for associated service: pulseaudio
|
# for associated service: pulseaudio
|
||||||
if [ ! -d "/var/run/pulse" ]; then
|
if [ ! -d "/var/run/pulse" ]; then
|
||||||
|
|
@ -37,5 +33,9 @@ if [ "$USER" == "$WESTON_USER" ]; then
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
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]
|
[core]
|
||||||
#modules=cms-colord.so
|
modules=screen-share.so
|
||||||
#xwayland=true
|
#xwayland=true
|
||||||
shell=desktop-shell.so
|
shell=desktop
|
||||||
#gbm-format=xrgb2101010
|
#gbm-format=xrgb2101010
|
||||||
backend=drm-backend.so
|
backend=drm
|
||||||
idle-time=0
|
idle-time=0
|
||||||
repaint-window=100
|
repaint-window=100
|
||||||
require-input=false
|
require-input=false
|
||||||
|
remoting=remoting-plugin.so
|
||||||
|
|
||||||
[keyboard]
|
[keyboard]
|
||||||
keymap_layout=us
|
keymap_layout=us
|
||||||
|
|
@ -34,12 +35,17 @@ app-ids=1000
|
||||||
name=DPI-1
|
name=DPI-1
|
||||||
mode=preferred
|
mode=preferred
|
||||||
|
|
||||||
|
# LVDS connector
|
||||||
|
[output]
|
||||||
|
name=LVDS-1
|
||||||
|
mode=preferred
|
||||||
|
|
||||||
[libinput]
|
[libinput]
|
||||||
touchscreen_calibrator=true
|
touchscreen_calibrator=true
|
||||||
calibration_helper=/bin/echo
|
calibration_helper=/bin/echo
|
||||||
|
|
||||||
[screen-share]
|
[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
|
#start-on-startup=false
|
||||||
|
|
||||||
#[xwayland]
|
#[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 ECORE_EVAS_ENGINE=wayland_shm
|
export ECORE_EVAS_ENGINE=wayland_shm
|
||||||
export GDK_BACKEND=wayland
|
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
|
if [ -e $XDG_RUNTIME_DIR/wayland-0 ]; then
|
||||||
export WAYLAND_DISPLAY=wayland-0
|
export WAYLAND_DISPLAY=wayland-0
|
||||||
else
|
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>
|
From: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||||
Date: Thu, 25 Aug 2022 09:34:23 +0200
|
Date: Fri, 24 Mar 2023 11:58:06 +0100
|
||||||
Subject: [PATCH 4/4] Disable request to EGL_DRM_RENDER_NODE_FILE_EXT
|
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
|
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.
|
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>
|
Signed-off-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||||
---
|
---
|
||||||
libweston/renderer-gl/egl-glue.c | 6 +++---
|
libweston/renderer-gl/egl-glue.c | 6 +++---
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/libweston/renderer-gl/egl-glue.c b/libweston/renderer-gl/egl-glue.c
|
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
|
--- a/libweston/renderer-gl/egl-glue.c
|
||||||
+++ b/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)
|
@@ -481,9 +481,9 @@ gl_renderer_set_egl_device(struct gl_renderer *gr)
|
||||||
gl_renderer_log_extensions("EGL device extensions", extensions);
|
gl_renderer_log_extensions(gr, "EGL device extensions", extensions);
|
||||||
|
|
||||||
/* Try to query the render node using EGL_DRM_RENDER_NODE_FILE_EXT */
|
/* 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"))
|
- 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 extension is not supported by the Mesa version of the system or
|
||||||
* the query failed. Fallback to EGL_DRM_DEVICE_FILE_EXT */
|
* 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}:"
|
FILESEXTRAPATHS:prepend:stm32mpcommon := "${THISDIR}/${PN}:"
|
||||||
|
|
||||||
SRC_URI:append:stm32mpcommon = " \
|
SRC_URI:append:stm32mpcommon = " \
|
||||||
file://0001-Allow-to-get-hdmi-output-with-several-outputs.patch \
|
file://0001-Clone-mode-not-supported.patch \
|
||||||
file://0002-Force-to-close-all-output.patch \
|
file://0002-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \
|
||||||
file://0004-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \
|
file://0003-Revert-compositor-improve-opacity-handling-for-scale.patch \
|
||||||
file://0005-clients-simple-egl-call-eglSwapInterval-after-eglMak.patch \
|
file://0004-Revert-compositor-set-transform.opaque-for-surfaces-.patch \
|
||||||
file://0006-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
|
file://0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SIMPLECLIENTS="egl,touch,dmabuf-v4l,dmabuf-egl"
|
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.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
|
||||||
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
|
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
|
||||||
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
|
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
|
||||||
${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \
|
|
||||||
image-jpeg \
|
image-jpeg \
|
||||||
|
webp \
|
||||||
screenshare \
|
screenshare \
|
||||||
shell-desktop \
|
shell-desktop \
|
||||||
shell-fullscreen \
|
shell-fullscreen \
|
||||||
launch"
|
shell-kiosk \
|
||||||
|
remoting \
|
||||||
EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
|
"
|
||||||
Loading…
Reference in New Issue