All of lore.kernel.org
 help / color / mirror / Atom feed
From: <rs@ti.com>
To: <reatmon@ti.com>, <denis@denix.org>, <detheridge@ti.com>
Cc: <meta-ti@lists.yoctoproject.org>, Randolph Sapp <rs@ti.com>
Subject: [meta-ti][master/kirkstone][PATCH 2/2] ti-img-rogue-umlibs: bump version and explicitly package
Date: Fri, 26 May 2023 20:58:37 -0500	[thread overview]
Message-ID: <20230527015837.231817-3-rs@ti.com> (raw)
In-Reply-To: <20230527015837.231817-1-rs@ti.com>

From: Randolph Sapp <rs@ti.com>

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>
---
 .../ti-img-rogue-driver_23.1.6404501.bb       |  2 +-
 .../rogue/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/rogue/ti-img-rogue-umlibs_23.1.6404501.bb b/meta-ti-bsp/recipes-graphics/rogue/ti-img-rogue-umlibs_23.1.6404501.bb
index f22cd1d1..3fcb786c 100644
--- a/meta-ti-bsp/recipes-graphics/rogue/ti-img-rogue-umlibs_23.1.6404501.bb
+++ b/meta-ti-bsp/recipes-graphics/rogue/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 \
     ${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"
-- 
2.40.1



      parent reply	other threads:[~2023-05-27  1:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-27  1:58 [meta-ti][master/kirkstone][PATCH 0/2] ti-img-rouge-umlibs: housekeeping and version bump rs
2023-05-27  1:58 ` [meta-ti][master/kirkstone][PATCH 1/2] ti-img-rouge-umlibs: move to new subdir rs
2023-05-30 15:51   ` Andrew Davis
2023-05-30 16:38     ` Randolph Sapp
2023-05-30 16:48       ` Andrew Davis
2023-05-27  1:58 ` rs [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230527015837.231817-3-rs@ti.com \
    --to=rs@ti.com \
    --cc=denis@denix.org \
    --cc=detheridge@ti.com \
    --cc=meta-ti@lists.yoctoproject.org \
    --cc=reatmon@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.