mbox series

[meta-ti,master/kirkstone,PATCHv2,0/2] ti-img-rouge-umlibs: housekeeping and version bump

Message ID 20230530215827.3737116-1-rs@ti.com
Headers show
Series ti-img-rouge-umlibs: housekeeping and version bump | expand

Message

Randolph Sapp May 30, 2023, 9:58 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Well, I'm trying to be nice for those few that want a truly minimal
yocto environment. Let's see how long it takes before I regret it.

Split all Khronos API libs into their own packages and adjust
dependencies as necessary. Use mesa's fancy function to set some
variables. We won't set the provides or conflicts args just yet.
Software rendering is still nice to have as a fallback, but I'll drop it
if anyone in the community wants it gone for minimal image reasons.

Also bump the umlib and km versions. Add some rough gem support for now.
Should get some userspace applications like Chromium to start behaving a
little better. This is still experimental, but I don't think it'll break
anything that's already been working.

This version changes the libgles subdir to powervr-umlibs, keeping in
line with the naming convention used by the kernel modules.

Randolph Sapp (2):
  libgles: rename subdir to powervr-umlibs
  ti-img-rogue-umlibs: bump version and explicitly package

 .../ti-img-rogue-driver_23.1.6404501.bb       |   2 +-
 .../ti-img-rogue-umlibs_23.1.6404501.bb       |  73 ------------
 .../ti-img-rogue-umlibs_23.1.6404501.bb       | 112 ++++++++++++++++++
 .../ti-sgx-ddk-um/pvrsrvkm.rules              |   0
 .../ti-sgx-ddk-um_1.17.4948957.bb             |   0
 5 files changed, 113 insertions(+), 74 deletions(-)
 delete mode 100644 meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_23.1.6404501.bb
 create mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.1.6404501.bb
 rename meta-ti-bsp/recipes-graphics/{libgles => powervr-umlibs}/ti-sgx-ddk-um/pvrsrvkm.rules (100%)
 rename meta-ti-bsp/recipes-graphics/{libgles => powervr-umlibs}/ti-sgx-ddk-um_1.17.4948957.bb (100%)

Comments

Randolph Sapp June 2, 2023, 3:55 a.m. UTC | #1
On 5/30/23 16:58, Randolph Sapp via lists.yoctoproject.org wrote:
> 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 +-
>   .../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 (#16641): https://lists.yoctoproject.org/g/meta-ti/message/16641
> Mute This Topic: https://lists.yoctoproject.org/mt/99230102/7094281
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [rs@ti.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>