On 5/30/23 16:58, Randolph Sapp via lists.yoctoproject.org wrote:
From: Randolph Sapp <[email protected]>

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 <[email protected]>
---
  .../ti-img-rogue-driver_23.1.6404501.bb       |  2 +-
  .../ti-img-rogue-umlibs_23.1.6404501.bb       | 89 +++++++++++++------
  2 files changed, 65 insertions(+), 26 deletions(-)

diff --git 
a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.1.6404501.bb 
b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.1.6404501.bb
index 76e3d801..1a08a441 100644
--- 
a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.1.6404501.bb
+++ 
b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.1.6404501.bb
@@ -22,7 +22,7 @@ SRC_URI = 
"git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;
S = "${WORKDIR}/git" -SRCREV = "93c66ec66136654849809132b86d3b880ee96ed6"
+SRCREV = "ebddb087ef140ca83e4c30d66580b0bb33b003fd"
TARGET_PRODUCT:j721e = "j721e_linux"
  TARGET_PRODUCT:j721s2 = "j721s2_linux"
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"
BRANCH = "linuxws/kirkstone/k6.1/${PV}"
  SRC_URI = 
"git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
-SRCREV = "452b0f50d2984171c81d5a0d3b22198177d919ad"
+SRCREV = "bfacba50b004d0e93ee1f8b42d2217131453f5fd"
  S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
TARGET_PRODUCT:j721e = "j721e_linux"
@@ -22,52 +22,91 @@ TARGET_PRODUCT:am62xx = "am62_linux"
  PVR_BUILD = "release"
  PVR_WS = "lws-generic"
-RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
+RDEPENDS:${PN} = " \
+    libdrm \
+    ti-img-rogue-driver \
+    ${PN}-firmware \
+"
do_install:append() {
      if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', 
d)}; then
          mv ${D}/lib/firmware ${D}${nonarch_base_libdir}
          rmdir ${D}/lib
      fi
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; 
then
-        rm -rf ${D}${libdir}/libVK_IMG.so*
-    fi
-    rm -rf "${D}/etc/init.d"
  }
PACKAGES = " \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${PN}-vulkan", "", d)} \
+    libgles1-rogue libgles1-rogue-dev \
+    libgles2-rogue libgles2-rogue-dev \
+    libgles3-rogue libgles3-rogue-dev \
+    libvk-rogue libvk-rogue-dev \
+    libopencl-rogue libopencl-rogue-dev \
+    libopencl-rogue-tools \
      ${PN}-tools \
      ${PN}-firmware \
+    ${PN}-dev \

Rats, I just realized I left this in. This will break the required devlink for libpvr_dri_support.so

Expect a v3.

      ${PN} \
  "
-FILES:${PN}-vulkan = " \
-    ${datadir}/vulkan \
-    ${libdir}/libVK_IMG.so* \
-"
-RDEPENDS:${PN}-vulkan += " \
-    mesa-vulkan-drivers \
-    libdrm \
-    ti-img-rogue-driver \
-    libx11-xcb \
-    wayland \
-"
-INSANE_SKIP:${PN}-vulkan += " \
-    already-stripped \
-    dev-so \
-"
+# Inject variables so that packages don't get Debian-renamed (which would
+# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
+# libgl name to prevent colliding with swrast libs
+python __anonymous() {
+    suffix = ""
+    if "-native" in d.getVar("PN"):
+        suffix = "-native"
+    for p in (("vulkan", "libvk",),
+              ("gles", "libgles1", "libglesv1-cm1"),
+              ("gles", "libgles2", "libglesv2-2"),
+              ("gles", "libgles3",),
+              ("opencl", "libopencl",)):
+        mlprefix = d.getVar("MLPREFIX")
+        fullp = mlprefix + p[1] + "-rogue" + suffix
+        mlprefix = d.getVar("MLPREFIX")
+        pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
+        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
+        d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" 
+ suffix)
+
+        # For -dev, the first element is both the Debian and original name
+        fullp = mlprefix + p[1] + "-rogue-dev" + suffix
+        pkgs = " " + mlprefix + p[1] + "-dev" + suffix
+        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
+}
+
+# gles specific shared objects
+FILES:libgles1-rogue = "${libdir}/libGLESv1*.so.*"
+FILES:libgles1-rogue-dev = "${libdir}/libGLESv1*.so"
+FILES:libgles2-rogue = "${libdir}/libGLESv2*.so.*"
+FILES:libgles2-rogue-dev = "${libdir}/libGLESv2*.so"
+RDEPENDS:libgles1-rogue += "mesa-megadriver"
+RDEPENDS:libgles2-rogue += "mesa-megadriver"
+RDEPENDS:libgles3-rogue-dev += "libgles2-rogue-dev"
+
+# vulkan specific shared objects and configs
+FILES:libvk-rogue = "${libdir}/libVK_IMG.so.* ${datadir}/vulkan"
+FILES:libvk-rogue-dev = "${libdir}/libVK_IMG.so"
+RDEPENDS:libvk-rogue += "vulkan-loader libx11-xcb wayland libdrm"
+
+# opencl specific shared objects and configs
+FILES:libopencl-rogue = "${libdir}/libPVROCL.so.* ${sysconfdir}/OpenCL"
+FILES:libopencl-rogue-dev = "${libdir}/libPVROCL.so"
+RDEPENDS:libopencl-rogue += "opencl-icd-loader"
+RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
+FILES:libopencl-rogue-tools += "${bindir}/ocl*"
+# optional tools and tests
  FILES:${PN}-tools = "${bindir}/"
-RDEPENDS:${PN}-tools = "python3-core"
+RDEPENDS:${PN}-tools = "python3-core ${PN}"
+# required firmware
  FILES:${PN}-firmware = "${base_libdir}/firmware/*"
  INSANE_SKIP:${PN}-firmware += "arch"
RRECOMMENDS:${PN} += " \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${PN}-vulkan", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "libgles1-rogue libgles2-rogue", 
"", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "vulkan x11 wayland", "libvk-rogue", 
"", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opencl", "libopencl-rogue", "", 
d)} \
      ${PN}-tools \
  "
-RDEPENDS:${PN} += " ${PN}-firmware"
INSANE_SKIP:${PN} += "already-stripped dev-so"






-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#16650): 
https://lists.yoctoproject.org/g/meta-ti/message/16650
Mute This Topic: https://lists.yoctoproject.org/mt/99280003/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to