From 48dfc5f5f33ca45ebb313cf821c988885656ad12 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Tue, 6 Jan 2026 16:20:47 +0100 Subject: [PATCH] wayland-protocols: use upstream repo with NXP downstream patches OE-core update wayland-utils to 1.3.0 which now requires wayland-protocols version >= 1.44. As the imx-nxp-bsp forked wayland protocols and does not provide a version later than 1.41 the build fails in do_configure of wayland-utils. Drop the wayland-protocol recipe of the downstream fork, extract the 3 relevant patches on top of upstream v1.41 and apply them in a bbappend on top of whatever OE-core provides for wayland-protocols. (6 downstream patches not relevant for the build are dropped) | ../sources/wayland-utils-1.3.0/wayland-info/meson.build:4:9: | ERROR: Dependency lookup for wayland-protocols with method 'pkgconfig' failed: | Invalid version, need 'wayland-protocols' ['>= 1.44'] found '1.41'. The `inherit allarch` from OE-core can not easily be overridden. I.e. just setting `PACKAGE_ARCH:imx-nxp-bsp = "${MACHINE_SOCARCH}"` was ignored and the packages were still allarch without the workaround. Signed-off-by: Max Krummenacher wayland-protocol: drop patches 0004-0009 --- conf/machine/include/imx-base.inc | 2 - ...table-Add-alpha-compositing-protocol.patch | 199 ++++++++++++++++++ ...unstable-Add-hdr10-metadata-protocol.patch | 135 ++++++++++++ ...port-passing-buffer-DTRC-meta-to-com.patch | 53 +++++ .../wayland/wayland-protocols_%.bbappend | 16 ++ .../wayland/wayland-protocols_1.41.imx.bb | 31 --- 6 files changed, 403 insertions(+), 33 deletions(-) create mode 100644 recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch create mode 100644 recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch create mode 100644 recipes-graphics/wayland/wayland-protocols/0003-linux-dmabuf-support-passing-buffer-DTRC-meta-to-com.patch create mode 100644 recipes-graphics/wayland/wayland-protocols_%.bbappend delete mode 100644 recipes-graphics/wayland/wayland-protocols_1.41.imx.bb diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc index 4e0b2f92..df3773d2 100644 --- a/conf/machine/include/imx-base.inc +++ b/conf/machine/include/imx-base.inc @@ -588,8 +588,6 @@ PREFERRED_VERSION_weston:mx6-nxp-bsp ??= "10.0.5.imx" PREFERRED_VERSION_weston:mx7-nxp-bsp ??= "10.0.5.imx" PREFERRED_VERSION_weston:imx-mainline-bsp = "" -PREFERRED_VERSION_wayland-protocols:imx-nxp-bsp ??= "1.41.imx" - PREFERRED_VERSION_xwayland:imx-nxp-bsp ??= "24.1.6.imx" # Use i.MX libdrm Version diff --git a/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch new file mode 100644 index 00000000..ed649e23 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch @@ -0,0 +1,199 @@ +From 50e14f75e9f42e7574a7f094d2e357124db9a588 Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Thu, 14 Jun 2018 13:54:08 +0800 +Subject: [PATCH 1/9] unstable: Add alpha-compositing protocol + +It's based on the Chromium Wayland protocol of the same name ([1]) +and Alexandros's modified version ([2])with a few changes +made to the blending_equation enumeration. + +Add one more blending_equation "src_alpha / src_alpha" + +[1] https://chromium.googlesource.com/chromium/src/+/master/third_party/wayland-protocols/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +[2] https://lists.freedesktop.org/archives/wayland-devel/2017-August/034741.html + +Upstream-Status: Pending +Signed-off-by: Haihua Hu + +Conflicts: + Makefile.am +(cherry picked from commit ac5837440d587c88e7979b034ef54893dc45633f) +(cherry picked from commit a521913cedf5d5f84a162c08768c52bfb841dc23) +--- + meson.build | 1 + + unstable/alpha-compositing/README | 6 + + .../alpha-compositing-unstable-v1.xml | 136 ++++++++++++++++++ + 3 files changed, 143 insertions(+) + create mode 100644 unstable/alpha-compositing/README + create mode 100644 unstable/alpha-compositing/alpha-compositing-unstable-v1.xml + +diff --git a/meson.build b/meson.build +index a78d698a730b..99a555d53a09 100644 +--- a/meson.build ++++ b/meson.build +@@ -42,6 +42,7 @@ unstable_protocols = { + 'xdg-output': ['v1'], + 'xdg-shell': ['v5', 'v6'], + 'xwayland-keyboard-grab': ['v1'], ++ 'alpha-compositing': ['v1'], + } + + staging_protocols = { +diff --git a/unstable/alpha-compositing/README b/unstable/alpha-compositing/README +new file mode 100644 +index 000000000000..d87415682961 +--- /dev/null ++++ b/unstable/alpha-compositing/README +@@ -0,0 +1,6 @@ ++Alpha compositing protocol ++ ++Maintainers: ++David Reveman ++Alexandros Frantzis ++Jared Hu +diff --git a/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +new file mode 100644 +index 000000000000..0844b3fd4ecf +--- /dev/null ++++ b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +@@ -0,0 +1,136 @@ ++ ++ ++ ++ ++ Copyright 2016 The Chromium Authors. ++ Copyright 2017 Collabora Ltd ++ Copyright 2018 NXP ++ ++ 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. ++ ++ ++ ++ This protocol specifies a set of interfaces used to control the alpha ++ compositing and blending of surface contents. ++ ++ Warning! The protocol described in this file is experimental and backward ++ incompatible changes may be made. Backward compatible changes may be added ++ together with the corresponding interface version bump. Backward ++ incompatible changes are done by bumping the version number in the protocol ++ and interface names and resetting the interface version. Once the protocol ++ is to be declared stable, the 'z' prefix and the version number in the ++ protocol and interface names are removed and the interface version number is ++ reset. ++ ++ ++ ++ ++ The global interface exposing compositing and blending capabilities is ++ used to instantiate an interface extension for a wl_surface object. ++ This extended interface will then allow the client to specify the ++ blending equation and alpha value used for compositing the wl_surface. ++ ++ ++ ++ ++ Informs the server that the client will not be using this ++ protocol object anymore. This does not affect any other objects, ++ blending objects included. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Instantiate an interface extension for the given wl_surface to ++ provide surface blending. If the given wl_surface already has ++ a blending object associated, the blending_exists protocol error ++ is raised. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ An additional interface to a wl_surface object, which allows the ++ client to specify the blending equation used for compositing and ++ an alpha value applied to the whole surface. ++ ++ When the blending object is created its blending equation is ++ 'none' and its alpha is 1.0, i.e., it's inactive by default. Clients ++ can activate it by setting the blending equation and alpha value. ++ ++ If the wl_surface associated with the blending object is destroyed, ++ the blending object becomes inert. ++ ++ If the blending object is destroyed, the blending state is removed ++ from the wl_surface. The change will be applied on the next ++ wl_surface.commit. ++ ++ ++ ++ ++ The associated wl_surface's blending state is removed. ++ The change is applied on the next wl_surface.commit. ++ ++ ++ ++ ++ ++ Blending equations that can be used when compositing a surface. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Set the blending equation for compositing the wl_surface. ++ ++ The blending equation state is double-buffered state, ++ and will be applied on the next wl_surface.commit. ++ ++ ++ ++ ++ ++ ++ Set the alpha value applied to the whole surface for compositing. ++ ++ The alpha value state is double-buffered state, ++ and will be applied on the next wl_surface.commit. ++ ++ ++ ++ ++ ++ +\ No newline at end of file +-- +2.42.0 + diff --git a/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch new file mode 100644 index 00000000..7711fed6 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch @@ -0,0 +1,135 @@ +From b514647ccdd4e833b2d8fbba1a39547b80657987 Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Tue, 26 Jun 2018 15:30:18 +0800 +Subject: [PATCH 2/9] unstable: Add hdr10-metadata protocol + +this protocol is used to support hdr10 video playback. +HDR10 metadata is passed to compositor via this interface + +Upstream-Status: Pending +Signed-off-by: Haihua Hu +(cherry picked from commit 87ea413b40701fbb3d333264a1de3b168276bbcf) +(cherry picked from commit 878f46b324fcefe5193d66c025c4c67bff09c253) +--- + meson.build | 1 + + unstable/hdr10-metadata/README | 4 + + .../hdr10-metadata-unstable-v1.xml | 84 +++++++++++++++++++ + 3 files changed, 89 insertions(+) + create mode 100644 unstable/hdr10-metadata/README + create mode 100644 unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml + +diff --git a/meson.build b/meson.build +index 99a555d53a09..70b594d3b89c 100644 +--- a/meson.build ++++ b/meson.build +@@ -43,6 +43,7 @@ unstable_protocols = { + 'xdg-shell': ['v5', 'v6'], + 'xwayland-keyboard-grab': ['v1'], + 'alpha-compositing': ['v1'], ++ 'hdr10-metadata': ['v1'], + } + + staging_protocols = { +diff --git a/unstable/hdr10-metadata/README b/unstable/hdr10-metadata/README +new file mode 100644 +index 000000000000..58a82f802d12 +--- /dev/null ++++ b/unstable/hdr10-metadata/README +@@ -0,0 +1,4 @@ ++hdr10 metadata protocol ++ ++Maintainers: ++Jared Hu +diff --git a/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml +new file mode 100644 +index 000000000000..5b1bac4aa29f +--- /dev/null ++++ b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml +@@ -0,0 +1,84 @@ ++ ++ ++ ++ ++ Copyright 2018 NXP ++ ++ 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. ++ ++ ++ ++ This protocol specifies a set of interfaces used to set and control ++ hdr10 metadata of video contents. ++ ++ Warning! The protocol described in this file is experimental and backward ++ incompatible changes may be made. Backward compatible changes may be added ++ together with the corresponding interface version bump. Backward ++ incompatible changes are done by bumping the version number in the protocol ++ and interface names and resetting the interface version. Once the protocol ++ is to be declared stable, the 'z' prefix and the version number in the ++ protocol and interface names are removed and the interface version number is ++ reset. ++ ++ ++ ++ ++ The global interface exposing hdr10 metadata capabilities is ++ used to instantiate an interface extension for compositor. ++ This extended interface will then allow the client to pass hdr10 metadata ++ to compositor and send to display driver if supported. ++ ++ ++ ++ ++ Informs the server that the client will not be using this ++ protocol object anymore. This does not affect any other objects. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ client can use this interface pass hdr10 metadata to server. Server need ++ use the recived metadata to enable hdr mode. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +2.42.0 + diff --git a/recipes-graphics/wayland/wayland-protocols/0003-linux-dmabuf-support-passing-buffer-DTRC-meta-to-com.patch b/recipes-graphics/wayland/wayland-protocols/0003-linux-dmabuf-support-passing-buffer-DTRC-meta-to-com.patch new file mode 100644 index 00000000..ab0838f6 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0003-linux-dmabuf-support-passing-buffer-DTRC-meta-to-com.patch @@ -0,0 +1,53 @@ +From fd0b31e5f7d1785464cc4b83371efc6222437725 Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Wed, 5 Sep 2018 13:00:47 +0800 +Subject: [PATCH 3/9] linux-dmabuf: support passing buffer DTRC meta to + compositor + +DTRC meta is untilized to pass offset to DTRC in drm dcss driver +to enable video tile compress + +Upstream-Status: Pending +Signed-off-by: Haihua Hu +(cherry picked from commit 0f71ffe59cf4c3f050ff79ea18f96345fcf0061e) +(cherry picked from commit bc76403e005be9162a09fe5bd3bdcd6b00cba7eb) +--- + .../linux-dmabuf/linux-dmabuf-unstable-v1.xml | 22 +++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml +index 6f11e925b68e..48d7ea003835 100644 +--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml ++++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml +@@ -398,6 +398,28 @@ + + + ++ ++ ++ ++ This request adds one dmabuf to the set in this ++ zwp_linux_buffer_params_v1. ++ ++ The 64-bit unsigned value combined from modifier_hi and modifier_lo ++ is the dmabuf layout modifier. DRM AddFB2 ioctl calls this the ++ fb modifier, which is defined in drm_mode.h of Linux UAPI. ++ This is an opaque token. Drivers use this token to express tiling, ++ compression, etc. driver-specific modifications to the base format ++ defined by the DRM fourcc code. ++ ++ This request raises the PLANE_IDX error if plane_idx is too large. ++ The error PLANE_SET is raised if attempting to set a plane that ++ was already set. ++ ++ ++ ++ + + + +-- +2.42.0 + diff --git a/recipes-graphics/wayland/wayland-protocols_%.bbappend b/recipes-graphics/wayland/wayland-protocols_%.bbappend new file mode 100644 index 00000000..c82b4656 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols_%.bbappend @@ -0,0 +1,16 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +NXP_PATCHES = " \ + file://0001-unstable-Add-alpha-compositing-protocol.patch \ + file://0002-unstable-Add-hdr10-metadata-protocol.patch \ + file://0003-linux-dmabuf-support-passing-buffer-DTRC-meta-to-com.patch \ +" + +SRC_URI:append:imx-nxp-bsp = " ${NXP_PATCHES}" + +# override the effect of "inherit allarch" +python allarch_package_arch_handler:prepend:imx-nxp-bsp () { + return +} + +PACKAGE_ARCH:imx-nxp-bsp = "${MACHINE_SOCARCH}" diff --git a/recipes-graphics/wayland/wayland-protocols_1.41.imx.bb b/recipes-graphics/wayland/wayland-protocols_1.41.imx.bb deleted file mode 100644 index 3350a479..00000000 --- a/recipes-graphics/wayland/wayland-protocols_1.41.imx.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Collection of additional Wayland protocols" -DESCRIPTION = "Wayland protocols that add functionality not \ -available in the Wayland core protocol. Such protocols either add \ -completely new functionality, or extend the functionality of some other \ -protocol either in Wayland core, or some other protocol in \ -wayland-protocols." -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c7b12b6702da38ca028ace54aae3d484 \ - file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" - -SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH}" -WAYLAND_PROTOCOLS_SRC ?= "git://github.com/nxp-imx/wayland-protocols-imx.git;protocol=https" -SRCBRANCH = "wayland-protocols-imx-1.41" -SRCREV = "7213a4e09837c77112bce2d241491600e00dd095" - -UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags" -UPSTREAM_CHECK_REGEX = "releases/(?P.+)" - -DEPENDS += "wayland-native" - -# NOTE: For i.MX drop allarch since the recipe is SOCARCH -#inherit meson pkgconfig allarch -inherit meson pkgconfig - -EXTRA_OEMESON += "-Dtests=false" - -BBCLASSEXTEND = "native nativesdk" - -PACKAGE_ARCH = "${MACHINE_SOCARCH}" -COMPATIBLE_MACHINE = "(mx6-nxp-bsp|mx7-nxp-bsp|mx8-nxp-bsp|mx9-nxp-bsp)"