summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/imx-gpu-viv
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics/imx-gpu-viv')
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc200
-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/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch32.bb9
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch64.bb27
5 files changed, 147 insertions, 107 deletions
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 3b05b2abd..e7d0188db 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -3,18 +3,19 @@
3# Copyright 2017-2024 NXP 3# Copyright 2017-2024 NXP
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
6SUMMARY = "i.MX Vivante GPU driver"
6DESCRIPTION = "GPU driver and apps for i.MX" 7DESCRIPTION = "GPU driver and apps for i.MX"
7HOMEPAGE = "https://www.nxp.com/" 8HOMEPAGE = "https://www.nxp.com/"
8SECTION = "libs" 9SECTION = "libs"
9LICENSE = "Proprietary" 10LICENSE = "LicenseRef-Proprietary"
10LIC_FILES_CHKSUM = "file://COPYING;md5=ea25d099982d035af85d193c88a1b479" 11LIC_FILES_CHKSUM ?= "file://COPYING;md5=ea25d099982d035af85d193c88a1b479"
11 12
12DEPENDS += " \ 13DEPENDS += "\
13 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ 14 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
14 bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \ 15 bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \
15 '', d), d)} \ 16 '', d), d)} \
16" 17"
17DEPENDS += " \ 18DEPENDS += "\
18 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \ 19 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \
19 '', d)} \ 20 '', d)} \
20" 21"
@@ -23,14 +24,14 @@ DEPENDS:append:mx8-nxp-bsp = " patchelf-native"
23 24
24DEPENDS:append:libc-musl = " gcompat" 25DEPENDS:append:libc-musl = " gcompat"
25 26
26PROVIDES += " \ 27PROVIDES += "\
27 imx-gpu-viv \ 28 imx-gpu-viv \
28 libgal-imx \ 29 libgal-imx \
29 virtual/egl \ 30 virtual/egl \
30 virtual/libopenvg \ 31 virtual/libopenvg \
31 ${EXTRA_PROVIDES} \ 32 ${EXTRA_PROVIDES} \
32" 33"
33EXTRA_PROVIDES = " \ 34EXTRA_PROVIDES = "\
34 ${PROVIDES_OPENCL} \ 35 ${PROVIDES_OPENCL} \
35 ${PROVIDES_OPENVX} \ 36 ${PROVIDES_OPENVX} \
36" 37"
@@ -43,21 +44,21 @@ EXTRA_PROVIDES:append:mx8-nxp-bsp = " \
43 virtual/libgbm \ 44 virtual/libgbm \
44" 45"
45 46
46PROVIDES_OPENCL = " \ 47PROVIDES_OPENCL = "\
47 opencl-headers \ 48 opencl-headers \
48 opencl-clhpp \ 49 opencl-clhpp \
49 opencl-icd-loader \ 50 opencl-icd-loader \
50 virtual/libopencl1 \ 51 virtual/libopencl1 \
51" 52"
52PROVIDES_OPENCL:mx7-nxp-bsp = "" 53PROVIDES_OPENCL:mx7-nxp-bsp = ""
53PROVIDES_OPENCL:mx8mm-nxp-bsp = "" 54PROVIDES_OPENCL:mx8mm-nxp-bsp = ""
54 55
55# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus. 56# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus.
56# However, only limited support is provided on other i.MX 8 machines 57# However, only limited support is provided on other i.MX 8 machines
57# as needed for i.MX machine learning packages. 58# as needed for i.MX machine learning packages.
58PROVIDES_OPENVX = "" 59PROVIDES_OPENVX = ""
59PROVIDES_OPENVX:mx8-nxp-bsp = "virtual/libopenvx" 60PROVIDES_OPENVX:mx8-nxp-bsp = "virtual/libopenvx"
60PROVIDES_OPENVX:mx8mm-nxp-bsp = "" 61PROVIDES_OPENVX:mx8mm-nxp-bsp = ""
61 62
62RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv" 63RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv"
63 64
@@ -65,7 +66,6 @@ PE = "1"
65 66
66inherit fsl-eula-unpack 67inherit fsl-eula-unpack
67 68
68FILESEXTRAPATHS:append := "${THISDIR}/imx-gpu-viv:"
69SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" 69SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
70 70
71S = "${UNPACKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}" 71S = "${UNPACKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}"
@@ -76,41 +76,47 @@ PACKAGECONFIG ?= ""
76PACKAGECONFIG[valgrind] = "" 76PACKAGECONFIG[valgrind] = ""
77 77
78# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below 78# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
79PACKAGES =+ " \ 79PACKAGES =+ "\
80 libgles1-imx libgles1-imx-dev \ 80 libgles1-imx libgles1-imx-dev \
81 libgles2-imx libgles2-imx-dev \ 81 libgles2-imx libgles2-imx-dev \
82 libgles3-imx-dev \ 82 libgles3-imx-dev \
83 libglslc-imx libglslc-imx-dev \ 83 libglslc-imx libglslc-imx-dev \
84 ${PACKAGES_OPENCL} \ 84 ${PACKAGES_OPENCL} \
85 libopenvg-imx libopenvg-imx-dev \ 85 libopenvg-imx libopenvg-imx-dev \
86 libvdk-imx libvdk-imx-dev \ 86 libvdk-imx libvdk-imx-dev \
87 libegl-imx libegl-imx-dev \ 87 libegl-imx libegl-imx-dev \
88 libgal-imx libgal-imx-dev \ 88 libgal-imx libgal-imx-dev \
89 libvsc-imx \ 89 libvsc-imx \
90 ${PACKAGES_GBM} \ 90 ${PACKAGES_GBM} \
91 imx-gpu-viv-tools \ 91 imx-gpu-viv-tools \
92 imx-gpu-viv-demos \ 92 imx-gpu-viv-demos \
93 ${PACKAGES_VULKAN} \ 93 ${PACKAGES_VULKAN} \
94 ${PACKAGES_OPENVX} \ 94 ${PACKAGES_OPENVX} \
95 libnn-imx \ 95 libnn-imx \
96 libspirv-imx \ 96 libspirv-imx \
97" 97"
98 98
99PACKAGES_GBM = "" 99PACKAGES_GBM = ""
100PACKAGES_GBM:mx8-nxp-bsp = "libgbm-imx libgbm-imx-dev" 100PACKAGES_GBM:mx8-nxp-bsp = "libgbm-imx libgbm-imx-dev"
101 101
102PACKAGES_OPENCL = "libclc-imx libopencl-imx libopencl-imx-dev" 102PACKAGES_OPENCL = "libclc-imx libopencl-imx libopencl-imx-dev"
103PACKAGES_OPENCL:mx7-nxp-bsp = "" 103PACKAGES_OPENCL:mx7-nxp-bsp = ""
104PACKAGES_OPENCL:mx8mm-nxp-bsp = "" 104PACKAGES_OPENCL:mx8mm-nxp-bsp = ""
105 105
106PACKAGES_OPENVX = \ 106PACKAGES_OPENVX = "${@bb.utils.contains("PROVIDES_OPENVX", "virtual/libopenvx", \
107 "${@bb.utils.contains("PROVIDES_OPENVX", "virtual/libopenvx", \ 107 "libopenvx-imx libopenvx-imx-dev", "", d)}"
108 "libopenvx-imx libopenvx-imx-dev", "", d)}"
109 108
110PACKAGES_VULKAN = "" 109PACKAGES_VULKAN = ""
111PACKAGES_VULKAN:imxvulkan = "libvulkan-imx libvulkan-imx-dev" 110PACKAGES_VULKAN:imxvulkan = "libvulkan-imx libvulkan-imx-dev"
112PACKAGES_VULKAN:mx8mm-nxp-bsp = "libvulkan-imx libvulkan-imx-dev" 111PACKAGES_VULKAN:mx8mm-nxp-bsp = "libvulkan-imx libvulkan-imx-dev"
113 112
113# libgbm-imx, libvulkan-imx and libopenvx-imx (and their -dev variants) enter
114# PACKAGES only through the machine-conditional PACKAGES_GBM/_VULKAN and the
115# PROVIDES_OPENVX-gated PACKAGES_OPENVX above. Declare them as potentially
116# present so their FILES/RDEPENDS/RPROVIDES/INSANE_SKIP assignments are
117# recognised even when the current parse does not activate those conditions.
118PACKAGES_DYNAMIC += "^libgbm-imx ^libvulkan-imx ^libopenvx-imx"
119
114python __anonymous () { 120python __anonymous () {
115 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0') 121 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
116 if has_vivante_kernel_driver_support != '1': 122 if has_vivante_kernel_driver_support != '1':
@@ -166,16 +172,16 @@ IS_MX8:mx8-nxp-bsp = "1"
166 172
167PACKAGE_FP_TYPE = "hardfp" 173PACKAGE_FP_TYPE = "hardfp"
168 174
169HAS_GBM = "false" 175HAS_GBM = "false"
170HAS_GBM:mx8-nxp-bsp = "true" 176HAS_GBM:mx8-nxp-bsp = "true"
171 177
172IMX_SOC = "IMX_SOC_NOT_SET" 178IMX_SOC = "IMX_SOC_NOT_SET"
173IMX_SOC:mx8qm-nxp-bsp = "mx8qm" 179IMX_SOC:mx8qm-nxp-bsp = "mx8qm"
174IMX_SOC:mx8qxp-nxp-bsp = "mx8qxp" 180IMX_SOC:mx8qxp-nxp-bsp = "mx8qxp"
175IMX_SOC:mx8dx-nxp-bsp = "mx8qxp" 181IMX_SOC:mx8dx-nxp-bsp = "mx8qxp"
176IMX_SOC:mx8mp-nxp-bsp = "mx8mp" 182IMX_SOC:mx8mp-nxp-bsp = "mx8mp"
177IMX_SOC:mx8mq-nxp-bsp = "mx8mq" 183IMX_SOC:mx8mq-nxp-bsp = "mx8mq"
178IMX_SOC:mx8mn-nxp-bsp = "mx8mn" 184IMX_SOC:mx8mn-nxp-bsp = "mx8mn"
179IMX_SOC:mx8ulp-nxp-bsp = "mx8ulp" 185IMX_SOC:mx8ulp-nxp-bsp = "mx8ulp"
180 186
181do_install () { 187do_install () {
@@ -183,17 +189,17 @@ do_install () {
183 install -d ${D}${includedir} 189 install -d ${D}${includedir}
184 install -d ${D}${bindir} 190 install -d ${D}${bindir}
185 191
186 cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir} 192 cp --no-preserve=ownership -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir}
187 cp -r ${S}/gpu-core/usr/include/* ${D}${includedir} 193 cp --no-preserve=ownership -r ${S}/gpu-core/usr/include/* ${D}${includedir}
188 cp -r ${S}/gpu-demos/opt ${D} 194 cp --no-preserve=ownership -r ${S}/gpu-demos/opt ${D}
189 cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir} 195 cp --no-preserve=ownership -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir}
190 196
191 # Use vulkan header from vulkan-headers recipe to support vkmark 197 # Use vulkan header from vulkan-headers recipe to support vkmark
192 rm -rf ${D}${includedir}/vulkan/ 198 rm -rf ${D}${includedir}/vulkan/
193 199
194 # Install SOC-specific drivers 200 # Install SOC-specific drivers
195 if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then 201 if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then
196 cp -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir} 202 cp --no-preserve=ownership -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir}
197 fi 203 fi
198 204
199 install -d ${D}${libdir}/pkgconfig 205 install -d ${D}${libdir}/pkgconfig
@@ -212,15 +218,15 @@ do_install () {
212 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl.pc ${D}${libdir}/pkgconfig/gl.pc 218 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl.pc ${D}${libdir}/pkgconfig/gl.pc
213 fi 219 fi
214 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc 220 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc
215 cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir} 221 cp --no-preserve=ownership -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
216 elif [ "${IS_MX8}" != "1" ]; then 222 elif [ "${IS_MX8}" != "1" ]; then
217 # Framebuffer backend for i.MX 6 and 7 223 # Framebuffer backend for i.MX 6 and 7
218 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc 224 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc
219 cp -r ${S}/gpu-core/usr/lib/fb/* ${D}${libdir} 225 cp --no-preserve=ownership -r ${S}/gpu-core/usr/lib/fb/* ${D}${libdir}
220 else 226 else
221 # Framebuffer backend for i.MX 8 and beyond 227 # Framebuffer backend for i.MX 8 and beyond
222 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl.pc ${D}${libdir}/pkgconfig/egl.pc 228 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl.pc ${D}${libdir}/pkgconfig/egl.pc
223 cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir} 229 cp --no-preserve=ownership -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
224 set -f 230 set -f
225 for f in ${FILES:libvdk-imx} ${FILES:libvdk-imx-dev}; do 231 for f in ${FILES:libvdk-imx} ${FILES:libvdk-imx-dev}; do
226 set +f 232 set +f
@@ -233,7 +239,7 @@ do_install () {
233 fi 239 fi
234 if [ "${BACKEND}" = "wayland" ] && [ "${IS_MX8}" != "1" ]; then 240 if [ "${BACKEND}" = "wayland" ] && [ "${IS_MX8}" != "1" ]; then
235 # Special case for libVDK on Wayland backend, deliver fb library as well. 241 # Special case for libVDK on Wayland backend, deliver fb library as well.
236 cp ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0 242 install -m 0644 ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0
237 fi 243 fi
238 244
239 if [ -z "${PACKAGES_OPENCL}" ]; then 245 if [ -z "${PACKAGES_OPENCL}" ]; then
@@ -317,96 +323,112 @@ do_install:append:libc-musl() {
317 323
318ALLOW_EMPTY:${PN} = "1" 324ALLOW_EMPTY:${PN} = "1"
319 325
320FILES:libclc-imx = "${libdir}/libCLC${SOLIBS}" 326FILES:libclc-imx += "${libdir}/libCLC${SOLIBS}"
321 327
322FILES:libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBS} " 328FILES:libegl-imx += "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBS} "
323FILES:libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" 329FILES:libegl-imx-dev += "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
324# libEGL.so is used by some demo apps from Freescale 330# libEGL.so is used by some demo apps from Freescale
331# nooelint: oelint.vars.insaneskip
325INSANE_SKIP:libegl-imx += "dev-so" 332INSANE_SKIP:libegl-imx += "dev-so"
326 333
327FILES:libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" 334FILES:libgal-imx += "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
328RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}" 335RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}"
329RPROVIDES:libgal-imx += "libgal-imx" 336RPROVIDES:libgal-imx += "libgal-imx"
330RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv" 337RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv"
338# Prebuilt Vivante blob: its build-time dependencies are not expressed as recipe
339# DEPENDS, so the build-deps QA check cannot be satisfied here.
340# nooelint: oelint.vars.insaneskip
331INSANE_SKIP:libgal-imx += "build-deps" 341INSANE_SKIP:libgal-imx += "build-deps"
332 342
333FILES:libvsc-imx = "${libdir}/libVSC${SOLIBS}" 343FILES:libvsc-imx += "${libdir}/libVSC${SOLIBS}"
334 344
335FILES:libgbm-imx = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBS} ${libdir}/libgbm_viv${SOLIBS}" 345FILES:libgbm-imx += "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBS} ${libdir}/libgbm_viv${SOLIBS}"
336FILES:libgbm-imx-dev = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" 346FILES:libgbm-imx-dev += "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
337RDEPENDS:libgbm-imx:append = " libdrm" 347RDEPENDS:libgbm-imx:append = " libdrm"
348# libgbm ships its unversioned .so in the runtime package for dlopen consumers.
349# nooelint: oelint.vars.insaneskip
338INSANE_SKIP:libgbm-imx += "dev-so" 350INSANE_SKIP:libgbm-imx += "dev-so"
339 351
340FILES:libvulkan-imx = "\ 352FILES:libvulkan-imx += "\
341 ${libdir}/libvulkan_VSI${REALSOLIBS} \ 353 ${libdir}/libvulkan_VSI${REALSOLIBS} \
342 ${sysconfdir}/vulkan" 354 ${datadir}/vulkan"
343FILES:libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}" 355FILES:libvulkan-imx-dev += "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
344RPROVIDES:libvulkan-imx = "virtual-vulkan-icd" 356RPROVIDES:libvulkan-imx = "virtual-vulkan-icd"
345 357
346FILES:libspirv-imx = " \ 358FILES:libspirv-imx += "\
347 ${libdir}/libSPIRV_viv${SOLIBS} \ 359 ${libdir}/libSPIRV_viv${SOLIBS} \
348" 360"
349 361
350FILES:libopenvx-imx = " \ 362FILES:libopenvx-imx += "\
351 ${libdir}/libOpenVX${REALSOLIBS} \ 363 ${libdir}/libOpenVX${REALSOLIBS} \
352 ${libdir}/libOpenVXC${SOLIBS} \ 364 ${libdir}/libOpenVXC${SOLIBS} \
353 ${libdir}/libOpenVXU${SOLIBS} \ 365 ${libdir}/libOpenVXU${SOLIBS} \
354 ${libdir}/libOvx*${SOLIBS} \ 366 ${libdir}/libOvx*${SOLIBS} \
355 ${libdir}/libArchModelSw${SOLIBS} \ 367 ${libdir}/libArchModelSw${SOLIBS} \
356" 368"
357FILES:libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}" 369FILES:libopenvx-imx-dev += "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}"
358RDEPENDS:libopenvx-imx = "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}" 370RDEPENDS:libopenvx-imx = "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}"
359OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES = "" 371OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES = ""
360OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8qm-nxp-bsp = "libclc-imx libopencl-imx-dev" 372OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8qm-nxp-bsp = "libclc-imx libopencl-imx-dev"
361OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8mp-nxp-bsp = "libclc-imx libopencl-imx-dev" 373OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8mp-nxp-bsp = "libclc-imx libopencl-imx-dev"
374# The runtime package pulls -dev packages (OpenCL/VX intrinsic extensions) by
375# design; the dev-deps QA check does not fit this prebuilt driver layout.
376# nooelint: oelint.vars.insaneskip
362INSANE_SKIP:libopenvx-imx += "dev-deps" 377INSANE_SKIP:libopenvx-imx += "dev-deps"
363 378
364FILES:libgles1-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}" 379FILES:libgles1-imx += "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}"
365FILES:libgles1-imx-dev = "${includedir}/GLES ${libdir}/pkgconfig/glesv1_cm.pc" 380FILES:libgles1-imx-dev += "${includedir}/GLES ${libdir}/pkgconfig/glesv1_cm.pc"
366RPROVIDES:libgles1-imx = "libgles-imx" 381RPROVIDES:libgles1-imx = "libgles-imx"
367RPROVIDES:libgles1-imx-dev = "libgles-imx-dev" 382RPROVIDES:libgles1-imx-dev = "libgles-imx-dev"
368# libEGL does dlopen of libGLESv1.so 383# libEGL does dlopen of libGLESv1.so
384# nooelint: oelint.vars.insaneskip
369INSANE_SKIP:libgles1-imx += "dev-so" 385INSANE_SKIP:libgles1-imx += "dev-so"
370 386
371FILES:libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}" 387FILES:libgles2-imx += "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}"
372FILES:libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" 388FILES:libgles2-imx-dev += "${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
373RDEPENDS:libgles2-imx = "libglslc-imx" 389RDEPENDS:libgles2-imx = "libglslc-imx"
374# libEGL does dlopen of libGLESv2.so 390# libEGL does dlopen of libGLESv2.so
391# nooelint: oelint.vars.insaneskip
375INSANE_SKIP:libgles2-imx += "dev-so" 392INSANE_SKIP:libgles2-imx += "dev-so"
376 393
377FILES:libgles3-imx-dev = "${includedir}/GLES3" 394FILES:libgles3-imx-dev += "${includedir}/GLES3"
378# as long as there is no libgles3: ship libgles3-dev along with 395# as long as there is no libgles3: ship libgles3-dev along with
379# libgles2-dev - otherwise GLES3 headers have to be added manually 396# libgles2-dev - otherwise GLES3 headers have to be added manually
380RDEPENDS:libgles2-imx-dev += "libgles3-imx-dev" 397RDEPENDS:libgles2-imx-dev += "libgles3-imx-dev"
381 398
382FILES:libglslc-imx = "${libdir}/libGLSLC${SOLIBS}" 399FILES:libglslc-imx += "${libdir}/libGLSLC${SOLIBS}"
383 400
384FILES:libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \ 401FILES:libopencl-imx += "${libdir}/libOpenCL${REALSOLIBS} \
385 ${libdir}/libVivanteOpenCL${SOLIBS} \ 402 ${libdir}/libVivanteOpenCL${SOLIBS} \
386 ${libdir}/libLLVM_viv${SOLIBS} \ 403 ${libdir}/libLLVM_viv${SOLIBS} \
387 ${sysconfdir}/OpenCL/vendors/Vivante.icd" 404 ${sysconfdir}/OpenCL/vendors/Vivante.icd"
388FILES:libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" 405FILES:libopencl-imx-dev += "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
389RDEPENDS:libopencl-imx = "libclc-imx" 406RDEPENDS:libopencl-imx = "libclc-imx"
390RPROVIDES:libopencl-imx = "virtual-opencl-icd" 407RPROVIDES:libopencl-imx = "virtual-opencl-icd"
391RPROVIDES:libopencl-imx:mx7-nxp-bsp = "" 408RPROVIDES:libopencl-imx:mx7-nxp-bsp = ""
392RPROVIDES:libopencl-imx:mx8mm-nxp-bsp = "" 409RPROVIDES:libopencl-imx:mx8mm-nxp-bsp = ""
393 410
394FILES:libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS} ${libdir}/libOpenVG*${SOLIBS}" 411FILES:libopenvg-imx += "${libdir}/libOpenVG*${REALSOLIBS} ${libdir}/libOpenVG*${SOLIBS}"
395FILES:libopenvg-imx-dev = "${includedir}/VG ${libdir}/pkgconfig/vg.pc" 412FILES:libopenvg-imx-dev += "${includedir}/VG ${libdir}/pkgconfig/vg.pc"
396# libEGL does dlopen of libOpenVG.so 413# libEGL does dlopen of libOpenVG.so
414# nooelint: oelint.vars.insaneskip
397INSANE_SKIP:libopenvg-imx += "dev-so" 415INSANE_SKIP:libopenvg-imx += "dev-so"
398 416
399FILES:libvdk-imx = "${libdir}/libVDK*${REALSOLIBS}" 417FILES:libvdk-imx += "${libdir}/libVDK*${REALSOLIBS}"
400FILES:libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}" 418FILES:libvdk-imx-dev += "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
401 419
402FILES:imx-gpu-viv-tools = "${bindir}/gmem_info" 420FILES:imx-gpu-viv-tools += "${bindir}/gmem_info"
403 421
404FILES:imx-gpu-viv-demos = "/opt" 422FILES:imx-gpu-viv-demos += "/opt"
423# Prebuilt demo binaries under /opt carry vendor rpaths and link the -dev
424# packages; the rpaths and dev-deps QA checks do not apply to them.
425# nooelint: oelint.vars.insaneskip
405INSANE_SKIP:imx-gpu-viv-demos += "rpaths dev-deps" 426INSANE_SKIP:imx-gpu-viv-demos += "rpaths dev-deps"
406 427
407FILES:libnn-imx = "${libdir}/libNN*${SOLIBS}" 428FILES:libnn-imx += "${libdir}/libNN*${SOLIBS}"
408 429
409# It will use gcompat at runtime therefore checking for these at compile time wont be useful as 430# It will use gcompat at runtime therefore checking for these at compile time wont be useful as
410# they dont match musl/gcompat but it should run fine 431# they dont match musl/gcompat but it should run fine
432# nooelint: oelint.vars.insaneskip
411INSANE_SKIP:append:libc-musl = " file-rdeps" 433INSANE_SKIP:append:libc-musl = " file-rdeps"
412 434
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
deleted file mode 100644
index f0e7d285d..000000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch32.bb
+++ /dev/null
@@ -1,9 +0,0 @@
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
deleted file mode 100644
index 38870add7..000000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p3.2-aarch64.bb
+++ /dev/null
@@ -1,9 +0,0 @@
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/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch32.bb
new file mode 100644
index 000000000..86a7c20a3
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch32.bb
@@ -0,0 +1,9 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
4
5IMX_SRCREV_ABBREV = "8626797"
6
7SRC_URI[sha256sum] = "db361e1f9db45f498fd669e1f58823d937d436e6fc797da6c710cf35609b47a9"
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.p4.4-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch64.bb
new file mode 100644
index 000000000..37db9098a
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p4.4-aarch64.bb
@@ -0,0 +1,27 @@
1require imx-gpu-viv-6.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
4
5IMX_SRCREV_ABBREV = "8626797"
6
7SRC_URI[sha256sum] = "8cc97005a7469c0e83139cf1b9a8106fa6f0a84fb6f87d0f6bb9808408305c28"
8
9do_install:prepend() {
10 if [ "${IS_MX8}" = "1" ]; then
11 if [ ! -z "${PACKAGES_VULKAN}" ]; then
12 mkdir -p ${S}/gpu-core/etc/vulkan/icd.d
13 mv ${S}/gpu-core/usr/share/vulkan/icd.d/verisilicon_icd.json ${S}/gpu-core/etc/vulkan/icd.d/imx_icd.json
14 fi
15 fi
16}
17
18do_install:append() {
19 if [ "${IS_MX8}" = "1" ]; then
20 if [ ! -z "${PACKAGES_VULKAN}" ]; then
21 install -d ${D}${datadir}/vulkan/icd.d
22 mv ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json ${D}${datadir}/vulkan/icd.d/verisilicon_icd.json
23 fi
24 fi
25}
26
27COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"