summaryrefslogtreecommitdiffstats
path: root/recipes-graphics
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics')
-rw-r--r--recipes-graphics/drm/libdrm_2.4.123.imx.bb (renamed from recipes-graphics/drm/libdrm_2.4.116.imx.bb)6
-rw-r--r--recipes-graphics/imx-g2d/imx-dpu-g2d_2.4.0.0.bb (renamed from recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.14.bb)22
-rw-r--r--recipes-graphics/imx-g2d/imx-g2d-samples_git.bb11
-rw-r--r--recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p3.2.bb (renamed from recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.6.bb)14
-rw-r--r--recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb18
-rw-r--r--recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb22
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc34
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv/imx_icd.json7
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch32.bb10
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch64.bb10
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch32.bb9
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch64.bb9
-rw-r--r--recipes-graphics/libsdl2/libsdl2_%.bbappend3
-rw-r--r--recipes-graphics/mali/mali-imx.inc109
-rw-r--r--recipes-graphics/mali/mali-imx_r54.0.bb25
-rw-r--r--recipes-graphics/mesa/mesa-demos/0001-YOCIMX-8300-Fix-mesa-demos-build-break-on-GCC-14.patch59
-rw-r--r--recipes-graphics/mesa/mesa-demos/0001-egl-clear-backgrounds-black.patch11
-rw-r--r--recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch43
-rw-r--r--recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch12
-rw-r--r--recipes-graphics/mesa/mesa-demos_%.bbappend4
-rw-r--r--recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb2
-rw-r--r--recipes-graphics/mesa/mesa.bbappend6
-rw-r--r--recipes-graphics/mesa/mesa/0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch47
-rw-r--r--recipes-graphics/mesa/mesa/0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch33
-rw-r--r--recipes-graphics/piglit/piglit/0001-tests-Fix-cl-test-Include-Directories-error-Error-0-.patch30
-rw-r--r--recipes-graphics/piglit/piglit/0002-cl-Add-mutually-exclusive-memory-flags-for-CL_MEM_KE.patch42
-rw-r--r--recipes-graphics/piglit/piglit_%.bbappend23
-rw-r--r--recipes-graphics/vulkan/vulkan-loader-1.3.275.0.imx/0001-LF-11869-change-mali-wsi-layer-activating-order.patch52
-rw-r--r--recipes-graphics/vulkan/vulkan-loader-1.4.328.1/0001-LF-11869-change-mali-wsi-layer-activating-order.patch49
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_%.bbappend10
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_1.3.261.1.imx.bbappend9
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_1.3.275.0.imx.bbappend1
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_1.4.328.1.bbappend1
-rw-r--r--recipes-graphics/vulkan/vulkan-wsi-layer/0001-MGS-6801-ccc-vkmark-on-wayland.patch30
-rw-r--r--recipes-graphics/vulkan/vulkan-wsi-layer/0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch243
-rw-r--r--recipes-graphics/vulkan/vulkan-wsi-layer/0003-Update-minimum-version-of-CMake.patch32
-rw-r--r--recipes-graphics/vulkan/vulkan-wsi-layer_git.bb54
-rw-r--r--recipes-graphics/wayland/wayland-protocols_1.41.imx.bb (renamed from recipes-graphics/wayland/wayland-protocols_1.32.imx.bb)12
-rw-r--r--recipes-graphics/wayland/weston_10.0.5.imx.bb9
-rw-r--r--recipes-graphics/wayland/weston_14.0.2.imx.bb (renamed from recipes-graphics/wayland/weston_12.0.4.imx.bb)43
-rw-r--r--recipes-graphics/xwayland/xwayland_24.1.6.imx.bb (renamed from recipes-graphics/xwayland/xwayland_23.1.1.imx.bb)23
-rw-r--r--recipes-graphics/xwayland/xwayland_24.1.6.imx.bbappend (renamed from recipes-graphics/xwayland/xwayland_23.1.1.imx.bbappend)6
42 files changed, 917 insertions, 278 deletions
diff --git a/recipes-graphics/drm/libdrm_2.4.116.imx.bb b/recipes-graphics/drm/libdrm_2.4.123.imx.bb
index ff23f35f3..e4208cff3 100644
--- a/recipes-graphics/drm/libdrm_2.4.116.imx.bb
+++ b/recipes-graphics/drm/libdrm_2.4.123.imx.bb
@@ -13,10 +13,8 @@ DEPENDS = "libpthread-stubs"
13 13
14SRC_URI = "${IMX_LIBDRM_SRC};branch=${SRCBRANCH}" 14SRC_URI = "${IMX_LIBDRM_SRC};branch=${SRCBRANCH}"
15IMX_LIBDRM_SRC ?= "git://github.com/nxp-imx/libdrm-imx.git;protocol=https" 15IMX_LIBDRM_SRC ?= "git://github.com/nxp-imx/libdrm-imx.git;protocol=https"
16SRCBRANCH = "libdrm-imx-2.4.116" 16SRCBRANCH = "libdrm-imx-2.4.123"
17SRCREV = "2f1797674f94572ae8c365c8cbffb0263337ed57" 17SRCREV = "c7c4953161a0f8f2cc7bee70284bf3263c9cfcf5"
18
19S = "${WORKDIR}/git"
20 18
21DEFAULT_PREFERENCE = "-1" 19DEFAULT_PREFERENCE = "-1"
22COMPATIBLE_MACHINE = "(imx-nxp-bsp)" 20COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
diff --git a/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.14.bb b/recipes-graphics/imx-g2d/imx-dpu-g2d_2.4.0.0.bb
index 23168ae16..4e3444b9d 100644
--- a/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.14.bb
+++ b/recipes-graphics/imx-g2d/imx-dpu-g2d_2.4.0.0.bb
@@ -1,31 +1,29 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2024 NXP 2# Copyright 2017-2025 NXP
3# Released under the MIT license (see COPYING.MIT for the terms) 3# Released under the MIT license (see COPYING.MIT for the terms)
4 4
5DESCRIPTION = "G2D library using i.MX DPU" 5DESCRIPTION = "G2D library using i.MX DPU"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a" 7LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
8 8
9DEPENDS = "libdrm ${LIBGAL_IMX}" 9DEPENDS = "libdrm ${LIBGAL_IMX}"
10LIBGAL_IMX = "libgal-imx" 10LIBGAL_IMX = ""
11LIBGAL_IMX:mx95-nxp-bsp = "" 11LIBGAL_IMX:imxviv = "libgal-imx"
12 12
13PROVIDES += "virtual/libg2d" 13PROVIDES += "virtual/libg2d"
14 14
15SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;fsl-eula=true;name=${IMX_SRC_URI_NAME}" 15SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;fsl-eula=true;name=${IMX_SRC_URI_NAME}"
16IMX_BIN_NAME = "${BPN}-${IMX_SRC_URI_NAME}-${PV}-${IMX_SRCREV_ABBREV}" 16IMX_BIN_NAME = "${BPN}-${IMX_SRC_URI_NAME}-${PV}-${IMX_SRCREV_ABBREV}"
17 17
18IMX_SRCREV_ABBREV = "6a00326" 18IMX_SRCREV_ABBREV = "9e8bbf1"
19IMX_SRC_URI_NAME = "v1" 19IMX_SRC_URI_NAME = "v1"
20SRC_URI[v1.md5sum] = "470ad0bdef7dec171395991d47b39e2c" 20SRC_URI[v1.sha256sum] = "67be9b56a5d2196613460d3cc3a734d7a088e2177377e27f83287766d5d8cf70"
21SRC_URI[v1.sha256sum] = "4d8e4b536bd24eedfbce375a06c19ab74603291b8b5a5be36b03fbf6e016e940"
22 21
23IMX_SRCREV_ABBREV:mx95-nxp-bsp = "6a00326" 22IMX_SRCREV_ABBREV:imxmali = "9e8bbf1"
24IMX_SRC_URI_NAME:mx95-nxp-bsp = "v2" 23IMX_SRC_URI_NAME:imxmali = "v2"
25SRC_URI[v2.md5sum] = "cf807c38a110763c19a12d6d595b4b09" 24SRC_URI[v2.sha256sum] = "f56dae607f89e0f414625657d8345c5d1b68b79d3ac61e50016fbe4d49a91402"
26SRC_URI[v2.sha256sum] = "1b86d4fecd5026e871da0de8ed6382c962460468d8151ae2f95b72d00bca17ee"
27 25
28S = "${WORKDIR}/${IMX_BIN_NAME}" 26S = "${UNPACKDIR}/${IMX_BIN_NAME}"
29 27
30inherit fsl-eula-unpack 28inherit fsl-eula-unpack
31 29
diff --git a/recipes-graphics/imx-g2d/imx-g2d-samples_git.bb b/recipes-graphics/imx-g2d/imx-g2d-samples_git.bb
index 0f0c18967..98e976100 100644
--- a/recipes-graphics/imx-g2d/imx-g2d-samples_git.bb
+++ b/recipes-graphics/imx-g2d/imx-g2d-samples_git.bb
@@ -5,14 +5,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0858ec9c7a80c4a2cf16e4f825a2cc91"
5 5
6DEPENDS = "cairo" 6DEPENDS = "cairo"
7 7
8PV = "2.1+git${SRCPV}" 8PV = "2.4+git"
9 9
10SRC_URI = "${GPU_G2D_SAMPLES_SRC};branch=${SRCBRANCH}" 10SRC_URI = "${GPU_G2D_SAMPLES_SRC};branch=${SRCBRANCH}"
11GPU_G2D_SAMPLES_SRC ?= "git://github.com/nxp-imx/g2d-samples.git;protocol=https" 11GPU_G2D_SAMPLES_SRC ?= "git://github.com/nxp-imx/g2d-samples.git;protocol=https"
12SRCBRANCH = "imx_2.1" 12SRCBRANCH = "imx_2.4"
13SRCREV = "431f311a41ca052902ea0d6445e74defe0a4df2d" 13SRCREV = "7d12c50c07d73650b4c97906ce917aff429238f8"
14
15S = "${WORKDIR}/git"
16 14
17inherit pkgconfig 15inherit pkgconfig
18 16
@@ -23,6 +21,7 @@ PACKAGECONFIG_IMPLEMENTATION:mx95-nxp-bsp = "dpu95"
23PACKAGECONFIG_IMPLEMENTATION:imxgpu2d = "gpu-drm" 21PACKAGECONFIG_IMPLEMENTATION:imxgpu2d = "gpu-drm"
24PACKAGECONFIG_IMPLEMENTATION:imxgpu2d:imxfbdev = "gpu-fbdev" 22PACKAGECONFIG_IMPLEMENTATION:imxgpu2d:imxfbdev = "gpu-fbdev"
25PACKAGECONFIG_IMPLEMENTATION:mx93-nxp-bsp = "pxp" 23PACKAGECONFIG_IMPLEMENTATION:mx93-nxp-bsp = "pxp"
24PACKAGECONFIG_IMPLEMENTATION:mx943-nxp-bsp = "pxp"
26 25
27PACKAGECONFIG[dpu] = " \ 26PACKAGECONFIG[dpu] = " \
28 BUILD_IMPLEMENTATION=dpu, \ 27 BUILD_IMPLEMENTATION=dpu, \
@@ -73,4 +72,4 @@ FILES:${PN} += "/opt"
73 72
74PACKAGE_ARCH = "${MACHINE_SOCARCH}" 73PACKAGE_ARCH = "${MACHINE_SOCARCH}"
75 74
76COMPATIBLE_MACHINE = "(imxgpu2d|mx93-nxp-bsp|mx95-nxp-bsp)" 75COMPATIBLE_MACHINE = "(imxgpu2d|mx93-nxp-bsp|mx943-nxp-bsp|mx95-nxp-bsp)"
diff --git a/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.6.bb b/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p3.2.bb
index d12d9c1a8..d1f23d910 100644
--- a/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.6.bb
+++ b/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p3.2.bb
@@ -1,23 +1,21 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2024 NXP 2# Copyright 2017-2022 NXP
3# Copyright 2018 (C) O.S. Systems Software LTDA. 3# Copyright 2018 (C) O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
6DESCRIPTION = "G2D library using i.MX GPU" 6DESCRIPTION = "G2D library using i.MX GPU"
7LICENSE = "Proprietary" 7LICENSE = "Proprietary"
8LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a" 8LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
9DEPENDS = "libgal-imx" 9DEPENDS = "libgal-imx"
10PROVIDES = "virtual/libg2d" 10PROVIDES = "virtual/libg2d"
11 11
12SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" 12SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true"
13IMX_BIN_NAME = "${BP}-${TARGET_ARCH}-${IMX_SRCREV_ABBREV}" 13IMX_BIN_NAME = "${BP}-${TARGET_ARCH}-${IMX_SRCREV_ABBREV}"
14IMX_SRCREV_ABBREV = "bc7b6a2" 14IMX_SRCREV_ABBREV = "3c5e429"
15SRC_URI[aarch64.md5sum] = "4b12d0434d612b57ff4d7df690c3154f" 15SRC_URI[aarch64.sha256sum] = "190bc9203e60e5de508e1dcf057b36d2c9bc3667c6972fd12f7df797e508a22d"
16SRC_URI[aarch64.sha256sum] = "b2e4c580bf887042f479fde7c8b07c6215794d8123263d10ff0c167af7ba5918" 16SRC_URI[arm.sha256sum] = "aaf9a38fe446af579b16a836bf297f8cb1b2842ca3a784bedc21e32d37271ab4"
17SRC_URI[arm.md5sum] = "4bead15838f47793f59cb374c10c2dd2"
18SRC_URI[arm.sha256sum] = "413610ce4730eb9adbde30c8ad4a72df3edd69d84e1154a0c29efa7f33a30663"
19 17
20S = "${WORKDIR}/${IMX_BIN_NAME}" 18S = "${UNPACKDIR}/${IMX_BIN_NAME}"
21 19
22inherit fsl-eula-unpack 20inherit fsl-eula-unpack
23 21
diff --git a/recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb b/recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb
index 4481188b1..8165c0c62 100644
--- a/recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb
+++ b/recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb
@@ -1,29 +1,29 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2023 NXP 2# Copyright 2017-2025 NXP
3# Released under the MIT license (see COPYING.MIT for the terms) 3# Released under the MIT license (see COPYING.MIT for the terms)
4 4
5DESCRIPTION = "G2D library using i.MX PXP" 5DESCRIPTION = "G2D library using i.MX PXP"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=10c0fda810c63b052409b15a5445671a" 7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a93b654673e1bc8398ed1f30e0813359"
8 8
9PROVIDES += "virtual/libg2d" 9PROVIDES += "virtual/libg2d"
10 10
11PV = "2.1.0+git${SRCPV}" 11PV = "2.4+git"
12 12
13SRC_URI = "${IMX_PXP_G2D_SRC};branch=${SRCBRANCH}" 13SRC_URI = "${IMX_PXP_G2D_SRC};branch=${SRCBRANCH}"
14IMX_PXP_G2D_SRC ?= "git://github.com/nxp-imx/imx-g2d-pxp.git;protocol=https" 14IMX_PXP_G2D_SRC ?= "git://github.com/nxp-imx/imx-g2d-pxp.git;protocol=https"
15SRCBRANCH = "imx_2.1" 15SRCBRANCH = "imx_2.4"
16SRCREV = "edd234c4e1c58cd2453963d19155d4d5d3800d07" 16SRCREV = "c3368ea82e4507d7b35aee258c28d04f9f8fb8e9"
17
18S = "${WORKDIR}/git"
19 17
20inherit use-imx-headers 18inherit use-imx-headers
21 19
22EXTRA_OEMAKE = "PLATFORM=IMX93 INCLUDE='-I${STAGING_INCDIR_IMX}' DEST_DIR=${D}" 20EXTRA_OEMAKE = "PLATFORM=${IMX_PLATFORM} INCLUDE='-I${STAGING_INCDIR_IMX}' DEST_DIR=${D}"
21IMX_PLATFORM:mx93-nxp-bsp = "IMX93"
22IMX_PLATFORM:mx943-nxp-bsp = "IMX943"
23 23
24do_install() { 24do_install() {
25 oe_runmake install 25 oe_runmake install
26} 26}
27 27
28PACKAGE_ARCH = "${MACHINE_SOCARCH}" 28PACKAGE_ARCH = "${MACHINE_SOCARCH}"
29COMPATIBLE_MACHINE = "(mx93-nxp-bsp)" 29COMPATIBLE_MACHINE = "(mx93-nxp-bsp|mx943-nxp-bsp)"
diff --git a/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb
index 7d97f4755..5dea367a9 100644
--- a/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb
+++ b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb
@@ -9,28 +9,20 @@ SRC_URI = "git://github.com/nxp-imx/apitrace-imx.git;protocol=https;branch=imx_1
9" 9"
10SRCREV = "522cb2981289b7ba20d6dd4b4bf75097e079815b" 10SRCREV = "522cb2981289b7ba20d6dd4b4bf75097e079815b"
11 11
12S = "${WORKDIR}/git"
13
14inherit cmake pkgconfig perlnative python3native 12inherit cmake pkgconfig perlnative python3native
15 13
16PACKAGECONFIG_BACKEND:mx6-nxp-bsp = " \
17 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'waffle', \
18 bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
19 '', d), d)} \
20"
21PACKAGECONFIG_BACKEND:mx7-nxp-bsp = "${PACKAGECONFIG_BACKEND:mx6-nxp-bsp}"
22PACKAGECONFIG_BACKEND:mx8-nxp-bsp = "waffle"
23PACKAGECONFIG_BACKEND:mx95-nxp-bsp = "waffle"
24
25PACKAGECONFIG_GPU2D = ""
26PACKAGECONFIG_GPU2D:imxgpu2d = "vivante"
27PACKAGECONFIG_GPU2D:mx95-nxp-bsp = ""
28
29PACKAGECONFIG ??= " \ 14PACKAGECONFIG ??= " \
30 egl \ 15 egl \
31 ${PACKAGECONFIG_BACKEND} \ 16 ${PACKAGECONFIG_BACKEND} \
32 ${PACKAGECONFIG_GPU2D} \ 17 ${PACKAGECONFIG_GPU2D} \
33" 18"
19PACKAGECONFIG_BACKEND = " \
20 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'waffle', \
21 bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
22 '', d), d)} \
23"
24PACKAGECONFIG_GPU2D = ""
25PACKAGECONFIG_GPU2D:imxviv:imxgpu2d = "vivante"
34 26
35PACKAGECONFIG[egl] = "-DENABLE_EGL=ON,-DENABLE_EGL=OFF,virtual/egl" 27PACKAGECONFIG[egl] = "-DENABLE_EGL=ON,-DENABLE_EGL=OFF,virtual/egl"
36PACKAGECONFIG[gui] = "-DENABLE_GUI=ON,-DENABLE_GUI=OFF" 28PACKAGECONFIG[gui] = "-DENABLE_GUI=ON,-DENABLE_GUI=OFF"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
index 2d02d7abb..fce1e53ec 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -31,12 +31,12 @@ PROVIDES += " \
31" 31"
32EXTRA_PROVIDES = " \ 32EXTRA_PROVIDES = " \
33 ${PROVIDES_OPENCL} \ 33 ${PROVIDES_OPENCL} \
34 ${PROVIDES_OPENGLES3} \
35 ${PROVIDES_OPENVX} \ 34 ${PROVIDES_OPENVX} \
36" 35"
37EXTRA_PROVIDES:append:imxgpu3d = " \ 36EXTRA_PROVIDES:append:imxgpu3d = " \
38 virtual/libgles1 \ 37 virtual/libgles1 \
39 virtual/libgles2 \ 38 virtual/libgles2 \
39 virtual/libgles3 \
40" 40"
41EXTRA_PROVIDES:append:mx8-nxp-bsp = " \ 41EXTRA_PROVIDES:append:mx8-nxp-bsp = " \
42 virtual/libgbm \ 42 virtual/libgbm \
@@ -46,14 +46,11 @@ PROVIDES_OPENCL = " \
46 opencl-headers \ 46 opencl-headers \
47 opencl-clhpp \ 47 opencl-clhpp \
48 opencl-icd-loader \ 48 opencl-icd-loader \
49 virtual/opencl-icd \ 49 virtual/libopencl1 \
50" 50"
51PROVIDES_OPENCL:mx7-nxp-bsp = "" 51PROVIDES_OPENCL:mx7-nxp-bsp = ""
52PROVIDES_OPENCL:mx8mm-nxp-bsp = "" 52PROVIDES_OPENCL:mx8mm-nxp-bsp = ""
53 53
54PROVIDES_OPENGLES3 = ""
55PROVIDES_OPENGLES3:mx8-nxp-bsp = "virtual/libgles3"
56
57# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus. 54# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus.
58# However, only limited support is provided on other i.MX 8 machines 55# However, only limited support is provided on other i.MX 8 machines
59# as needed for i.MX machine learning packages. 56# as needed for i.MX machine learning packages.
@@ -63,15 +60,20 @@ PROVIDES_OPENVX:mx8mm-nxp-bsp = ""
63 60
64RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv" 61RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv"
65 62
63RPROVIDES_OPENCL = "opencl-icd-loader-dev"
64RPROVIDES_OPENCL:mx7-nxp-bsp = ""
65RPROVIDES_OPENCL:mx8mm-nxp-bsp = ""
66
67RPROVIDES:${PN}:append:imx-nxp-bsp = " ${RPROVIDES_OPENCL}"
68
66PE = "1" 69PE = "1"
67 70
68inherit fsl-eula-unpack 71inherit fsl-eula-unpack
69 72
70FILESEXTRAPATHS:append := "${THISDIR}/imx-gpu-viv:" 73FILESEXTRAPATHS:append := "${THISDIR}/imx-gpu-viv:"
71SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \ 74SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
72 file://imx_icd.json"
73 75
74S = "${WORKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}" 76S = "${UNPACKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}"
75 77
76PACKAGECONFIG ?= "" 78PACKAGECONFIG ?= ""
77 79
@@ -181,8 +183,6 @@ IMX_SOC:mx8mq-nxp-bsp = "mx8mq"
181IMX_SOC:mx8mn-nxp-bsp = "mx8mn" 183IMX_SOC:mx8mn-nxp-bsp = "mx8mn"
182IMX_SOC:mx8ulp-nxp-bsp = "mx8ulp" 184IMX_SOC:mx8ulp-nxp-bsp = "mx8ulp"
183 185
184LIBVULKAN_API_VERSION = "1.3.239"
185
186do_install () { 186do_install () {
187 install -d ${D}${libdir} 187 install -d ${D}${libdir}
188 install -d ${D}${includedir} 188 install -d ${D}${includedir}
@@ -250,8 +250,7 @@ do_install () {
250 rm -rf ${D}/opt/viv_samples/cl11 250 rm -rf ${D}/opt/viv_samples/cl11
251 else 251 else
252 # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader) 252 # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader)
253 install -d ${D}${sysconfdir}/OpenCL/vendors/ 253 install -Dm 0644 ${S}/gpu-core/etc/OpenCL/vendors/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
254 install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
255 254
256 if [ "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}" = "" ]; then 255 if [ "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}" = "" ]; then
257 rm -f ${D}${includedir}/CL/cl_viv_vx_ext.h 256 rm -f ${D}${includedir}/CL/cl_viv_vx_ext.h
@@ -274,9 +273,8 @@ do_install () {
274 rm -rf ${D}$f 273 rm -rf ${D}$f
275 done 274 done
276 else 275 else
277 install -Dm 0644 ${UNPACKDIR}/imx_icd.json ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json 276 install -Dm 0644 ${S}/gpu-core/etc/vulkan/icd.d/imx_icd.json ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
278 sed -i "s,%libdir%,${libdir}," ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json 277 sed -i "s,/usr/lib,${libdir}," ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
279 sed -i "s,%api_version%,${LIBVULKAN_API_VERSION}," ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
280 fi 278 fi
281 fi 279 fi
282 280
@@ -332,7 +330,6 @@ FILES:libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/
332INSANE_SKIP:libegl-imx += "dev-so" 330INSANE_SKIP:libegl-imx += "dev-so"
333 331
334FILES:libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" 332FILES:libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
335FILES:libgal-imx-dev = "${includedir}/HAL"
336RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}" 333RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}"
337RPROVIDES:libgal-imx += "libgal-imx" 334RPROVIDES:libgal-imx += "libgal-imx"
338RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv" 335RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv"
@@ -349,6 +346,7 @@ FILES:libvulkan-imx = "\
349 ${libdir}/libvulkan_VSI${REALSOLIBS} \ 346 ${libdir}/libvulkan_VSI${REALSOLIBS} \
350 ${sysconfdir}/vulkan" 347 ${sysconfdir}/vulkan"
351FILES:libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}" 348FILES:libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
349RPROVIDES:libvulkan-imx = "virtual-vulkan-icd"
352 350
353FILES:libspirv-imx = " \ 351FILES:libspirv-imx = " \
354 ${libdir}/libSPIRV_viv${SOLIBS} \ 352 ${libdir}/libSPIRV_viv${SOLIBS} \
@@ -362,7 +360,7 @@ FILES:libopenvx-imx = " \
362 ${libdir}/libArchModelSw${SOLIBS} \ 360 ${libdir}/libArchModelSw${SOLIBS} \
363" 361"
364FILES:libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}" 362FILES:libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}"
365RDEPENDS:libopenvx-imx = "libnn-imx ${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}" 363RDEPENDS:libopenvx-imx = "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}"
366OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES = "" 364OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES = ""
367OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8qm-nxp-bsp = "libclc-imx libopencl-imx-dev" 365OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8qm-nxp-bsp = "libclc-imx libopencl-imx-dev"
368OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8mp-nxp-bsp = "libclc-imx libopencl-imx-dev" 366OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8mp-nxp-bsp = "libclc-imx libopencl-imx-dev"
@@ -393,7 +391,7 @@ FILES:libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \
393 ${libdir}/libLLVM_viv${SOLIBS} \ 391 ${libdir}/libLLVM_viv${SOLIBS} \
394 ${sysconfdir}/OpenCL/vendors/Vivante.icd" 392 ${sysconfdir}/OpenCL/vendors/Vivante.icd"
395FILES:libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" 393FILES:libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
396RDEPENDS:libopencl-imx= "libclc-imx" 394RDEPENDS:libopencl-imx = "libclc-imx"
397 395
398FILES:libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS} ${libdir}/libOpenVG*${SOLIBS}" 396FILES:libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS} ${libdir}/libOpenVG*${SOLIBS}"
399FILES:libopenvg-imx-dev = "${includedir}/VG ${libdir}/pkgconfig/vg.pc" 397FILES:libopenvg-imx-dev = "${includedir}/VG ${libdir}/pkgconfig/vg.pc"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv/imx_icd.json b/recipes-graphics/imx-gpu-viv/imx-gpu-viv/imx_icd.json
deleted file mode 100644
index 21d83f945..000000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv/imx_icd.json
+++ /dev/null
@@ -1,7 +0,0 @@
1{
2 "file_format_version": "1.0.0",
3 "ICD": {
4 "library_path": "%libdir%/libvulkan_VSI.so.1",
5 "api_version": "%api_version%"
6 }
7}
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch32.bb
deleted file mode 100644
index db99b1c71..000000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch32.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a"
4
5IMX_SRCREV_ABBREV = "bc7b6a2"
6
7SRC_URI[md5sum] = "d921b6daf89eba252b0b5b59abe0d690"
8SRC_URI[sha256sum] = "cf6e42c9c9a903cd933b767d411131390d237a4b92ecad579db57d54538707f3"
9
10COMPATIBLE_MACHINE = "(mx6q-nxp-bsp|mx6dl-nxp-bsp|mx6sx-nxp-bsp|mx6sl-nxp-bsp|mx7ulp-nxp-bsp)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch64.bb
deleted file mode 100644
index fb73322ae..000000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.6-aarch64.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a"
4
5IMX_SRCREV_ABBREV = "bc7b6a2"
6
7SRC_URI[md5sum] = "e6ac75617944d9a9dbba90f863f07e0f"
8SRC_URI[sha256sum] = "5fe828113b9b2801b3fd60cd15eadfd0ac747e5897ef7db7fa22f80e7dd8a8e1"
9
10COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch32.bb
new file mode 100644
index 000000000..f0e7d285d
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch32.bb
@@ -0,0 +1,9 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
4
5IMX_SRCREV_ABBREV = "3c5e429"
6
7SRC_URI[sha256sum] = "ea7ffb01fd7cd88f2a308e5b12b40cc3c9553b8ff2941c4867943b4fee265d27"
8
9COMPATIBLE_MACHINE = "(mx6q-nxp-bsp|mx6dl-nxp-bsp|mx6sx-nxp-bsp|mx6sl-nxp-bsp|mx7ulp-nxp-bsp)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch64.bb
new file mode 100644
index 000000000..38870add7
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch64.bb
@@ -0,0 +1,9 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
4
5IMX_SRCREV_ABBREV = "3c5e429"
6
7SRC_URI[sha256sum] = "bf6fe102e8aa7a16373392efcf6ac45d705bbb95f5c39501da8aaa30957c554f"
8
9COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
diff --git a/recipes-graphics/libsdl2/libsdl2_%.bbappend b/recipes-graphics/libsdl2/libsdl2_%.bbappend
index 3b2655ce7..e8c7ac161 100644
--- a/recipes-graphics/libsdl2/libsdl2_%.bbappend
+++ b/recipes-graphics/libsdl2/libsdl2_%.bbappend
@@ -1,3 +1,6 @@
1PACKAGECONFIG:append:imx-nxp-bsp = " ${PACKAGECONFIG_LIBDECOR}"
2PACKAGECONFIG_LIBDECOR ??= "libdecor"
3
1# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as 4# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as
2# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ... 5# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ...
3EXTRA_OECMAKE:append:imxgpu = " -DSDL_VIVANTE=OFF" 6EXTRA_OECMAKE:append:imxgpu = " -DSDL_VIVANTE=OFF"
diff --git a/recipes-graphics/mali/mali-imx.inc b/recipes-graphics/mali/mali-imx.inc
new file mode 100644
index 000000000..87f73440f
--- /dev/null
+++ b/recipes-graphics/mali/mali-imx.inc
@@ -0,0 +1,109 @@
1SUMMARY = "Graphics libraries and driver for i.MX Mali GPU"
2SECTION = "libs"
3DEPENDS = " \
4 libdrm \
5 vulkan-loader \
6 wayland \
7 wayland-protocols"
8PROVIDES = " \
9 virtual/egl \
10 virtual/libgbm \
11 virtual/libgles1 \
12 virtual/libgles2 \
13 virtual/libgles3"
14
15# The packaged binaries have been stripped of debug info, so disable
16# operations accordingly.
17INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
18INHIBIT_PACKAGE_STRIP = "1"
19INHIBIT_SYSROOT_STRIP = "1"
20
21PACKAGES =+ " \
22 ${PN}-libegl ${PN}-libegl-dev \
23 ${PN}-libgbm ${PN}-libgbm-dev \
24 ${PN}-libgles1 ${PN}-libgles1-dev \
25 ${PN}-libgles2 ${PN}-libgles2-dev \
26 ${PN}-libgles3 ${PN}-libgles3-dev \
27 ${PN}-libvulkan \
28 ${PN}-opencl-icd ${PN}-opencl-icd-dev"
29
30# Since libmali.so is loaded by dlopen, include it in the main package
31FILES:${PN} += " \
32 ${libdir}/libmali.so \
33 ${nonarch_base_libdir}/firmware"
34FILES_SOLIBSDEV = ""
35INSANE_SKIP:${PN} = "dev-so"
36FILES:${PN}-libegl = " \
37 ${libdir}/libEGL${SOLIBS}"
38FILES:${PN}-libgbm = " \
39 ${libdir}/libgbm${SOLIBS}"
40FILES:${PN}-libgles1 = " \
41 ${libdir}/libGLESv1_CM${SOLIBS}"
42FILES:${PN}-libgles2 = " \
43 ${libdir}/libGLESv2${SOLIBS}"
44FILES:${PN}-opencl-icd = " \
45 ${sysconfdir}/OpenCL"
46FILES:${PN}-libvulkan = " \
47 ${sysconfdir}/vulkan"
48RDEPENDS:${PN}-libvulkan = "vulkan-wsi-layer"
49RPROVIDES:${PN}-libvulkan = "virtual-vulkan-icd"
50
51FILES:${PN}-dev = " \
52 ${bindir}/malisc"
53FILES:${PN}-libegl-dev = " \
54 ${includedir}/EGL \
55 ${includedir}/KHR \
56 ${libdir}/libEGL${SOLIBSDEV} \
57 ${libdir}/pkgconfig/egl.pc"
58FILES:${PN}-libgbm-dev = " \
59 ${includedir}/gbm.h \
60 ${libdir}/libgbm${SOLIBSDEV} \
61 ${libdir}/pkgconfig/gbm.pc"
62
63# Consolidate GLES dev packages
64PACKAGES =+ "${PN}-libgles-dev"
65FILES:${PN}-libgles-dev = " \
66 ${includedir}/GLES* \
67 ${libdir}/libGLES*${SOLIBSDEV} \
68 ${libdir}/pkgconfig/gles*.pc"
69DEBIAN_NOAUTONAME:${PN}-libgles-dev = "1"
70RREPLACES:${PN}-libgles-dev = "libgles-dev"
71RPROVIDES:${PN}-libgles-dev = "libgles-dev"
72RCONFLICTS:${PN}-libgles-dev = "libgles-dev"
73ALLOW_EMPTY:${PN}-libgles1-dev = "1"
74ALLOW_EMPTY:${PN}-libgles2-dev = "1"
75ALLOW_EMPTY:${PN}-libgles3-dev = "1"
76RDEPENDS:${PN}-libgles1-dev = "${PN}-libgles-dev"
77RDEPENDS:${PN}-libgles2-dev = "${PN}-libgles-dev"
78RDEPENDS:${PN}-libgles3-dev = "${PN}-libgles-dev"
79
80FILES:${PN}-opencl-icd-dev = " \
81 ${bindir}/mali_clcc"
82
83python __anonymous() {
84
85 # Avoid Debian-renaming
86 for p in (("libegl", "libegl1" ),
87 ("libgbm", "libgbm1" ),
88 ("libgles1", "libglesv1-cm1"),
89 ("libgles2", "libglesv2-2" ),
90 ("libgles3", )):
91 fullp = "${PN}-" + p[0]
92 pkgs = "".join(' %s' % i for i in p)
93 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
94 d.appendVar("RREPLACES:" + fullp, pkgs)
95 d.appendVar("RPROVIDES:" + fullp, pkgs)
96 d.appendVar("RCONFLICTS:" + fullp, pkgs)
97 # libmali.so is loaded with dlopen, so an explicit runtime dependency is necessary
98 d.appendVar("RDEPENDS:" + fullp, "${PN}")
99
100 # For -dev, the first element is both the Debian and original name
101 fullp += "-dev"
102 pkgs = p[0] + "-dev"
103 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
104 d.appendVar("RREPLACES:" + fullp, pkgs)
105 d.appendVar("RPROVIDES:" + fullp, pkgs)
106 d.appendVar("RCONFLICTS:" + fullp, pkgs)
107}
108
109COMPATIBLE_MACHINE = "(mx95-nxp-bsp)"
diff --git a/recipes-graphics/mali/mali-imx_r54.0.bb b/recipes-graphics/mali/mali-imx_r54.0.bb
new file mode 100644
index 000000000..85ac6f8ca
--- /dev/null
+++ b/recipes-graphics/mali/mali-imx_r54.0.bb
@@ -0,0 +1,25 @@
1require mali-imx.inc
2
3LICENSE = "Proprietary"
4LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
5
6SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
7SRC_URI[sha256sum] = "df89c80456c73ee8c235201b98c0b678d993083540912eab968dc0cbf683ad26"
8IMX_SRCREV_ABBREV = "2943b3d"
9
10S = "${UNPACKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
11
12inherit fsl-eula-unpack
13
14do_install () {
15 install -d ${D}
16 cp -r ${S}/etc ${S}/usr ${D}
17
18 # Move firmware to nonarch_base_libdir
19 if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
20 install -d ${D}${nonarch_base_libdir}
21 mv ${D}${base_libdir}/firmware ${D}${nonarch_base_libdir}
22 fi
23}
24
25PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-graphics/mesa/mesa-demos/0001-YOCIMX-8300-Fix-mesa-demos-build-break-on-GCC-14.patch b/recipes-graphics/mesa/mesa-demos/0001-YOCIMX-8300-Fix-mesa-demos-build-break-on-GCC-14.patch
new file mode 100644
index 000000000..91b736ee7
--- /dev/null
+++ b/recipes-graphics/mesa/mesa-demos/0001-YOCIMX-8300-Fix-mesa-demos-build-break-on-GCC-14.patch
@@ -0,0 +1,59 @@
1From 400c42cda81a859bd5950567eaffe394053ccc99 Mon Sep 17 00:00:00 2001
2From: Wujian Sun <wujian.sun_1@nxp.com>
3Date: Thu, 5 Dec 2024 10:32:05 +0800
4Subject: [PATCH] YOCIMX-8300 Fix mesa-demos build break on GCC 14
5
6| ../mesa-demos-8.5.0/src/egl/opengl/eglkms.c: In function 'main':
7| ../mesa-demos-8.5.0/src/egl/opengl/eglkms.c:190:24: error: passing
8argument 1 of 'eglGetDisplay' from incompatible pointer type
9[-Wincompatible-pointer-types]
10| 190 | dpy = eglGetDisplay(gbm);
11| | ^~~
12| | |
13| | struct gbm_device *
14| In file included from ../mesa-demos-8.5.0/src/egl/opengl/eglkms.c:33:
15
16Type' {aka 'struct wl_display *'} but argument is of type 'struct
17gbm_device *'
18| 143 | EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay
19(EGLNativeDisplayType display_id);
20| |
21~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
22| ../mesa-demos-8.5.0/src/egl/opengl/eglkms.c:229:50: error: passing
23argument 3 of 'eglCreateWindowSurface' from incompatible pointer type
24[-Wincompatible-pointer-types]
25| 229 | surface = eglCreateWindowSurface(dpy, config, gs, NULL);
26| | ^~
27| | |
28| | struct
29gbm_surface *
30
31Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/demos/-/merge_requests/205]
32
33Signed-off-by: Wujian Sun <wujian.sun_1@nxp.com>
34---
35 src/egl/opengl/eglkms.c | 4 ++--
36 1 file changed, 2 insertions(+), 2 deletions(-)
37
38diff --git a/src/egl/opengl/eglkms.c b/src/egl/opengl/eglkms.c
39index 832962b..57adc7b 100644
40--- a/src/egl/opengl/eglkms.c
41+++ b/src/egl/opengl/eglkms.c
42@@ -187,7 +187,7 @@ int main(int argc, char *argv[])
43 goto close_fd;
44 }
45
46- dpy = eglGetDisplay(gbm);
47+ dpy = eglGetDisplay((EGLNativeDisplayType) gbm);
48 if (dpy == EGL_NO_DISPLAY) {
49 fprintf(stderr, "eglGetDisplay() failed\n");
50 ret = -1;
51@@ -226,7 +226,7 @@ int main(int argc, char *argv[])
52 gs = gbm_surface_create(gbm, kms.mode.hdisplay, kms.mode.vdisplay,
53 GBM_BO_FORMAT_XRGB8888,
54 GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
55- surface = eglCreateWindowSurface(dpy, config, gs, NULL);
56+ surface = eglCreateWindowSurface(dpy, config, (EGLNativeWindowType) gs, NULL);
57
58 if (!eglMakeCurrent(dpy, surface, surface, ctx)) {
59 fprintf(stderr, "failed to make context current\n");
diff --git a/recipes-graphics/mesa/mesa-demos/0001-egl-clear-backgrounds-black.patch b/recipes-graphics/mesa/mesa-demos/0001-egl-clear-backgrounds-black.patch
index fa46823f1..fb9091129 100644
--- a/recipes-graphics/mesa/mesa-demos/0001-egl-clear-backgrounds-black.patch
+++ b/recipes-graphics/mesa/mesa-demos/0001-egl-clear-backgrounds-black.patch
@@ -1,4 +1,4 @@
1From cad7eb0f0487aea64c4460bd6ad95b5c9537d35a Mon Sep 17 00:00:00 2001 1From f5a6600ff8312a7c0f30273ab783c1d822749a73 Mon Sep 17 00:00:00 2001
2From: Jiyu Yang <jiyu.yang@nxp.com> 2From: Jiyu Yang <jiyu.yang@nxp.com>
3Date: Thu, 11 Apr 2024 16:30:50 +0800 3Date: Thu, 11 Apr 2024 16:30:50 +0800
4Subject: [PATCH] egl: clear backgrounds black 4Subject: [PATCH] egl: clear backgrounds black
@@ -13,18 +13,15 @@ Signed-off-by: Jiyu Yang <jiyu.yang@nxp.com>
13 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
14 14
15diff --git a/src/egl/opengles2/es2gears.c b/src/egl/opengles2/es2gears.c 15diff --git a/src/egl/opengles2/es2gears.c b/src/egl/opengles2/es2gears.c
16index db67f3a9..4e81afe7 100644 16index 9501f61..e421a8a 100644
17--- a/src/egl/opengles2/es2gears.c 17--- a/src/egl/opengles2/es2gears.c
18+++ b/src/egl/opengles2/es2gears.c 18+++ b/src/egl/opengles2/es2gears.c
19@@ -515,7 +515,7 @@ gears_draw(void) 19@@ -350,7 +350,7 @@ gears_draw(void)
20 GLfloat transform[16]; 20 GLfloat transform[16];
21 identity(transform); 21 mat4_identity(transform);
22 22
23- glClearColor(0.0, 0.0, 0.0, 0.0); 23- glClearColor(0.0, 0.0, 0.0, 0.0);
24+ glClearColor(0.0, 0.0, 0.0, 1.0); 24+ glClearColor(0.0, 0.0, 0.0, 1.0);
25 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 25 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
26 26
27 /* Translate and rotate the view */ 27 /* Translate and rotate the view */
28--
292.34.1
30
diff --git a/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch b/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch
index 8401793cd..2e87ed155 100644
--- a/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch
+++ b/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch
@@ -1,4 +1,4 @@
1From 757649a766f90e745f24df1d191caeef15c71399 Mon Sep 17 00:00:00 2001 1From e453ac82b6ffd8f1d0de4c8ac8fd4bab6b924958 Mon Sep 17 00:00:00 2001
2From: Otavio Salvador <otavio@ossystems.com.br> 2From: Otavio Salvador <otavio@ossystems.com.br>
3Date: Tue, 4 Jun 2013 09:28:51 -0300 3Date: Tue, 4 Jun 2013 09:28:51 -0300
4Subject: [PATCH] Replace glWindowPos2iARB calls with glWindowPos2i 4Subject: [PATCH] Replace glWindowPos2iARB calls with glWindowPos2i
@@ -34,7 +34,7 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
34 20 files changed, 28 insertions(+), 28 deletions(-) 34 20 files changed, 28 insertions(+), 28 deletions(-)
35 35
36diff --git a/src/demos/copypix.c b/src/demos/copypix.c 36diff --git a/src/demos/copypix.c b/src/demos/copypix.c
37index 286c5a9..041b567 100644 37index 164d8c0..2d062a7 100644
38--- a/src/demos/copypix.c 38--- a/src/demos/copypix.c
39+++ b/src/demos/copypix.c 39+++ b/src/demos/copypix.c
40@@ -54,7 +54,7 @@ static void Display( void ) 40@@ -54,7 +54,7 @@ static void Display( void )
@@ -56,7 +56,7 @@ index 286c5a9..041b567 100644
56 glPixelZoom(1, 1); 56 glPixelZoom(1, 1);
57 57
58diff --git a/src/demos/engine.c b/src/demos/engine.c 58diff --git a/src/demos/engine.c b/src/demos/engine.c
59index 928fcbb..beace4c 100644 59index 410d889..b24638a 100644
60--- a/src/demos/engine.c 60--- a/src/demos/engine.c
61+++ b/src/demos/engine.c 61+++ b/src/demos/engine.c
62@@ -971,7 +971,7 @@ Draw(void) 62@@ -971,7 +971,7 @@ Draw(void)
@@ -69,7 +69,7 @@ index 928fcbb..beace4c 100644
69 if (lit) 69 if (lit)
70 glEnable(GL_LIGHTING); 70 glEnable(GL_LIGHTING);
71diff --git a/src/demos/fogcoord.c b/src/demos/fogcoord.c 71diff --git a/src/demos/fogcoord.c b/src/demos/fogcoord.c
72index 567eec0..e833009 100644 72index ea9a3ae..ed0483f 100644
73--- a/src/demos/fogcoord.c 73--- a/src/demos/fogcoord.c
74+++ b/src/demos/fogcoord.c 74+++ b/src/demos/fogcoord.c
75@@ -68,14 +68,14 @@ PrintInfo(void) 75@@ -68,14 +68,14 @@ PrintInfo(void)
@@ -90,7 +90,7 @@ index 567eec0..e833009 100644
90 } 90 }
91 91
92diff --git a/src/glsl/shadow_sampler.c b/src/glsl/shadow_sampler.c 92diff --git a/src/glsl/shadow_sampler.c b/src/glsl/shadow_sampler.c
93index b830030..eb82d8b 100644 93index 5f0f192..16a2201 100644
94--- a/src/glsl/shadow_sampler.c 94--- a/src/glsl/shadow_sampler.c
95+++ b/src/glsl/shadow_sampler.c 95+++ b/src/glsl/shadow_sampler.c
96@@ -85,7 +85,7 @@ Redisplay(void) 96@@ -85,7 +85,7 @@ Redisplay(void)
@@ -103,7 +103,7 @@ index b830030..eb82d8b 100644
103 103
104 { 104 {
105diff --git a/src/tests/auxbuffer.c b/src/tests/auxbuffer.c 105diff --git a/src/tests/auxbuffer.c b/src/tests/auxbuffer.c
106index 5fa399a..0cd5f47 100644 106index d4f7c2d..5ff1785 100644
107--- a/src/tests/auxbuffer.c 107--- a/src/tests/auxbuffer.c
108+++ b/src/tests/auxbuffer.c 108+++ b/src/tests/auxbuffer.c
109@@ -419,7 +419,7 @@ event_loop(Display *dpy, Window win) 109@@ -419,7 +419,7 @@ event_loop(Display *dpy, Window win)
@@ -116,7 +116,7 @@ index 5fa399a..0cd5f47 100644
116 glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR); 116 glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR);
117 glEnable(GL_DEPTH_TEST); 117 glEnable(GL_DEPTH_TEST);
118diff --git a/src/tests/copypixrate.c b/src/tests/copypixrate.c 118diff --git a/src/tests/copypixrate.c b/src/tests/copypixrate.c
119index 2f64e0a..df1f9b0 100644 119index 4c12fbd..e80f3cb 100644
120--- a/src/tests/copypixrate.c 120--- a/src/tests/copypixrate.c
121+++ b/src/tests/copypixrate.c 121+++ b/src/tests/copypixrate.c
122@@ -91,7 +91,7 @@ BlitOne(void) 122@@ -91,7 +91,7 @@ BlitOne(void)
@@ -129,7 +129,7 @@ index 2f64e0a..df1f9b0 100644
129 } 129 }
130 } 130 }
131diff --git a/src/tests/drawbuffers.c b/src/tests/drawbuffers.c 131diff --git a/src/tests/drawbuffers.c b/src/tests/drawbuffers.c
132index fa2f8a7..cd5033f 100644 132index f017d25..36b241f 100644
133--- a/src/tests/drawbuffers.c 133--- a/src/tests/drawbuffers.c
134+++ b/src/tests/drawbuffers.c 134+++ b/src/tests/drawbuffers.c
135@@ -88,7 +88,7 @@ Display(void) 135@@ -88,7 +88,7 @@ Display(void)
@@ -142,7 +142,7 @@ index fa2f8a7..cd5033f 100644
142 142
143 free(buffer); 143 free(buffer);
144diff --git a/src/tests/drawbuffers2.c b/src/tests/drawbuffers2.c 144diff --git a/src/tests/drawbuffers2.c b/src/tests/drawbuffers2.c
145index 5bcf0b2..84d444b 100644 145index 0cb8d47..ac1a5aa 100644
146--- a/src/tests/drawbuffers2.c 146--- a/src/tests/drawbuffers2.c
147+++ b/src/tests/drawbuffers2.c 147+++ b/src/tests/drawbuffers2.c
148@@ -112,7 +112,7 @@ Display(void) 148@@ -112,7 +112,7 @@ Display(void)
@@ -155,7 +155,7 @@ index 5bcf0b2..84d444b 100644
155 155
156 free(buffer); 156 free(buffer);
157diff --git a/src/tests/fbotest1.c b/src/tests/fbotest1.c 157diff --git a/src/tests/fbotest1.c b/src/tests/fbotest1.c
158index 161903c..5930a6d 100644 158index 322ea30..19082b6 100644
159--- a/src/tests/fbotest1.c 159--- a/src/tests/fbotest1.c
160+++ b/src/tests/fbotest1.c 160+++ b/src/tests/fbotest1.c
161@@ -61,7 +61,7 @@ Display( void ) 161@@ -61,7 +61,7 @@ Display( void )
@@ -168,7 +168,7 @@ index 161903c..5930a6d 100644
168 168
169 free(buffer); 169 free(buffer);
170diff --git a/src/tests/fbotest2.c b/src/tests/fbotest2.c 170diff --git a/src/tests/fbotest2.c b/src/tests/fbotest2.c
171index 6ef7f12..11c867e 100644 171index 05554e4..e6a6c29 100644
172--- a/src/tests/fbotest2.c 172--- a/src/tests/fbotest2.c
173+++ b/src/tests/fbotest2.c 173+++ b/src/tests/fbotest2.c
174@@ -72,7 +72,7 @@ Display( void ) 174@@ -72,7 +72,7 @@ Display( void )
@@ -190,7 +190,7 @@ index 6ef7f12..11c867e 100644
190 190
191 free(buffer); 191 free(buffer);
192diff --git a/src/tests/fbotest3.c b/src/tests/fbotest3.c 192diff --git a/src/tests/fbotest3.c b/src/tests/fbotest3.c
193index 19f684d..e6d7710 100644 193index a3ac340..c320794 100644
194--- a/src/tests/fbotest3.c 194--- a/src/tests/fbotest3.c
195+++ b/src/tests/fbotest3.c 195+++ b/src/tests/fbotest3.c
196@@ -79,7 +79,7 @@ Display( void ) 196@@ -79,7 +79,7 @@ Display( void )
@@ -203,7 +203,7 @@ index 19f684d..e6d7710 100644
203 203
204 free(buffer); 204 free(buffer);
205diff --git a/src/tests/readrate.c b/src/tests/readrate.c 205diff --git a/src/tests/readrate.c b/src/tests/readrate.c
206index 3859cf4..81eb8a3 100644 206index 8a9a02f..9709835 100644
207--- a/src/tests/readrate.c 207--- a/src/tests/readrate.c
208+++ b/src/tests/readrate.c 208+++ b/src/tests/readrate.c
209@@ -85,7 +85,7 @@ MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo) 209@@ -85,7 +85,7 @@ MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo)
@@ -242,7 +242,7 @@ index 3859cf4..81eb8a3 100644
242 } 242 }
243 243
244diff --git a/src/tests/viewmemory.c b/src/tests/viewmemory.c 244diff --git a/src/tests/viewmemory.c b/src/tests/viewmemory.c
245index 16044b9..3584c33 100644 245index 16054b6..ff7b4eb 100644
246--- a/src/tests/viewmemory.c 246--- a/src/tests/viewmemory.c
247+++ b/src/tests/viewmemory.c 247+++ b/src/tests/viewmemory.c
248@@ -95,7 +95,7 @@ Draw(void) 248@@ -95,7 +95,7 @@ Draw(void)
@@ -255,7 +255,7 @@ index 16044b9..3584c33 100644
255 255
256 glutSwapBuffers(); 256 glutSwapBuffers();
257diff --git a/src/trivial/clear-fbo-scissor.c b/src/trivial/clear-fbo-scissor.c 257diff --git a/src/trivial/clear-fbo-scissor.c b/src/trivial/clear-fbo-scissor.c
258index a30935c..5c15200 100644 258index 2d1ee4f..6d06330 100644
259--- a/src/trivial/clear-fbo-scissor.c 259--- a/src/trivial/clear-fbo-scissor.c
260+++ b/src/trivial/clear-fbo-scissor.c 260+++ b/src/trivial/clear-fbo-scissor.c
261@@ -182,7 +182,7 @@ Draw(void) 261@@ -182,7 +182,7 @@ Draw(void)
@@ -268,7 +268,7 @@ index a30935c..5c15200 100644
268 268
269 free(buffer); 269 free(buffer);
270diff --git a/src/trivial/clear-fbo-tex.c b/src/trivial/clear-fbo-tex.c 270diff --git a/src/trivial/clear-fbo-tex.c b/src/trivial/clear-fbo-tex.c
271index de84f98..f0fbdf6 100644 271index 94534bd..6a38c4b 100644
272--- a/src/trivial/clear-fbo-tex.c 272--- a/src/trivial/clear-fbo-tex.c
273+++ b/src/trivial/clear-fbo-tex.c 273+++ b/src/trivial/clear-fbo-tex.c
274@@ -140,7 +140,7 @@ static void Draw( void ) 274@@ -140,7 +140,7 @@ static void Draw( void )
@@ -281,7 +281,7 @@ index de84f98..f0fbdf6 100644
281 281
282 free(buffer); 282 free(buffer);
283diff --git a/src/trivial/clear-fbo.c b/src/trivial/clear-fbo.c 283diff --git a/src/trivial/clear-fbo.c b/src/trivial/clear-fbo.c
284index 10d830b..3fee3e3 100644 284index 2065836..ad39401 100644
285--- a/src/trivial/clear-fbo.c 285--- a/src/trivial/clear-fbo.c
286+++ b/src/trivial/clear-fbo.c 286+++ b/src/trivial/clear-fbo.c
287@@ -116,7 +116,7 @@ Draw(void) 287@@ -116,7 +116,7 @@ Draw(void)
@@ -294,7 +294,7 @@ index 10d830b..3fee3e3 100644
294 294
295 free(buffer); 295 free(buffer);
296diff --git a/src/trivial/readpixels.c b/src/trivial/readpixels.c 296diff --git a/src/trivial/readpixels.c b/src/trivial/readpixels.c
297index ccce4ed..74e0546 100644 297index fb88570..da9030e 100644
298--- a/src/trivial/readpixels.c 298--- a/src/trivial/readpixels.c
299+++ b/src/trivial/readpixels.c 299+++ b/src/trivial/readpixels.c
300@@ -71,7 +71,7 @@ static void Draw(void) 300@@ -71,7 +71,7 @@ static void Draw(void)
@@ -307,7 +307,7 @@ index ccce4ed..74e0546 100644
307 glDrawPixels(Width, Height, GL_RGBA, GL_FLOAT, image); 307 glDrawPixels(Width, Height, GL_RGBA, GL_FLOAT, image);
308 free(image); 308 free(image);
309diff --git a/src/trivial/tri-fbo.c b/src/trivial/tri-fbo.c 309diff --git a/src/trivial/tri-fbo.c b/src/trivial/tri-fbo.c
310index d5800b2..dd1f21a 100644 310index 76985a9..21c0ec0 100644
311--- a/src/trivial/tri-fbo.c 311--- a/src/trivial/tri-fbo.c
312+++ b/src/trivial/tri-fbo.c 312+++ b/src/trivial/tri-fbo.c
313@@ -119,7 +119,7 @@ static void Draw( void ) 313@@ -119,7 +119,7 @@ static void Draw( void )
@@ -320,7 +320,7 @@ index d5800b2..dd1f21a 100644
320 320
321 321
322diff --git a/src/xdemos/glxsnoop.c b/src/xdemos/glxsnoop.c 322diff --git a/src/xdemos/glxsnoop.c b/src/xdemos/glxsnoop.c
323index 2215cfd..13d2b2d 100644 323index 294297a..abb32a8 100644
324--- a/src/xdemos/glxsnoop.c 324--- a/src/xdemos/glxsnoop.c
325+++ b/src/xdemos/glxsnoop.c 325+++ b/src/xdemos/glxsnoop.c
326@@ -91,7 +91,7 @@ redraw(Display *dpy, Window srcWin, Window dstWin ) 326@@ -91,7 +91,7 @@ redraw(Display *dpy, Window srcWin, Window dstWin )
@@ -350,6 +350,3 @@ index f670983..d010085 100644
350 glCopyPixels(0, 0, Width[0], Height[0], GL_COLOR); 350 glCopyPixels(0, 0, Width[0], Height[0], GL_COLOR);
351 } 351 }
352 352
353--
3541.8.1
355
diff --git a/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch b/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch
index 459a6ebd4..17fb208c9 100644
--- a/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch
+++ b/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch
@@ -1,10 +1,18 @@
1mesa-demos: Add extension header to fix build break now that gl1 is removed 1From d152655a1421f0cdf7ce22c35a36c367c07af587 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 26 Aug 2014 14:44:17 -0500
4Subject: [PATCH] mesa-demos: Add extension header to fix build break now that
5 gl1 is removed
2 6
3Upstream-Status: Pending 7Upstream-Status: Pending
4 8
5Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 src/egl/opengles1/clear.c | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
6diff --git a/src/egl/opengles1/clear.c b/src/egl/opengles1/clear.c 14diff --git a/src/egl/opengles1/clear.c b/src/egl/opengles1/clear.c
7index 9fe1b5291e1905fd6fe572063ed707d59ce45a81..ca9954a21b5f475709dbdef07f90b900962fcbc7 100644 15index 9fe1b52..ca9954a 100644
8--- a/src/egl/opengles1/clear.c 16--- a/src/egl/opengles1/clear.c
9+++ b/src/egl/opengles1/clear.c 17+++ b/src/egl/opengles1/clear.c
10@@ -34,7 +34,7 @@ 18@@ -34,7 +34,7 @@
diff --git a/recipes-graphics/mesa/mesa-demos_%.bbappend b/recipes-graphics/mesa/mesa-demos_%.bbappend
index 1c5dd3daf..7d3e7ca1c 100644
--- a/recipes-graphics/mesa/mesa-demos_%.bbappend
+++ b/recipes-graphics/mesa/mesa-demos_%.bbappend
@@ -3,7 +3,9 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
3SRC_URI:append:imxgpu = " \ 3SRC_URI:append:imxgpu = " \
4 file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \ 4 file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \
5 file://fix-clear-build-break.patch \ 5 file://fix-clear-build-break.patch \
6 file://0001-egl-clear-backgrounds-black.patch" 6 file://0001-egl-clear-backgrounds-black.patch \
7 file://0001-YOCIMX-8300-Fix-mesa-demos-build-break-on-GCC-14.patch \
8"
7 9
8REQUIRED_DISTRO_FEATURES:remove:imxgpu = "x11" 10REQUIRED_DISTRO_FEATURES:remove:imxgpu = "x11"
9 11
diff --git a/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb b/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
index 658b28de1..23af68280 100644
--- a/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
+++ b/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
@@ -9,6 +9,8 @@ SRC_URI = "\
9 file://mesa-etnaviv.sh \ 9 file://mesa-etnaviv.sh \
10" 10"
11 11
12S = "${UNPACKDIR}"
13
12do_configure[noexec] = "1" 14do_configure[noexec] = "1"
13do_compile[noexec] = "1" 15do_compile[noexec] = "1"
14 16
diff --git a/recipes-graphics/mesa/mesa.bbappend b/recipes-graphics/mesa/mesa.bbappend
index 7c2e08fba..1c75c9884 100644
--- a/recipes-graphics/mesa/mesa.bbappend
+++ b/recipes-graphics/mesa/mesa.bbappend
@@ -1,10 +1,6 @@
1PROVIDES:remove:imxgpu = "virtual/egl" 1PROVIDES:remove:imxgpu = "virtual/egl"
2PROVIDES:remove:imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2" 2PROVIDES:remove:imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2"
3 3
4FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
5SRC_URI:append:mx93-nxp-bsp = " file://0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch"
6SRC_URI:append:imx-nxp-bsp = " file://0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch"
7
8PACKAGECONFIG:remove:imxgpu = "egl gbm" 4PACKAGECONFIG:remove:imxgpu = "egl gbm"
9PACKAGECONFIG:remove:imxgpu3d = "gles" 5PACKAGECONFIG:remove:imxgpu3d = "gles"
10 6
@@ -19,7 +15,7 @@ python () {
19} 15}
20 16
21# Enable Etnaviv and Freedreno support 17# Enable Etnaviv and Freedreno support
22PACKAGECONFIG:append:use-mainline-bsp = " gallium etnaviv kmsro freedreno" 18PACKAGECONFIG:append:use-mainline-bsp = " gallium etnaviv freedreno"
23 19
24# For NXP BSP, GPU drivers don't support dri 20# For NXP BSP, GPU drivers don't support dri
25PACKAGECONFIG:remove:imxgpu:use-nxp-bsp = "dri" 21PACKAGECONFIG:remove:imxgpu:use-nxp-bsp = "dri"
diff --git a/recipes-graphics/mesa/mesa/0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch b/recipes-graphics/mesa/mesa/0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch
deleted file mode 100644
index 3dc8db099..000000000
--- a/recipes-graphics/mesa/mesa/0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From 612c3dc98d5d050b9cfee16ec77ca3c8358caa0d Mon Sep 17 00:00:00 2001
2From: Wujian Sun <wujian.sun_1@nxp.com>
3Date: Mon, 29 Apr 2024 17:29:16 +0800
4Subject: [PATCH] MGS-7599 cso: fix virgl driver assert issue
5
6A workaround that remove PIPE_MAX_SAMPLERS and
7PIPE_MAX_CONSTANT_BUFFERS assert.
8
9Upstream-Status: Inappropriate [i.MX-specific]
10
11Signed-off-by: Wujian Sun <wujian.sun_1@nxp.com>
12---
13 src/gallium/auxiliary/cso_cache/cso_context.c | 2 --
14 src/gallium/drivers/virgl/virgl_screen.c | 2 +-
15 2 files changed, 1 insertion(+), 3 deletions(-)
16
17diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
18index 3e86def31c5..ffc6d22da9c 100644
19--- a/src/gallium/auxiliary/cso_cache/cso_context.c
20+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
21@@ -403,10 +403,8 @@ cso_unbind_context(struct cso_context *ctx)
22 PIPE_SHADER_CAP_MAX_CONST_BUFFERS);
23 int maximg = scr->get_shader_param(scr, sh,
24 PIPE_SHADER_CAP_MAX_SHADER_IMAGES);
25- assert(maxsam <= PIPE_MAX_SAMPLERS);
26 assert(maxview <= PIPE_MAX_SHADER_SAMPLER_VIEWS);
27 assert(maxssbo <= PIPE_MAX_SHADER_BUFFERS);
28- assert(maxcb <= PIPE_MAX_CONSTANT_BUFFERS);
29 assert(maximg <= PIPE_MAX_SHADER_IMAGES);
30 if (maxsam > 0) {
31 ctx->base.pipe->bind_sampler_states(ctx->base.pipe, sh, 0, maxsam, zeros);
32diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c
33index 389a1935cc3..7c7f8ba576b 100644
34--- a/src/gallium/drivers/virgl/virgl_screen.c
35+++ b/src/gallium/drivers/virgl/virgl_screen.c
36@@ -435,7 +435,7 @@ virgl_get_shader_param(struct pipe_screen *screen,
37 return 1;
38 case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
39 return MIN2(vscreen->caps.caps.v2.max_shader_sampler_views,
40- PIPE_MAX_SHADER_SAMPLER_VIEWS);
41+ PIPE_MAX_SAMPLERS);
42 case PIPE_SHADER_CAP_INTEGERS:
43 return vscreen->caps.caps.v1.glsl_level >= 130;
44 case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH:
45--
462.17.1
47
diff --git a/recipes-graphics/mesa/mesa/0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch b/recipes-graphics/mesa/mesa/0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch
deleted file mode 100644
index 0cdcbfca6..000000000
--- a/recipes-graphics/mesa/mesa/0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 188d7b01037e5a0249e63c2600cf15a288a9ff3f Mon Sep 17 00:00:00 2001
2From: Wujian Sun <wujian.sun_1@nxp.com>
3Date: Fri, 19 Apr 2024 18:38:17 +0800
4Subject: [PATCH] MGS-7673 egl/dri2: fix video showing wrong frame
5
6Softpipe driver doesn't support EGL_EXT_image_dma_buf_import_modifiers
7extension.
8Should not report the extension.
9
10Upstream-Status: Pending
11
12Signed-off-by: Wujian Sun <wujian.sun_1@nxp.com>
13---
14 src/egl/drivers/dri2/egl_dri2.c | 3 ++-
15 1 file changed, 2 insertions(+), 1 deletion(-)
16
17diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
18index 992f0e3d46d..6ee209d4b47 100644
19--- a/src/egl/drivers/dri2/egl_dri2.c
20+++ b/src/egl/drivers/dri2/egl_dri2.c
21@@ -942,7 +942,8 @@ dri2_setup_screen(_EGLDisplay *disp)
22
23 #ifdef HAVE_LIBDRM
24 if (dri2_dpy->image->base.version >= 8 &&
25- dri2_dpy->image->createImageFromDmaBufs) {
26+ dri2_dpy->image->createImageFromDmaBufs &&
27+ strcmp("softpipe", pscreen->get_name(pscreen))) {
28 disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
29 disp->Extensions.EXT_image_dma_buf_import_modifiers = EGL_TRUE;
30 }
31--
322.17.1
33
diff --git a/recipes-graphics/piglit/piglit/0001-tests-Fix-cl-test-Include-Directories-error-Error-0-.patch b/recipes-graphics/piglit/piglit/0001-tests-Fix-cl-test-Include-Directories-error-Error-0-.patch
new file mode 100644
index 000000000..3e673a497
--- /dev/null
+++ b/recipes-graphics/piglit/piglit/0001-tests-Fix-cl-test-Include-Directories-error-Error-0-.patch
@@ -0,0 +1,30 @@
1From c14b65106687b1097f5d50a993707d8a2f99005b Mon Sep 17 00:00:00 2001
2From: jiajia Qian <jiajia.qian@nxp.com>
3Date: Tue, 19 Dec 2023 13:23:33 +0800
4Subject: [PATCH] tests: Fix cl test Include Directories: error : Error(0,8) :
5 Cannot find the header file include_test.h.
6
7Modified CMakeLists.txt to install include_test.h file in piglit/tests/cl/program/build/ folder.
8
9Modified the relative path in include-directories.cl from "tests/cl/program/build" to "../lib/piglit/tests/cl/program/build".
10
11Upstream-Status: Pending [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/853]
12Signed-off-by: jiajia Qian <jiajia.qian@nxp.com>
13---
14 CMakeLists.txt | 1 +
15 tests/cl/program/build/include-directories.cl | 2 +-
16 2 files changed, 2 insertions(+), 1 deletion(-)
17
18Index: git/tests/cl/program/build/include-directories.cl
19===================================================================
20--- git.orig/tests/cl/program/build/include-directories.cl
21+++ git/tests/cl/program/build/include-directories.cl
22@@ -2,7 +2,7 @@
23 [config]
24 name: Include Directories
25 clc_version_min: 10
26-build_options: -I . -I tests/cl/program/build
27+build_options: -I . -I ../lib/piglit/tests/cl/program/build
28 !*/
29
30 #include "include_test.h"
diff --git a/recipes-graphics/piglit/piglit/0002-cl-Add-mutually-exclusive-memory-flags-for-CL_MEM_KE.patch b/recipes-graphics/piglit/piglit/0002-cl-Add-mutually-exclusive-memory-flags-for-CL_MEM_KE.patch
new file mode 100644
index 000000000..a4935b169
--- /dev/null
+++ b/recipes-graphics/piglit/piglit/0002-cl-Add-mutually-exclusive-memory-flags-for-CL_MEM_KE.patch
@@ -0,0 +1,42 @@
1From 2673c2adc81a408a4238f786cb2d795a65308ce6 Mon Sep 17 00:00:00 2001
2From: Eric Guo <eric.guo@nxp.com>
3Date: Fri, 11 Apr 2025 17:15:40 +0800
4Subject: [PATCH] cl: Add mutually exclusive memory flags for
5 CL_MEM_KERNEL_READ_AND_WRITE
6
7Fix cl-api-create-buffer on mali DDK.
8
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/1004]
10Signed-off-by: Eric Guo <eric.guo@nxp.com>
11---
12 tests/util/piglit-util-cl-enum.c | 7 ++++++-
13 1 file changed, 6 insertions(+), 1 deletion(-)
14
15diff --git a/tests/util/piglit-util-cl-enum.c b/tests/util/piglit-util-cl-enum.c
16index 5d43bc102..f2c185c9c 100644
17--- a/tests/util/piglit-util-cl-enum.c
18+++ b/tests/util/piglit-util-cl-enum.c
19@@ -979,7 +979,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_command_queue_properties, 2, 2, 2, 4, 4 /* really? */
20 PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_command_queue_properties);
21
22
23-PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8, 8, 8) = {
24+PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8, 11, 11) = {
25 CL_MEM_READ_WRITE | CL_MEM_READ_ONLY,
26 CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY,
27 CL_MEM_READ_ONLY | CL_MEM_WRITE_ONLY,
28@@ -990,6 +990,11 @@ PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8, 8, 8) = {
29 CL_MEM_HOST_WRITE_ONLY | CL_MEM_HOST_NO_ACCESS,
30 CL_MEM_HOST_READ_ONLY | CL_MEM_HOST_NO_ACCESS,
31 #endif //CL_VERSION_1_2
32+#if defined(CL_VERSION_2_0)
33+ CL_MEM_KERNEL_READ_AND_WRITE | CL_MEM_READ_ONLY,
34+ CL_MEM_KERNEL_READ_AND_WRITE | CL_MEM_WRITE_ONLY,
35+ CL_MEM_KERNEL_READ_AND_WRITE | CL_MEM_READ_WRITE,
36+#endif //CL_VERSION_2_0
37 };
38 PIGLIT_CL_DEFINE_ENUM_PTR(cl_mem_flags, cl_mem_flags_mutexes);
39
40--
412.34.1
42
diff --git a/recipes-graphics/piglit/piglit_%.bbappend b/recipes-graphics/piglit/piglit_%.bbappend
index fe2a0bc2f..3caf8aa15 100644
--- a/recipes-graphics/piglit/piglit_%.bbappend
+++ b/recipes-graphics/piglit/piglit_%.bbappend
@@ -1,6 +1,23 @@
1PACKAGECONFIG:remove:imxgpu = "glx" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2 2
3PACKAGECONFIG:append:mx8-nxp-bsp = " opencl" 3SRC_URI += "file://0001-tests-Fix-cl-test-Include-Directories-error-Error-0-.patch \
4PACKAGECONFIG:append:mx9-nxp-bsp = " opencl" 4 file://0002-cl-Add-mutually-exclusive-memory-flags-for-CL_MEM_KE.patch"
5
6PACKAGECONFIG:append = " ${PACKAGECONFIG_APPEND}"
7PACKAGECONFIG:remove = " ${PACKAGECONFIG_REMOVE}"
8
9PACKAGECONFIG_APPEND ?= " \
10 gbm \
11 opencl \
12 ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}"
13PACKAGECONFIG_APPEND:imxgpu:mx6-nxp-bsp = ""
14PACKAGECONFIG_APPEND:imxgpu:mx7-nxp-bsp = ""
15
16PACKAGECONFIG_REMOVE ?= ""
17PACKAGECONFIG_REMOVE:imxgpu = "glx"
18PACKAGECONFIG_REMOVE:imxgpu:mx6-nxp-bsp = "glx x11"
19PACKAGECONFIG_REMOVE:imxgpu:mx7-nxp-bsp = "glx x11"
20
21PACKAGECONFIG[gbm] = "-DPIGLIT_USE_GBM=1,-DPIGLIT_USE_GBM=0,virtual/libgbm"
5 22
6CFLAGS:append:imxgpu:toolchain-clang = " -Wno-error=int-conversion" 23CFLAGS:append:imxgpu:toolchain-clang = " -Wno-error=int-conversion"
diff --git a/recipes-graphics/vulkan/vulkan-loader-1.3.275.0.imx/0001-LF-11869-change-mali-wsi-layer-activating-order.patch b/recipes-graphics/vulkan/vulkan-loader-1.3.275.0.imx/0001-LF-11869-change-mali-wsi-layer-activating-order.patch
new file mode 100644
index 000000000..da738aabe
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-loader-1.3.275.0.imx/0001-LF-11869-change-mali-wsi-layer-activating-order.patch
@@ -0,0 +1,52 @@
1From 3448c245b15928aa5a5a3695d9271fb201eb2e3b Mon Sep 17 00:00:00 2001
2From: Yuan Tian <yuan.tian@nxp.com>
3Date: Sat, 27 Apr 2024 06:06:54 +0800
4Subject: [PATCH] LF-11869 change mali wsi layer activating order
5
6Upstream-Status: Inappropriate [i.MX specific]
7
8Signed-off-by: Yuan Tian <yuan.tian@nxp.com>
9---
10 loader/loader.c | 12 ++++++++++++
11 1 file changed, 12 insertions(+)
12
13diff --git a/loader/loader.c b/loader/loader.c
14index e646b28b4..55912c178 100644
15--- a/loader/loader.c
16+++ b/loader/loader.c
17@@ -2906,6 +2906,7 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
18 #if !defined(_WIN32)
19 char temp_path[2048];
20 #endif
21+ bool has_wsi_layer = false;
22
23 // Now, parse the paths
24 next_file = search_path;
25@@ -2965,6 +2966,10 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
26 name = full_path;
27
28 VkResult local_res;
29+ if(!strcmp(name,"/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json")) {
30+ has_wsi_layer = true;
31+ continue;
32+ }
33 local_res = add_if_manifest_file(inst, name, out_files);
34
35 // Incomplete means this was not a valid data file.
36@@ -2975,6 +2980,13 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
37 break;
38 }
39 }
40+
41+ if(has_wsi_layer) {
42+ name = "/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json";
43+ vk_result = add_if_manifest_file(inst, name, out_files);
44+ has_wsi_layer = false;
45+ }
46+
47 loader_closedir(inst, dir_stream);
48 if (vk_result != VK_SUCCESS) {
49 goto out;
50--
512.34.1
52
diff --git a/recipes-graphics/vulkan/vulkan-loader-1.4.328.1/0001-LF-11869-change-mali-wsi-layer-activating-order.patch b/recipes-graphics/vulkan/vulkan-loader-1.4.328.1/0001-LF-11869-change-mali-wsi-layer-activating-order.patch
new file mode 100644
index 000000000..f54919cd9
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-loader-1.4.328.1/0001-LF-11869-change-mali-wsi-layer-activating-order.patch
@@ -0,0 +1,49 @@
1From 91aff12a127428ff558d57d93b91b0b909321c35 Mon Sep 17 00:00:00 2001
2From: Yuan Tian <yuan.tian@nxp.com>
3Date: Sat, 27 Apr 2024 06:06:54 +0800
4Subject: [PATCH] LF-11869 change mali wsi layer activating order
5
6Upstream-Status: Inappropriate [i.MX specific]
7
8Signed-off-by: Yuan Tian <yuan.tian@nxp.com>
9---
10 loader/loader.c | 12 ++++++++++++
11 1 file changed, 12 insertions(+)
12
13diff --git a/loader/loader.c b/loader/loader.c
14index 9064cd633..5b00870a4 100644
15--- a/loader/loader.c
16+++ b/loader/loader.c
17@@ -3034,6 +3034,7 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
18 #if !defined(_WIN32)
19 char temp_path[2048];
20 #endif
21+ bool has_wsi_layer = false;
22
23 // Now, parse the paths
24 char *next_file = search_path;
25@@ -3100,6 +3101,10 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
26 name = full_path;
27
28 VkResult local_res;
29+ if(!strcmp(name,"/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json")) {
30+ has_wsi_layer = true;
31+ continue;
32+ }
33 local_res = add_if_manifest_file(inst, name, out_files);
34
35 // Incomplete means this was not a valid data file.
36@@ -3110,6 +3115,13 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
37 break;
38 }
39 }
40+
41+ if(has_wsi_layer) {
42+ name = "/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json";
43+ vk_result = add_if_manifest_file(inst, name, out_files);
44+ has_wsi_layer = false;
45+ }
46+
47 loader_closedir(inst, dir_stream);
48 if (vk_result != VK_SUCCESS) {
49 goto out;
diff --git a/recipes-graphics/vulkan/vulkan-loader_%.bbappend b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
new file mode 100644
index 000000000..8f28ab1be
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
@@ -0,0 +1,10 @@
1SRC_URI:append:imx-nxp-bsp = " \
2 file://0001-LF-11869-change-mali-wsi-layer-activating-order.patch \
3"
4
5PACKAGE_ARCH:imx-nxp-bsp = "${MACHINE_SOCARCH}"
6
7# libvulkan.so is loaded dynamically, so put it in the main package
8SOLIBS:imx-nxp-bsp = ".so*"
9FILES_SOLIBSDEV:imx-nxp-bsp = ""
10INSANE_SKIP:${PN}:imx-nxp-bsp += "dev-so"
diff --git a/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.imx.bbappend b/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.imx.bbappend
deleted file mode 100644
index c1a9902b7..000000000
--- a/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.imx.bbappend
+++ /dev/null
@@ -1,9 +0,0 @@
1# libvulkan.so is loaded dynamically, so put it in the main package
2SOLIBS = ".so*"
3FILES_SOLIBSDEV = ""
4INSANE_SKIP:${PN} += "dev-so"
5
6# Override default mesa drivers with i.MX GPU drivers
7RRECOMMENDS:${PN}:imxvulkan = "libvulkan-imx"
8# Override default mesa drivers with i.MX GPU drivers
9RRECOMMENDS:${PN}:mx95-nxp-bsp = "mali-imx-libvulkan"
diff --git a/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.imx.bbappend b/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.imx.bbappend
new file mode 100644
index 000000000..8cac41b53
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.imx.bbappend
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:imx-nxp-bsp := "${THISDIR}/vulkan-loader-1.3.275.0.imx:"
diff --git a/recipes-graphics/vulkan/vulkan-loader_1.4.328.1.bbappend b/recipes-graphics/vulkan/vulkan-loader_1.4.328.1.bbappend
new file mode 100644
index 000000000..93f780c9c
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-loader_1.4.328.1.bbappend
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:imx-nxp-bsp := "${THISDIR}/vulkan-loader-1.4.328.1:"
diff --git a/recipes-graphics/vulkan/vulkan-wsi-layer/0001-MGS-6801-ccc-vkmark-on-wayland.patch b/recipes-graphics/vulkan/vulkan-wsi-layer/0001-MGS-6801-ccc-vkmark-on-wayland.patch
new file mode 100644
index 000000000..48cfcd765
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-wsi-layer/0001-MGS-6801-ccc-vkmark-on-wayland.patch
@@ -0,0 +1,30 @@
1From ada74fb0ca3099f33d173eb664bd7e42025a3277 Mon Sep 17 00:00:00 2001
2From: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
3Date: Mon, 9 Dec 2024 09:15:11 +0800
4Subject: [PATCH 1/2] MGS-6801 [#ccc] vkmark on wayland
5
6Extend the wayland surface properties with VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
7
8Upstream-Status: Inappropriate [i.MX-specific]
9Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
10Signed-off-by: Jiyu Yang <jiyu.yang@nxp.com>
11---
12 wsi/wayland/surface_properties.cpp | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/wsi/wayland/surface_properties.cpp b/wsi/wayland/surface_properties.cpp
16index e6435b9..bc1a737 100644
17--- a/wsi/wayland/surface_properties.cpp
18+++ b/wsi/wayland/surface_properties.cpp
19@@ -89,7 +89,7 @@ VkResult surface_properties::get_surface_capabilities(VkPhysicalDevice physical_
20
21 /* Composite alpha */
22 pSurfaceCapabilities->supportedCompositeAlpha = static_cast<VkCompositeAlphaFlagBitsKHR>(
23- VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR | VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR);
24+ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR | VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR);
25 return VK_SUCCESS;
26 }
27
28--
292.37.1
30
diff --git a/recipes-graphics/vulkan/vulkan-wsi-layer/0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch b/recipes-graphics/vulkan/vulkan-wsi-layer/0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch
new file mode 100644
index 000000000..9955f415e
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-wsi-layer/0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch
@@ -0,0 +1,243 @@
1From 4293d8835eaa45168c070793eefd8867c6ec7605 Mon Sep 17 00:00:00 2001
2From: Yuan Tian <yuan.tian@nxp.com>
3Date: Thu, 27 Jul 2023 18:25:16 +0800
4Subject: [PATCH 2/2] MGS-6823 [#nxp] Add support of
5 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR feature
6
7Mali vulkan driver doesn't support VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR. It caused unwanted blending effect in many vulkan cases.
8Add support of this feature to solve the problem.
9
10Upstream-Status: Inappropriate [i.MX-specific]
11Signed-off-by: Yuan Tian <yuan.tian@nxp.com>
12Signed-off-by: Jiyu Yang <jiyu.yang@nxp.com>
13---
14 wsi/wayland/swapchain.cpp | 161 ++++++++++++++++++++++++++++++++++++++
15 wsi/wayland/swapchain.hpp | 9 +++
16 2 files changed, 170 insertions(+)
17
18Index: git/wsi/wayland/swapchain.cpp
19===================================================================
20--- git.orig/wsi/wayland/swapchain.cpp
21+++ git/wsi/wayland/swapchain.cpp
22@@ -38,6 +38,7 @@
23 #include <cstdio>
24 #include <climits>
25 #include <functional>
26+#include <poll.h>
27
28 #include "util/drm/drm_utils.hpp"
29 #include "util/log.hpp"
30@@ -72,12 +73,152 @@ swapchain::~swapchain()
31 wsialloc_delete(m_wsi_allocator);
32 }
33 m_wsi_allocator = nullptr;
34+ if (wlc.opaque_region)
35+ {
36+ wl_compositor_destroy(wlc.wl_compositor);
37+ wl_registry_destroy(wlc.registry);
38+ wl_region_destroy(wlc.opaque_region);
39+ wlc = {0};
40+ }
41 if (m_buffer_queue != nullptr)
42 {
43 wl_event_queue_destroy(m_buffer_queue);
44 }
45 }
46
47+static inline int
48+poll_event(struct wl_display *wl_dpy, short int events, int timeout)
49+{
50+ int ret;
51+ struct pollfd pfd[1];
52+
53+ pfd[0].fd = wl_display_get_fd(wl_dpy);
54+ pfd[0].events = events;
55+
56+ do
57+ {
58+ ret = poll(pfd, 1, timeout);
59+ }
60+ while (ret == -1 && errno == EINTR);
61+
62+ return ret;
63+}
64+
65+static int
66+dispatch_queue_op(struct wl_display *wl_dpy,
67+ struct wl_event_queue *wl_queue, int timeout)
68+{
69+ int ret;
70+
71+ if (wl_display_prepare_read_queue(wl_dpy, wl_queue) == -1)
72+ {
73+ return wl_display_dispatch_queue_pending(wl_dpy, wl_queue);
74+ }
75+
76+ for (;;)
77+ {
78+ ret = wl_display_flush(wl_dpy);
79+
80+ if (ret != -1 || errno != EAGAIN)
81+ break;
82+
83+ if (poll_event(wl_dpy, POLLOUT, -1) == -1)
84+ {
85+ wl_display_cancel_read(wl_dpy);
86+ return -1;
87+ }
88+ }
89+
90+ /* Don't stop if flushing hits an EPIPE; continue so we can read any
91+ * protocol error that may have triggered it. */
92+ if (ret < 0 && errno != EPIPE)
93+ {
94+ wl_display_cancel_read(wl_dpy);
95+ return -1;
96+ }
97+
98+ ret = poll_event(wl_dpy, POLLIN, timeout);
99+
100+ /* cancel read when on error or timeout. */
101+ if (ret == -1 || ret == 0)
102+ {
103+ wl_display_cancel_read(wl_dpy);
104+ return ret;
105+ }
106+
107+ if (wl_display_read_events(wl_dpy) == -1)
108+ return -1;
109+
110+ return wl_display_dispatch_queue_pending(wl_dpy, wl_queue);
111+}
112+
113+static void
114+sync_callback(void *data, struct wl_callback *callback, uint32_t serial)
115+{
116+ int *done = (int *)data;
117+
118+ *done = 1;
119+ wl_callback_destroy(callback);
120+}
121+
122+static const struct wl_callback_listener sync_listener = {
123+ sync_callback
124+};
125+
126+static int
127+roundtrip_queue(struct wl_display *wl_dpy, struct wl_event_queue *wl_queue)
128+{
129+ struct wl_callback *callback;
130+ int done, ret = 0;
131+
132+ done = 0;
133+
134+ /*
135+ * This is to block read & dispatch events in other threads, so that the
136+ * callback is with correct queue and listener when 'done' event.
137+ */
138+ while (wl_display_prepare_read_queue(wl_dpy, wl_queue) == -1)
139+ wl_display_dispatch_queue_pending(wl_dpy, wl_queue);
140+
141+ callback = wl_display_sync(wl_dpy);
142+
143+ if (callback == NULL)
144+ {
145+ wl_display_cancel_read(wl_dpy);
146+ return -1;
147+ }
148+
149+ wl_proxy_set_queue((struct wl_proxy *) callback, wl_queue);
150+ wl_callback_add_listener(callback, &sync_listener, &done);
151+
152+ wl_display_cancel_read(wl_dpy);
153+
154+ while (!done && ret >= 0)
155+ ret = dispatch_queue_op(wl_dpy, wl_queue, 5);
156+
157+ if (ret == -1 && !done)
158+ wl_callback_destroy(callback);
159+
160+ return ret;
161+}
162+
163+static void
164+registry_handle_global(void *data, struct wl_registry *registry, uint32_t name,
165+ const char *interface, uint32_t version)
166+{
167+ wl_context *pwlc = (wl_context *)data;
168+
169+ if(!pwlc->wl_compositor)
170+ {
171+ pwlc->wl_compositor = (wl_compositor *)wl_registry_bind(registry, name, &wl_compositor_interface, 1);
172+ wl_proxy_set_queue((struct wl_proxy *)pwlc->wl_compositor, pwlc->wl_queue);
173+ }
174+}
175+
176+static const struct wl_registry_listener registry_listener = {
177+ registry_handle_global
178+};
179+
180 VkResult swapchain::init_platform(VkDevice device, const VkSwapchainCreateInfoKHR *swapchain_create_info,
181 bool &use_presentation_thread)
182 {
183@@ -124,6 +265,21 @@ VkResult swapchain::init_platform(VkDevi
184 use_presentation_thread =
185 WAYLAND_FIFO_PRESENTATION_THREAD_ENABLED && (m_present_mode != VK_PRESENT_MODE_MAILBOX_KHR);
186
187+ if (swapchain_create_info->compositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR)
188+ {
189+ wlc.wl_queue = m_buffer_queue;
190+ wlc.registry = wl_display_get_registry(m_display);
191+ wl_proxy_set_queue((struct wl_proxy *)(wlc.registry), m_buffer_queue);
192+ wl_registry_add_listener(wlc.registry, &registry_listener, &wlc);
193+
194+ roundtrip_queue(m_display, m_buffer_queue);
195+
196+ wlc.opaque_region = wl_compositor_create_region(wlc.wl_compositor);
197+ wl_proxy_set_queue((struct wl_proxy *)(wlc.opaque_region), m_buffer_queue);
198+
199+ wl_region_add(wlc.opaque_region, 0, 0, swapchain_create_info->imageExtent.width, swapchain_create_info->imageExtent.height);
200+ }
201+
202 return VK_SUCCESS;
203 }
204
205@@ -494,6 +650,11 @@ void swapchain::present_image(const pend
206 set_error_state(VK_ERROR_SURFACE_LOST_KHR);
207 }
208
209+ if (wlc.opaque_region)
210+ {
211+ wl_surface_set_opaque_region(m_surface, wlc.opaque_region);
212+ }
213+
214 wl_surface_attach(m_surface, image_data->buffer, 0, 0);
215
216 auto present_sync_fd = image_data->present_fence.export_sync_fd();
217Index: git/wsi/wayland/swapchain.hpp
218===================================================================
219--- git.orig/wsi/wayland/swapchain.hpp
220+++ git/wsi/wayland/swapchain.hpp
221@@ -78,6 +78,14 @@ struct image_creation_parameters
222 }
223 };
224
225+struct wl_context
226+{
227+ struct wl_event_queue *wl_queue;
228+ struct wl_compositor *wl_compositor;
229+ struct wl_registry *registry;
230+ struct wl_region *opaque_region;
231+};
232+
233 class swapchain : public wsi::swapchain_base
234 {
235 public:
236@@ -190,6 +198,7 @@ private:
237
238 struct wl_display *m_display;
239 struct wl_surface *m_surface;
240+ struct wl_context wlc = {0};
241 /** Raw pointer to the WSI Surface that this swapchain was created from. The Vulkan specification ensures that the
242 * surface is valid until swapchain is destroyed. */
243 surface *m_wsi_surface;
diff --git a/recipes-graphics/vulkan/vulkan-wsi-layer/0003-Update-minimum-version-of-CMake.patch b/recipes-graphics/vulkan/vulkan-wsi-layer/0003-Update-minimum-version-of-CMake.patch
new file mode 100644
index 000000000..0bc00de02
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-wsi-layer/0003-Update-minimum-version-of-CMake.patch
@@ -0,0 +1,32 @@
1From 0c4ed8178a25135ced9df8c8a8909e2882bfe869 Mon Sep 17 00:00:00 2001
2From: Maged Elnaggar <maged.elnaggar@arm.com>
3Date: Tue, 17 Jun 2025 10:33:44 +0000
4Subject: [PATCH] Update minimum version of CMake
5
6Set CMake minimum required version range to 3.4.3...4.0
7to silence compatibility errors in CMake 4.0
8by explicitly opting into all policies up to 4.0
9
10Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer/-/commit/1eafebc56a7f735cd4e8298956d596c64ac9f681]
11Signed-off-by: Maged Elnaggar <maged.elnaggar@arm.com>
12Change-Id: I2e0527dde4e764e9c17f519fc0ddd3c0e382fa31
13---
14 CMakeLists.txt | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/CMakeLists.txt b/CMakeLists.txt
18index 4dc800c..b91cd54 100644
19--- a/CMakeLists.txt
20+++ b/CMakeLists.txt
21@@ -20,7 +20,7 @@
22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 # SOFTWARE.
24
25-cmake_minimum_required(VERSION 3.4.3)
26+cmake_minimum_required(VERSION 3.4.3...4.0)
27 project(VkLayer_window_system_integration)
28
29 find_package(PkgConfig REQUIRED)
30--
312.34.1
32
diff --git a/recipes-graphics/vulkan/vulkan-wsi-layer_git.bb b/recipes-graphics/vulkan/vulkan-wsi-layer_git.bb
new file mode 100644
index 000000000..efa6accb3
--- /dev/null
+++ b/recipes-graphics/vulkan/vulkan-wsi-layer_git.bb
@@ -0,0 +1,54 @@
1DESCRIPTION = "Vulkan Window System Integration Layer"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://LICENSE;md5=c2e771b72d60a13d2de384cb49055d00"
4DEPENDS = "libdrm vulkan-loader"
5
6PV = "0.0+git${SRCPV}"
7
8SRC_URI = "git://gitlab.freedesktop.org/mesa/vulkan-wsi-layer.git;protocol=https;branch=main \
9 file://0001-MGS-6801-ccc-vkmark-on-wayland.patch \
10 file://0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch \
11 file://0003-Update-minimum-version-of-CMake.patch"
12SRCREV = "cb1a50cf7e640ad7306e673131ded98c0f133628"
13
14inherit cmake pkgconfig
15
16PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'headless', d)}"
17
18PACKAGECONFIG[headless] = " \
19 -DBUILD_WSI_HEADLESS=1, \
20 -DBUILD_WSI_HEADLESS=0, \
21 ,,, \
22 wayland"
23PACKAGECONFIG[wayland] = " \
24 -DBUILD_WSI_WAYLAND=1 -DENABLE_WAYLAND_FIFO_PRESENTATION_THREAD=1 -DSELECT_EXTERNAL_ALLOCATOR=dma_buf_heaps, \
25 -DBUILD_WSI_WAYLAND=0, \
26 wayland wayland-native wayland-protocols,,, \
27 headless"
28
29EXTRA_OECMAKE = " \
30 -DBUILD_WSI_DISPLAY=0 \
31 -DBUILD_WSI_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN=1 \
32 -DCMAKE_BUILD_TYPE=Release \
33 -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
34 -DENABLE_INSTRUMENTATION=1 \
35 -DKERNEL_HEADER_DIR=${KERNEL_HEADER_DIR} \
36 -DVULKAN_WSI_LAYER_EXPERIMENTAL=0 "
37
38# The KERNEL_HEADER_DIR setting is required by the CMake apparently
39# in order to find the DRM headers. However, the Yocto build provides
40# the DRM headers via a separate recipe libdrm in order to avoid the
41# kernel dependency. The CMake fails if the variable is not defined,
42# so set it to an invalid value in case the build ever actually needs
43# the kernel headers for something else.
44KERNEL_HEADER_DIR = "KERNEL_HEADER_DIR_NOT_PROVIDED_BY_YOCTO"
45
46do_install() {
47 install -d ${D}${sysconfdir}/vulkan/implicit_layer.d
48 install -m 0755 ${B}/libVkLayer_window_system_integration.so ${D}${sysconfdir}/vulkan/implicit_layer.d/
49 install -m 0644 ${B}/VkLayer_window_system_integration.json ${D}${sysconfdir}/vulkan/implicit_layer.d
50}
51
52# Adjust packaging variables for unversioned library
53SOLIBS = ".so"
54FILES_SOLIBSDEV = ""
diff --git a/recipes-graphics/wayland/wayland-protocols_1.32.imx.bb b/recipes-graphics/wayland/wayland-protocols_1.41.imx.bb
index 131f227de..3350a4795 100644
--- a/recipes-graphics/wayland/wayland-protocols_1.32.imx.bb
+++ b/recipes-graphics/wayland/wayland-protocols_1.41.imx.bb
@@ -11,12 +11,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c7b12b6702da38ca028ace54aae3d484 \
11 11
12SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH}" 12SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH}"
13WAYLAND_PROTOCOLS_SRC ?= "git://github.com/nxp-imx/wayland-protocols-imx.git;protocol=https" 13WAYLAND_PROTOCOLS_SRC ?= "git://github.com/nxp-imx/wayland-protocols-imx.git;protocol=https"
14SRCBRANCH = "wayland-protocols-imx-${@oe.utils.trim_version("${PV}", 2)}" 14SRCBRANCH = "wayland-protocols-imx-1.41"
15SRCREV = "7ece577d467f8afb2f5a2f7fff3761a1e0ee9dad" 15SRCREV = "7213a4e09837c77112bce2d241491600e00dd095"
16 16
17S = "${WORKDIR}/git" 17UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags"
18UPSTREAM_CHECK_REGEX = "releases/(?P<pver>.+)"
18 19
19UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" 20DEPENDS += "wayland-native"
20 21
21# NOTE: For i.MX drop allarch since the recipe is SOCARCH 22# NOTE: For i.MX drop allarch since the recipe is SOCARCH
22#inherit meson pkgconfig allarch 23#inherit meson pkgconfig allarch
@@ -24,9 +25,6 @@ inherit meson pkgconfig
24 25
25EXTRA_OEMESON += "-Dtests=false" 26EXTRA_OEMESON += "-Dtests=false"
26 27
27PACKAGES = "${PN}"
28FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
29
30BBCLASSEXTEND = "native nativesdk" 28BBCLASSEXTEND = "native nativesdk"
31 29
32PACKAGE_ARCH = "${MACHINE_SOCARCH}" 30PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-graphics/wayland/weston_10.0.5.imx.bb b/recipes-graphics/wayland/weston_10.0.5.imx.bb
index df2898f0a..4d7d99130 100644
--- a/recipes-graphics/wayland/weston_10.0.5.imx.bb
+++ b/recipes-graphics/wayland/weston_10.0.5.imx.bb
@@ -68,7 +68,7 @@ PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
68# Weston on framebuffer 68# Weston on framebuffer
69PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev" 69PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev"
70# Weston on RDP 70# Weston on RDP
71PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" 71PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp,freerdp"
72# weston-launch 72# weston-launch
73PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm" 73PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm"
74# VA-API desktop recorder 74# VA-API desktop recorder
@@ -144,7 +144,7 @@ RDEPENDS:${PN}-xwayland += "xwayland"
144 144
145RDEPENDS:${PN} += "xkeyboard-config" 145RDEPENDS:${PN} += "xkeyboard-config"
146RRECOMMENDS:${PN} = "weston-init liberation-fonts" 146RRECOMMENDS:${PN} = "weston-init liberation-fonts"
147RRECOMMENDS:${PN}-dev += "wayland-protocols" 147RDEPENDS:${PN}-dev += "wayland-protocols-dev"
148 148
149USERADD_PACKAGES = "${PN}" 149USERADD_PACKAGES = "${PN}"
150GROUPADD_PARAM:${PN} = "--system weston-launch" 150GROUPADD_PARAM:${PN} = "--system weston-launch"
@@ -165,8 +165,7 @@ SRC_URI:prepend = "git://github.com/nxp-imx/weston-imx.git;protocol=https;branch
165SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch \ 165SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch \
166 file://0001-g2d-renderer.c-Include-sys-stat.h.patch" 166 file://0001-g2d-renderer.c-Include-sys-stat.h.patch"
167SRCBRANCH = "weston-imx-10.0.5" 167SRCBRANCH = "weston-imx-10.0.5"
168SRCREV = "0cc822a1e5a8faea6835a4e9259887d8792b86b4" 168SRCREV = "7129417ae04de57f9596ccf27f74ef967660a64f"
169S = "${WORKDIR}/git"
170 169
171# Disable OpenGL for parts with GPU support for 2D but not 3D 170# Disable OpenGL for parts with GPU support for 2D but not 3D
172REQUIRED_DISTRO_FEATURES = "opengl" 171REQUIRED_DISTRO_FEATURES = "opengl"
@@ -206,6 +205,6 @@ EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
206LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined" 205LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
207 206
208PACKAGE_ARCH = "${MACHINE_SOCARCH}" 207PACKAGE_ARCH = "${MACHINE_SOCARCH}"
209COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)" 208COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
210 209
211########### End of i.MX overrides ######### 210########### End of i.MX overrides #########
diff --git a/recipes-graphics/wayland/weston_12.0.4.imx.bb b/recipes-graphics/wayland/weston_14.0.2.imx.bb
index 87593e4bd..c4f938e5a 100644
--- a/recipes-graphics/wayland/weston_12.0.4.imx.bb
+++ b/recipes-graphics/wayland/weston_14.0.2.imx.bb
@@ -3,7 +3,7 @@
3# recipe. The second section customizes the recipe for i.MX. 3# recipe. The second section customizes the recipe for i.MX.
4 4
5########### OE-core copy ################## 5########### OE-core copy ##################
6# Upstream hash: 92a460b55e7290ec0006365219189761f7226f7c 6# Upstream hash: 8996690a79ac42a1dee6d041eeb1c1fe29fdac84
7 7
8SUMMARY = "Weston, a Wayland compositor" 8SUMMARY = "Weston, a Wayland compositor"
9DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" 9DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
@@ -18,13 +18,12 @@ SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downlo
18 file://weston.desktop \ 18 file://weston.desktop \
19 file://xwayland.weston-start \ 19 file://xwayland.weston-start \
20 file://systemd-notify.weston-start \ 20 file://systemd-notify.weston-start \
21 file://0001-libweston-tools-Include-libgen.h-for-basename-signat.patch \
22 " 21 "
23 22
24SRC_URI[sha256sum] = "eb686a7cf00992a23b17f192fca9a887313e92c346ee35d8575196983d656b4a" 23SRC_URI[sha256sum] = "a8150505b126a59df781fe8c30c8e6f87da7013e179039eb844a5bbbcc7c79b3"
25 24
26UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" 25UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/weston/-/tags"
27UPSTREAM_CHECK_REGEX = "weston-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" 26UPSTREAM_CHECK_REGEX = "releases/(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
28 27
29inherit meson pkgconfig useradd 28inherit meson pkgconfig useradd
30 29
@@ -33,19 +32,18 @@ inherit meson pkgconfig useradd
33require ${THISDIR}/required-distro-features.inc 32require ${THISDIR}/required-distro-features.inc
34 33
35DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" 34DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
36DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" 35DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native libdisplay-info"
37 36
38LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" 37LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}"
39 38
40WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" 39WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
41 40
42EXTRA_OEMESON += "-Dpipewire=false" 41EXTRA_OEMESON += "-Dpipewire=false -Dtests=false"
43 42
44PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \ 43PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \
45 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ 44 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
46 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ 45 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
47 ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ 46 ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
48 launcher-libseat \
49 image-jpeg \ 47 image-jpeg \
50 screenshare \ 48 screenshare \
51 shell-desktop \ 49 shell-desktop \
@@ -61,7 +59,7 @@ SIMPLECLIENTS ?= "all"
61# Compositor choices 59# Compositor choices
62# 60#
63# Weston on KMS 61# Weston on KMS
64PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" 62PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev seatd virtual/egl virtual/libgles2 virtual/libgbm mtdev"
65# Weston on Wayland (nested Weston) 63# Weston on Wayland (nested Weston)
66PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" 64PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2"
67# Weston on X11 65# Weston on X11
@@ -69,7 +67,7 @@ PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libx
69# Headless Weston 67# Headless Weston
70PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" 68PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
71# Weston on RDP 69# Weston on RDP
72PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" 70PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp,freerdp"
73# VA-API desktop recorder 71# VA-API desktop recorder
74PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" 72PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva"
75# Weston with EGL support 73# Weston with EGL support
@@ -81,9 +79,7 @@ PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp"
81# Weston with systemd support 79# Weston with systemd support
82PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus" 80PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus"
83# Weston with Xwayland support (requires X11 and Wayland) 81# Weston with Xwayland support (requires X11 and Wayland)
84PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland" 82PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xwayland"
85# colord CMS support
86PACKAGECONFIG[colord] = "-Ddeprecated-color-management-colord=true,-Ddeprecated-color-management-colord=false,colord"
87# Clients support 83# Clients support
88PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" 84PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
89# Virtual remote output with GStreamer on DRM backend 85# Virtual remote output with GStreamer on DRM backend
@@ -100,10 +96,6 @@ PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
100PACKAGECONFIG[shell-kiosk] = "-Dshell-kiosk=true,-Dshell-kiosk=false" 96PACKAGECONFIG[shell-kiosk] = "-Dshell-kiosk=true,-Dshell-kiosk=false"
101# JPEG image loading support 97# JPEG image loading support
102PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" 98PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
103# support libseat based launch
104PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd"
105# deprecated and superseded by libseat launcher
106PACKAGECONFIG[launcher-logind] = "-Ddeprecated-launcher-logind=true,-Ddeprecated-launcher-logind=false,"
107# screencasting via PipeWire 99# screencasting via PipeWire
108PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire" 100PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire"
109# VNC remote screensharing 101# VNC remote screensharing
@@ -152,7 +144,7 @@ RDEPENDS:${PN}-xwayland += "xwayland"
152 144
153RDEPENDS:${PN} += "xkeyboard-config" 145RDEPENDS:${PN} += "xkeyboard-config"
154RRECOMMENDS:${PN} = "weston-init liberation-fonts" 146RRECOMMENDS:${PN} = "weston-init liberation-fonts"
155RRECOMMENDS:${PN}-dev += "wayland-protocols" 147RDEPENDS:${PN}-dev += "wayland-protocols-dev"
156 148
157USERADD_PACKAGES = "${PN}" 149USERADD_PACKAGES = "${PN}"
158GROUPADD_PARAM:${PN} = "--system weston-launch" 150GROUPADD_PARAM:${PN} = "--system weston-launch"
@@ -170,18 +162,17 @@ DEFAULT_PREFERENCE = "-1"
170SRC_URI:remove = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz" 162SRC_URI:remove = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz"
171SRC_URI:prepend = "${WESTON_SRC};branch=${SRCBRANCH} " 163SRC_URI:prepend = "${WESTON_SRC};branch=${SRCBRANCH} "
172WESTON_SRC ?= "git://github.com/nxp-imx/weston-imx.git;protocol=https" 164WESTON_SRC ?= "git://github.com/nxp-imx/weston-imx.git;protocol=https"
173SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch" 165SRCBRANCH = "weston-imx-14.0.2"
174SRCBRANCH = "weston-imx-12.0.4" 166SRCREV = "c267ba8e6eed3a824e042a200bcc1b4c370ba88f"
175SRCREV = "461c49d20677cfd36d01a95dafbd9eedf2a4b09c"
176S = "${WORKDIR}/git"
177 167
178PACKAGECONFIG_IMX_REMOVALS ?= "wayland x11"
179PACKAGECONFIG:remove = "${PACKAGECONFIG_IMX_REMOVALS}" 168PACKAGECONFIG:remove = "${PACKAGECONFIG_IMX_REMOVALS}"
169PACKAGECONFIG_IMX_REMOVALS ?= "wayland x11"
180 170
181PACKAGECONFIG:append = " ${PACKAGECONFIG_G2D}" 171PACKAGECONFIG:append = " ${PACKAGECONFIG_G2D}"
182PACKAGECONFIG_G2D ??= "" 172PACKAGECONFIG_G2D ??= ""
183PACKAGECONFIG_G2D:imxgpu2d ??= "imxg2d" 173PACKAGECONFIG_G2D:imxgpu2d ??= "imxg2d"
184PACKAGECONFIG_G2D:mx93-nxp-bsp ??= "imxg2d" 174PACKAGECONFIG_G2D:mx93-nxp-bsp ??= "imxg2d"
175PACKAGECONFIG_G2D:mx943-nxp-bsp ??= "imxg2d"
185 176
186# Weston with i.MX G2D renderer 177# Weston with i.MX G2D renderer
187PACKAGECONFIG[imxg2d] = "-Drenderer-g2d=true,-Drenderer-g2d=false,virtual/libg2d" 178PACKAGECONFIG[imxg2d] = "-Drenderer-g2d=true,-Drenderer-g2d=false,virtual/libg2d"
diff --git a/recipes-graphics/xwayland/xwayland_23.1.1.imx.bb b/recipes-graphics/xwayland/xwayland_24.1.6.imx.bb
index a9705a233..1d7ee80f6 100644
--- a/recipes-graphics/xwayland/xwayland_23.1.1.imx.bb
+++ b/recipes-graphics/xwayland/xwayland_24.1.6.imx.bb
@@ -1,6 +1,6 @@
1# This recipe copy helps keep meta-freescale master branch compatible 1# This recipe copy helps keep meta-freescale master branch compatible
2# with Yocto langdale. 2# with Yocto walnascar.
3# (From OE-Core rev: 35fdbd0ea81650a0421d50fb53989d96c5956331) 3# (From OE-Core rev: 737e612ca36bbdf415a911644eb7592cf9389846847b47fa46dc705bd754d2d7)
4 4
5SUMMARY = "XWayland is an X Server that runs under Wayland." 5SUMMARY = "XWayland is an X Server that runs under Wayland."
6DESCRIPTION = "XWayland is an X Server running as a Wayland client, \ 6DESCRIPTION = "XWayland is an X Server running as a Wayland client, \
@@ -16,22 +16,23 @@ LICENSE = "MIT"
16LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880" 16LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
17 17
18SRC_URI = "https://www.x.org/archive/individual/xserver/${BP_ORIGINAL}.tar.xz" 18SRC_URI = "https://www.x.org/archive/individual/xserver/${BP_ORIGINAL}.tar.xz"
19BP_ORIGINAL = "${BPN}-23.1.1" 19BP_ORIGINAL = "${BPN}-24.1.6"
20SRC_URI[sha256sum] = "fb9461f5cb9fea5e07e91882311b0c88b43e8843b017ebac05eb5af69aa34c15" 20SRC_URI[sha256sum] = "737e612ca36bbdf415a911644eb7592cf9389846847b47fa46dc705bd754d2d7"
21S = "${WORKDIR}/${BP_ORIGINAL}" 21S = "${UNPACKDIR}/${BP_ORIGINAL}"
22 22
23UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar" 23UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
24 24
25inherit meson features_check pkgconfig 25inherit meson features_check pkgconfig
26REQUIRED_DISTRO_FEATURES = "x11 opengl" 26REQUIRED_DISTRO_FEATURES = "x11 opengl"
27 27
28DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy libxcvt" 28DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy libxcvt libtirpc"
29 29
30OPENGL_PKGCONFIGS = "glx glamor dri3" 30OPENGL_PKGCONFIGS = "glx glamor dri3"
31PACKAGECONFIG ??= "${XORG_CRYPTO} \ 31PACKAGECONFIG ??= "${XORG_CRYPTO} ${XWAYLAND_EI} \
32 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \ 32 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
33" 33"
34PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false,libxshmfence" 34PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false,libxshmfence"
35PACKAGECONFIG[libdecor] = "-Dlibdecor=true,-Dlibdecor=false,libdecor"
35PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11" 36PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11"
36PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl" 37PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl"
37PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind" 38PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
@@ -42,6 +43,10 @@ XORG_CRYPTO ??= "openssl"
42PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl" 43PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl"
43PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle" 44PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle"
44PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt" 45PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt"
46XWAYLAND_EI ??= "xwayland_ei_false"
47PACKAGECONFIG[xwayland_ei_false] = "-Dxwayland_ei=false"
48PACKAGECONFIG[xwayland_ei_portal] = "-Dxwayland_ei=portal,,libei"
49PACKAGECONFIG[xwayland_ei_socket] = "-Dxwayland_ei=socket,,libei"
45 50
46do_install:append() { 51do_install:append() {
47 # remove files not needed and clashing with xserver-xorg 52 # remove files not needed and clashing with xserver-xorg
@@ -51,3 +56,7 @@ do_install:append() {
51FILES:${PN} += "${libdir}/xorg/protocol.txt" 56FILES:${PN} += "${libdir}/xorg/protocol.txt"
52 57
53RDEPENDS:${PN} += "xkbcomp" 58RDEPENDS:${PN} += "xkbcomp"
59
60CVE_STATUS_GROUPS = "CVE_STATUS_REDHAT"
61CVE_STATUS_REDHAT = "CVE-2025-26594 CVE-2025-26595 CVE-2025-26596 CVE-2025-26597 CVE-2025-26598 CVE-2025-26599 CVE-2025-26600 CVE-2025-26601"
62CVE_STATUS_REDHAT[status] = "fixed-version: these are tracked as versionless redhat CVEs in NVD DB, fixed in 24.1.6"
diff --git a/recipes-graphics/xwayland/xwayland_23.1.1.imx.bbappend b/recipes-graphics/xwayland/xwayland_24.1.6.imx.bbappend
index f71ba16c3..d8f5bdde5 100644
--- a/recipes-graphics/xwayland/xwayland_23.1.1.imx.bbappend
+++ b/recipes-graphics/xwayland/xwayland_24.1.6.imx.bbappend
@@ -6,10 +6,8 @@ SRC_URI:append:imxgpu = " \
6 6
7OPENGL_PKGCONFIGS:remove:imxgpu = "${OPENGL_PKGCONFIGS_REMOVE_IMXGPU}" 7OPENGL_PKGCONFIGS:remove:imxgpu = "${OPENGL_PKGCONFIGS_REMOVE_IMXGPU}"
8OPENGL_PKGCONFIGS_REMOVE_IMXGPU = "" 8OPENGL_PKGCONFIGS_REMOVE_IMXGPU = ""
9OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx6-nxp-bsp = "glamor glx" 9OPENGL_PKGCONFIGS_REMOVE_IMXGPU:imx-nxp-bsp = "glamor glx"
10OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx7-nxp-bsp = "glamor glx"
11OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx8-nxp-bsp = "glx" 10OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx8-nxp-bsp = "glx"
12OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx9-nxp-bsp = "glamor glx"
13 11
14# links with imx-gpu libs which are pre-built for glibc 12# links with imx-gpu libs which are pre-built for glibc
15# gcompat will address it during runtime 13# gcompat will address it during runtime
@@ -17,4 +15,4 @@ LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
17 15
18RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat" 16RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
19 17
20PACKAGE_ARCH = "${MACHINE_SOCARCH}" 18PACKAGE_ARCH:imxgpu = "${MACHINE_SOCARCH}"