summaryrefslogtreecommitdiffstats
path: root/meta-ti-bsp/recipes-graphics
diff options
context:
space:
mode:
authorRandolph Sapp <rs@ti.com>2023-05-30 16:58:27 -0500
committerRyan Eatmon <reatmon@ti.com>2023-06-01 16:07:00 -0500
commit9af812fcd6704aff016469be791cde8b11d7f773 (patch)
tree93becdb84a583abbc73cad087a19fb1f4e6f1879 /meta-ti-bsp/recipes-graphics
parent2734d0d2905cfd0d2d3b13eed211a1ffb124e8d3 (diff)
downloadmeta-ti-9af812fcd6704aff016469be791cde8b11d7f773.tar.gz
ti-img-rogue-umlibs: bump version and explicitly package
Bump the version and explicitly package all Khronos APIs separately. This should be nice for those folks that want a headless opencl system for tinkering and such. This version includes experimental GEM support (for applications like Chromium that like to poke at the render node) and a new Vulkan ICD loader interface for better support with the Vulkan ICD loaders present in Yocto. This lifts a method from mesa used to force a common naming convention for Vulkan, OpenCL, and OpenGLES libs to make things a little easier to follow. Without it the target package names get scrambled based on the shared object name. Signed-off-by: Randolph Sapp <rs@ti.com> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Diffstat (limited to 'meta-ti-bsp/recipes-graphics')
-rw-r--r--meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb89
1 files changed, 64 insertions, 25 deletions
diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb
index f22cd1d1..3fcb786c 100644
--- a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb
+++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb
@@ -12,7 +12,7 @@ PR = "r2"
12 12
13BRANCH = "linuxws/kirkstone/k6.1/${PV}" 13BRANCH = "linuxws/kirkstone/k6.1/${PV}"
14SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}" 14SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
15SRCREV = "452b0f50d2984171c81d5a0d3b22198177d919ad" 15SRCREV = "bfacba50b004d0e93ee1f8b42d2217131453f5fd"
16S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}" 16S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
17 17
18TARGET_PRODUCT:j721e = "j721e_linux" 18TARGET_PRODUCT:j721e = "j721e_linux"
@@ -22,52 +22,91 @@ TARGET_PRODUCT:am62xx = "am62_linux"
22PVR_BUILD = "release" 22PVR_BUILD = "release"
23PVR_WS = "lws-generic" 23PVR_WS = "lws-generic"
24 24
25RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver" 25RDEPENDS:${PN} = " \
26 libdrm \
27 ti-img-rogue-driver \
28 ${PN}-firmware \
29"
26 30
27do_install:append() { 31do_install:append() {
28 if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then 32 if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
29 mv ${D}/lib/firmware ${D}${nonarch_base_libdir} 33 mv ${D}/lib/firmware ${D}${nonarch_base_libdir}
30 rmdir ${D}/lib 34 rmdir ${D}/lib
31 fi 35 fi
32 if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
33 rm -rf ${D}${libdir}/libVK_IMG.so*
34 fi
35 rm -rf "${D}/etc/init.d"
36} 36}
37 37
38PACKAGES = " \ 38PACKAGES = " \
39 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${PN}-vulkan", "", d)} \ 39 libgles1-rogue libgles1-rogue-dev \
40 libgles2-rogue libgles2-rogue-dev \
41 libgles3-rogue libgles3-rogue-dev \
42 libvk-rogue libvk-rogue-dev \
43 libopencl-rogue libopencl-rogue-dev \
44 libopencl-rogue-tools \
40 ${PN}-tools \ 45 ${PN}-tools \
41 ${PN}-firmware \ 46 ${PN}-firmware \
47 ${PN}-dev \
42 ${PN} \ 48 ${PN} \
43" 49"
44 50
45FILES:${PN}-vulkan = " \ 51# Inject variables so that packages don't get Debian-renamed (which would
46 ${datadir}/vulkan \ 52# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
47 ${libdir}/libVK_IMG.so* \ 53# libgl name to prevent colliding with swrast libs
48" 54python __anonymous() {
49RDEPENDS:${PN}-vulkan += " \ 55 suffix = ""
50 mesa-vulkan-drivers \ 56 if "-native" in d.getVar("PN"):
51 libdrm \ 57 suffix = "-native"
52 ti-img-rogue-driver \ 58 for p in (("vulkan", "libvk",),
53 libx11-xcb \ 59 ("gles", "libgles1", "libglesv1-cm1"),
54 wayland \ 60 ("gles", "libgles2", "libglesv2-2"),
55" 61 ("gles", "libgles3",),
56INSANE_SKIP:${PN}-vulkan += " \ 62 ("opencl", "libopencl",)):
57 already-stripped \ 63 mlprefix = d.getVar("MLPREFIX")
58 dev-so \ 64 fullp = mlprefix + p[1] + "-rogue" + suffix
59" 65 mlprefix = d.getVar("MLPREFIX")
66 pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
67 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
68 d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" + suffix)
69
70 # For -dev, the first element is both the Debian and original name
71 fullp = mlprefix + p[1] + "-rogue-dev" + suffix
72 pkgs = " " + mlprefix + p[1] + "-dev" + suffix
73 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
74}
75
76# gles specific shared objects
77FILES:libgles1-rogue = "${libdir}/libGLESv1*.so.*"
78FILES:libgles1-rogue-dev = "${libdir}/libGLESv1*.so"
79FILES:libgles2-rogue = "${libdir}/libGLESv2*.so.*"
80FILES:libgles2-rogue-dev = "${libdir}/libGLESv2*.so"
81RDEPENDS:libgles1-rogue += "mesa-megadriver"
82RDEPENDS:libgles2-rogue += "mesa-megadriver"
83RDEPENDS:libgles3-rogue-dev += "libgles2-rogue-dev"
84
85# vulkan specific shared objects and configs
86FILES:libvk-rogue = "${libdir}/libVK_IMG.so.* ${datadir}/vulkan"
87FILES:libvk-rogue-dev = "${libdir}/libVK_IMG.so"
88RDEPENDS:libvk-rogue += "vulkan-loader libx11-xcb wayland libdrm"
89
90# opencl specific shared objects and configs
91FILES:libopencl-rogue = "${libdir}/libPVROCL.so.* ${sysconfdir}/OpenCL"
92FILES:libopencl-rogue-dev = "${libdir}/libPVROCL.so"
93RDEPENDS:libopencl-rogue += "opencl-icd-loader"
94RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
95FILES:libopencl-rogue-tools += "${bindir}/ocl*"
60 96
97# optional tools and tests
61FILES:${PN}-tools = "${bindir}/" 98FILES:${PN}-tools = "${bindir}/"
62RDEPENDS:${PN}-tools = "python3-core" 99RDEPENDS:${PN}-tools = "python3-core ${PN}"
63 100
101# required firmware
64FILES:${PN}-firmware = "${base_libdir}/firmware/*" 102FILES:${PN}-firmware = "${base_libdir}/firmware/*"
65INSANE_SKIP:${PN}-firmware += "arch" 103INSANE_SKIP:${PN}-firmware += "arch"
66 104
67RRECOMMENDS:${PN} += " \ 105RRECOMMENDS:${PN} += " \
68 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${PN}-vulkan", "", d)} \ 106 ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "libgles1-rogue libgles2-rogue", "", d)} \
107 ${@bb.utils.contains("DISTRO_FEATURES", "vulkan x11 wayland", "libvk-rogue", "", d)} \
108 ${@bb.utils.contains("DISTRO_FEATURES", "opencl", "libopencl-rogue", "", d)} \
69 ${PN}-tools \ 109 ${PN}-tools \
70" 110"
71RDEPENDS:${PN} += " ${PN}-firmware"
72 111
73INSANE_SKIP:${PN} += "already-stripped dev-so" 112INSANE_SKIP:${PN} += "already-stripped dev-so"