diff mbox series

[kirkstone,v7,1/3] meta-ti-bsp: graphics: Resolve dependency chain

Message ID 20230130232007.2393097-2-rs@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series Graphics, graphics, and more graphics | expand

Commit Message

Randolph Sapp Jan. 30, 2023, 11:20 p.m. UTC
Patched mesa will now be configured based on what virtual/gpudriver
preferred provider is selected. The gpu drivers will now runtime
recommend the associated um components.

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 ...-OpenEmbedded-nodistro-internal-aarc.patch | 29 --------
 ...bb => ti-img-rogue-driver_1.18.6276027.bb} | 20 +++---
 .../ti-sgx-ddk-km_1.17.4948957.bb             |  8 +--
 .../ti-img-rogue-umlibs_1.15.6133109.bb       | 71 -------------------
 .../ti-img-rogue-umlibs_1.18.6276027.bb       | 39 ++++++++++
 .../libgles/ti-sgx-ddk-um_1.17.4948957.bb     | 30 +-------
 .../mesa/mesa-gl_22.0.%.bbappend              |  1 +
 .../mesa/mesa_22.0.%.bbappend                 |  1 +
 .../recipes-graphics/mesa/pvr-mesa.inc        | 40 +++++++++++
 9 files changed, 97 insertions(+), 142 deletions(-)
 delete mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
 rename meta-ti-bsp/recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.15.6133109.bb => ti-img-rogue-driver_1.18.6276027.bb} (72%)
 delete mode 100644 meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
 create mode 100644 meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
 create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
 create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
 create mode 100644 meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc

Comments

Denys Dmytriyenko Jan. 31, 2023, 8:25 p.m. UTC | #1
On Mon, Jan 30, 2023 at 05:20:05PM -0600, Randolph Sapp via lists.yoctoproject.org wrote:
> Patched mesa will now be configured based on what virtual/gpudriver
> preferred provider is selected. The gpu drivers will now runtime
> recommend the associated um components.
> 
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  ...-OpenEmbedded-nodistro-internal-aarc.patch | 29 --------
>  ...bb => ti-img-rogue-driver_1.18.6276027.bb} | 20 +++---
>  .../ti-sgx-ddk-km_1.17.4948957.bb             |  8 +--

>  .../ti-img-rogue-umlibs_1.15.6133109.bb       | 71 -------------------
>  .../ti-img-rogue-umlibs_1.18.6276027.bb       | 39 ++++++++++

^^^ please, make it a diff by lowering the threshold, so it's easy to review:

https://git-scm.com/docs/git-format-patch#Documentation/git-format-patch.txt--Mltngt


>  .../libgles/ti-sgx-ddk-um_1.17.4948957.bb     | 30 +-------
>  .../mesa/mesa-gl_22.0.%.bbappend              |  1 +
>  .../mesa/mesa_22.0.%.bbappend                 |  1 +
>  .../recipes-graphics/mesa/pvr-mesa.inc        | 40 +++++++++++
>  9 files changed, 97 insertions(+), 142 deletions(-)
>  delete mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
>  rename meta-ti-bsp/recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.15.6133109.bb => ti-img-rogue-driver_1.18.6276027.bb} (72%)
>  delete mode 100644 meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>  create mode 100644 meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> 
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
> deleted file mode 100644
> index f021cc39..00000000
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 80d32fee3d768abbd77cce77ea9a7574651460a9 Mon Sep 17 00:00:00 2001
> -From: Denys Dmytriyenko <denis@denix.org>
> -Date: Wed, 7 Jul 2021 13:11:56 -0400
> -Subject: [PATCH] compiler: support OpenEmbedded "nodistro" internal aarch64
> - toolchain
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Denys Dmytriyenko <denis@denix.org>
> ----
> - build/linux/config/compiler.mk | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/build/linux/config/compiler.mk b/build/linux/config/compiler.mk
> -index 53a0bef..d788579 100644
> ---- a/build/linux/config/compiler.mk
> -+++ b/build/linux/config/compiler.mk
> -@@ -65,7 +65,7 @@ define calculate-compiler-preferred-target
> -    ifneq ($$(filter i386-% i486-% i586-% i686-%,$$($(1)_compiler_preferred_target)),)
> -     $(1)_compiler_preferred_target := i386-linux-gnu
> -    endif
> --   ifneq ($$(filter aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
> -+   ifneq ($$(filter aarch64-oe-linux aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
> -     $(1)_compiler_preferred_target := aarch64-linux-gnu
> -    endif
> -    ifneq ($$(filter armv7a-cros-linux-gnueabi armv7l-tizen-linux-gnueabi,$$($(1)_compiler_preferred_target)),)
> --- 
> -2.7.4
> -
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> similarity index 72%
> rename from meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> rename to meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> index b4d19195..96fb7484 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
> @@ -3,40 +3,38 @@ HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver"
>  LICENSE = "MIT | GPL-2.0-only"
>  LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
>  
> -inherit module features_check
> +inherit module
>  
> -REQUIRED_MACHINE_FEATURES = "gpu"
> +PROVIDES = "virtual/gpudriver"
>  
>  MACHINE_KERNEL_PR:append = "b"
>  PR = "${MACHINE_KERNEL_PR}"
>  
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
>  COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
>  
>  DEPENDS = "virtual/kernel"
>  
> -PROVIDES = "virtual/gpudriver"
> +BRANCH = "linuxws/kirkstone/k5.10/${PV}"
>  
> -BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
> -
> -SRC_URI = " \
> -    git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH} \
> -    file://0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch \
> -"
> +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
>  
>  S = "${WORKDIR}/git"
>  
> -SRCREV = "c901804e8221d477983a6f7224a9cdc6e832f050"
> +SRCREV = "d575e4f64c95a3534e10e85da15bd303febf133f"
>  
>  TARGET_PRODUCT:j721e = "j721e_linux"
>  TARGET_PRODUCT:j721s2 = "j721s2_linux"
>  TARGET_PRODUCT:j784s4 = "j784s4_linux"
>  TARGET_PRODUCT:am62xx = "am62_linux"
>  PVR_BUILD = "release"
> -PVR_WS = "wayland"
> +PVR_WS = "lws-generic"
>  
>  EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
>  
>  do_install() {
>      make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>  }
> +
> +RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> index c22e3096..13b8757c 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
> @@ -3,9 +3,9 @@ HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-linux"
>  LICENSE = "MIT | GPL-2.0-only"
>  LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9b8e5edbce66c2747c50fcef12"
>  
> -inherit module features_check
> +inherit module
>  
> -REQUIRED_MACHINE_FEATURES = "gpu"
> +PROVIDES = "virtual/gpudriver"
>  
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
>  
> @@ -16,8 +16,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
>  
>  DEPENDS = "virtual/kernel"
>  
> -PROVIDES = "virtual/gpudriver"
> -
>  BRANCH = "ti-img-sgx/${PV}/k5.10"
>  
>  SRC_URI = "git://git.ti.com/git/graphics/omap5-sgx-ddk-linux.git;protocol=https;branch=${BRANCH}"
> @@ -44,3 +42,5 @@ do_install() {
>  do_install:k3() {
>      make -C ${STAGING_KERNEL_DIR} M=${B}/eurasia_km/eurasiacon/binary_omap_linux_nulldrmws_release/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>  }
> +
> +RRECOMMENDS:${PN} += "ti-sgx-ddk-um"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> deleted file mode 100644
> index a665c614..00000000
> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> -HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
> -LICENSE = "TI-TFL"
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> -
> -inherit features_check
> -
> -REQUIRED_MACHINE_FEATURES = "gpu"
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> -COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
> -
> -PR = "r2"
> -
> -BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
> -
> -SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
> -SRCREV = "5977e82b96028f783d39c7219f016c1faf8dc5f5"
> -
> -TARGET_PRODUCT:j721e = "j721e_linux"
> -TARGET_PRODUCT:j721s2 = "j721s2_linux"
> -TARGET_PRODUCT:j784s4 = "j784s4_linux"
> -TARGET_PRODUCT:am62xx = "am62_linux"
> -PVR_BUILD ?= "release"
> -PVR_WS = "wayland"
> -
> -INITSCRIPT_NAME = "rc.pvr"
> -INITSCRIPT_PARAMS = "defaults 8"
> -
> -inherit update-rc.d
> -
> -PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
> -
> -DEPENDS += "libdrm wayland expat"
> -RDEPENDS:${PN} += "bash"
> -RDEPENDS:${PN} += "wayland expat"
> -
> -RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RREPLACES:${PN} = "libegl libgles1 liblges2 libgbm"
> -RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
> -RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RRECOMMENDS:${PN} += "ti-img-rogue-driver"
> -
> -S = "${WORKDIR}/git"
> -
> -do_install () {
> -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> -    chown -R root:root ${D}
> -}
> -
> -FILES:${PN} += " ${nonarch_base_libdir}/firmware/"
> -FILES:${PN} += " ${datadir}/"
> -
> -PACKAGES =+ "${PN}-plugins"
> -FILES:${PN}-plugins = "${libdir}/libGLESv2.so ${libdir}/libGLESv1_CM.so ${libdir}/libEGL.so ${libdir}/dri/pvr_dri.so"
> -RDEPENDS:${PN} += "${PN}-plugins"
> -
> -ALLOW_EMPTY:${PN}-plugins = "1"
> -
> -INSANE_SKIP:${PN} += "ldflags arch already-stripped"
> -INSANE_SKIP:${PN}-plugins = "dev-so"
> -
> -CLEANBROKEN = "1"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> new file mode 100644
> index 00000000..924e46ba
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> @@ -0,0 +1,39 @@
> +DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
> +LICENSE = "TI-TFL"
> +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> +
> +inherit bin_package
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
> +
> +PR = "r2"
> +
> +BRANCH = "linuxws/kirkstone/k5.10/${PV}"
> +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
> +SRCREV = "51e598919641d51156a631efa5447124a3c0f543"
> +S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
> +
> +TARGET_PRODUCT:j721e = "j721e_linux"
> +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> +TARGET_PRODUCT:am62xx = "am62_linux"
> +PVR_BUILD = "release"
> +PVR_WS = "lws-generic"
> +
> +RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
> +
> +do_install:append() {
> +    rm -rf "${D}/etc/init.d"
> +    rm -rf "${D}/usr/lib/libvulkan.so"
> +    rm -rf "${D}/usr/lib/libvulkan.so.0"
> +    rm -rf "${D}/usr/lib/libvulkan.so.1"
> +}
> +
> +PACKAGES = "${PN}-tools ${PN}"
> +FILES:${PN}-tools = "${bindir}/"
> +RDEPENDS:${PN}-tools = "python3-core"
> +RRECOMMENDS:${PN} += "${PN}-tools"
> +
> +INSANE_SKIP:${PN} += "ldflags arch already-stripped dev-so"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> index fb98eb68..d7f67c59 100644
> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> @@ -3,19 +3,15 @@ HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
>  LICENSE = "TI-TSPA"
>  LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
>  
> -inherit features_check
> -
> -REQUIRED_MACHINE_FEATURES = "gpu"
> -
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>  
>  PR = "r38"
>  
> -BRANCH = "ti-img-sgx/kirkstone/${PV}"
> +BRANCH = "ti-img-sgx/kirkstone-mesa/${PV}"
>  
>  SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=${BRANCH}"
> -SRCREV = "905809029b877fea42e91b9738825a6294ff1775"
> +SRCREV = "bbae7217051341f515515ec190e165119102f45a"
>  
>  TARGET_PRODUCT:ti33x = "ti335x"
>  TARGET_PRODUCT:ti43x = "ti437x"
> @@ -27,26 +23,7 @@ INITSCRIPT_PARAMS = "defaults 8"
>  
>  inherit update-rc.d
>  
> -PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
> -
> -DEPENDS += "libdrm udev wayland wayland-protocols libffi expat"
> -DEPENDS:append:libc-musl = " gcompat"
> -RDEPENDS:${PN} += "libdrm libdrm-omap udev wayland wayland-protocols libffi expat"
> -
> -RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -RREPLACES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
> -RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -# The actual SONAME is libGLESv2.so.2, so need to explicitly specify RPROVIDES for .so.1 here
> -RPROVIDES:${PN} += "libGLESv2.so.1"
> +RDEPENDS:${PN} += "libdrm libdrm-omap"
>  
>  RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
>  
> @@ -54,7 +31,6 @@ S = "${WORKDIR}/git"
>  
>  do_install () {
>      oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT}
> -    ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so.1
>  
>      chown -R root:root ${D}
>  }
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> new file mode 100644
> index 00000000..912e9e9d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> @@ -0,0 +1 @@
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> new file mode 100644
> index 00000000..912e9e9d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> @@ -0,0 +1 @@
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> new file mode 100644
> index 00000000..17edee8d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> @@ -0,0 +1,40 @@
> +# PowerVR Graphics require several patches that have not made their way
> +# upstream yet. This allows us to build the shims we need without completely
> +# clobbering mesa.
> +
> +BRANCH = "powervr/kirkstone/22.0"
> +
> +SRC_URI = " \
> +    git://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH} \
> +    file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
> +    file://0002-meson.build-make-TLS-ELF-optional.patch \
> +    file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
> +    file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
> +    file://0001-util-format-Check-for-NEON-before-using-it.patch \
> +    file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
> +"
> +
> +S = "${WORKDIR}/git"
> +
> +SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
> +
> +PACKAGECONFIG:append = " \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', 'pvr', '', d)} \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', 'sgx', '', d)} \
> +"
> +
> +PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
> +PACKAGECONFIG[pvr] = "-Dgallium-pvr-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> +PACKAGECONFIG[sgx] = "-Dgallium-sgx-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> +
> +PV:append = "+pvr"
> +
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
> +
> +do_install:append () {
> +    # remove pvr custom pkgconfig
> +    rm -rf ${D}${datadir}/pkgconfig
> +}
> +
> +RRECOMMENDS:mesa-megadriver:class-target:append = "${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> -- 
> 2.34.1
>
Jose Quaresma Feb. 20, 2023, 11:06 a.m. UTC | #2
Randolph Sapp via lists.yoctoproject.org <rs=ti.com@lists.yoctoproject.org>
escreveu no dia segunda, 30/01/2023 à(s) 23:20:

> Patched mesa will now be configured based on what virtual/gpudriver
> preferred provider is selected. The gpu drivers will now runtime
> recommend the associated um components.
>
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  ...-OpenEmbedded-nodistro-internal-aarc.patch | 29 --------
>  ...bb => ti-img-rogue-driver_1.18.6276027.bb} | 20 +++---
>  .../ti-sgx-ddk-km_1.17.4948957.bb             |  8 +--
>  .../ti-img-rogue-umlibs_1.15.6133109.bb       | 71 -------------------
>  .../ti-img-rogue-umlibs_1.18.6276027.bb       | 39 ++++++++++
>  .../libgles/ti-sgx-ddk-um_1.17.4948957.bb     | 30 +-------
>  .../mesa/mesa-gl_22.0.%.bbappend              |  1 +
>  .../mesa/mesa_22.0.%.bbappend                 |  1 +
>  .../recipes-graphics/mesa/pvr-mesa.inc        | 40 +++++++++++
>  9 files changed, 97 insertions(+), 142 deletions(-)
>  delete mode 100644
> meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
>  rename meta-ti-bsp/recipes-bsp/powervr-drivers/{
> ti-img-rogue-driver_1.15.6133109.bb => ti-img-rogue-driver_1.18.6276027.bb}
> (72%)
>  delete mode 100644 meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.15.6133109.bb
>  create mode 100644 meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.18.6276027.bb
>  create mode 100644
> meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>
> diff --git
> a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
> b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
> deleted file mode 100644
> index f021cc39..00000000
> ---
> a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 80d32fee3d768abbd77cce77ea9a7574651460a9 Mon Sep 17 00:00:00 2001
> -From: Denys Dmytriyenko <denis@denix.org>
> -Date: Wed, 7 Jul 2021 13:11:56 -0400
> -Subject: [PATCH] compiler: support OpenEmbedded "nodistro" internal
> aarch64
> - toolchain
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Denys Dmytriyenko <denis@denix.org>
> ----
> - build/linux/config/compiler.mk | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/build/linux/config/compiler.mk b/build/linux/config/
> compiler.mk
> -index 53a0bef..d788579 100644
> ---- a/build/linux/config/compiler.mk
> -+++ b/build/linux/config/compiler.mk
> -@@ -65,7 +65,7 @@ define calculate-compiler-preferred-target
> -    ifneq ($$(filter i386-% i486-% i586-%
> i686-%,$$($(1)_compiler_preferred_target)),)
> -     $(1)_compiler_preferred_target := i386-linux-gnu
> -    endif
> --   ifneq ($$(filter
> aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
> -+   ifneq ($$(filter aarch64-oe-linux
> aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
> -     $(1)_compiler_preferred_target := aarch64-linux-gnu
> -    endif
> -    ifneq ($$(filter armv7a-cros-linux-gnueabi
> armv7l-tizen-linux-gnueabi,$$($(1)_compiler_preferred_target)),)
> ---
> -2.7.4
> -
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.15.6133109.bb
> b/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.18.6276027.bb
> similarity index 72%
> rename from meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.15.6133109.bb
> rename to meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.18.6276027.bb
> index b4d19195..96fb7484 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.15.6133109.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-img-rogue-driver_1.18.6276027.bb
> @@ -3,40 +3,38 @@ HOMEPAGE = "
> http://git.ti.com/graphics/ti-img-rogue-driver"
>  LICENSE = "MIT | GPL-2.0-only"
>  LIC_FILES_CHKSUM =
> "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
>
> -inherit module features_check
> +inherit module
>
> -REQUIRED_MACHINE_FEATURES = "gpu"
> +PROVIDES = "virtual/gpudriver"
>
>  MACHINE_KERNEL_PR:append = "b"
>  PR = "${MACHINE_KERNEL_PR}"
>
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
>  COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
>
>  DEPENDS = "virtual/kernel"
>
> -PROVIDES = "virtual/gpudriver"
> +BRANCH = "linuxws/kirkstone/k5.10/${PV}"
>
> -BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
> -
> -SRC_URI = " \
> -    git://
> git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}
> <http://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=$%7BBRANCH%7D>
> \
> -
> file://0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch \
> -"
> +SRC_URI = "git://
> git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}
> <http://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=$%7BBRANCH%7D>
> "
>
>  S = "${WORKDIR}/git"
>
> -SRCREV = "c901804e8221d477983a6f7224a9cdc6e832f050"
> +SRCREV = "d575e4f64c95a3534e10e85da15bd303febf133f"
>
>  TARGET_PRODUCT:j721e = "j721e_linux"
>  TARGET_PRODUCT:j721s2 = "j721s2_linux"
>  TARGET_PRODUCT:j784s4 = "j784s4_linux"
>  TARGET_PRODUCT:am62xx = "am62_linux"
>  PVR_BUILD = "release"
> -PVR_WS = "wayland"
> +PVR_WS = "lws-generic"
>
>  EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD}
> PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
>
>  do_install() {
>      make -C ${STAGING_KERNEL_DIR}
> M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild
> INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST}
> modules_install
>  }
> +
> +RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-sgx-ddk-km_1.17.4948957.bb
> index c22e3096..13b8757c 100644
> --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-sgx-ddk-km_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/
> ti-sgx-ddk-km_1.17.4948957.bb
> @@ -3,9 +3,9 @@ HOMEPAGE = "
> https://git.ti.com/graphics/omap5-sgx-ddk-linux"
>  LICENSE = "MIT | GPL-2.0-only"
>  LIC_FILES_CHKSUM =
> "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9b8e5edbce66c2747c50fcef12"
>
> -inherit module features_check
> +inherit module
>
> -REQUIRED_MACHINE_FEATURES = "gpu"
> +PROVIDES = "virtual/gpudriver"
>
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
>
> @@ -16,8 +16,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
>
>  DEPENDS = "virtual/kernel"
>
> -PROVIDES = "virtual/gpudriver"
> -
>  BRANCH = "ti-img-sgx/${PV}/k5.10"
>
>  SRC_URI = "git://
> git.ti.com/git/graphics/omap5-sgx-ddk-linux.git;protocol=https;branch=${BRANCH}
> <http://git.ti.com/git/graphics/omap5-sgx-ddk-linux.git;protocol=https;branch=$%7BBRANCH%7D>
> "
> @@ -44,3 +42,5 @@ do_install() {
>  do_install:k3() {
>      make -C ${STAGING_KERNEL_DIR}
> M=${B}/eurasia_km/eurasiacon/binary_omap_linux_nulldrmws_release/target_aarch64/kbuild
> INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST}
> modules_install
>  }
> +
> +RRECOMMENDS:${PN} += "ti-sgx-ddk-um"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.15.6133109.bb
> b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> deleted file mode 100644
> index a665c614..00000000
> --- a/meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.15.6133109.bb
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> -HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
> -LICENSE = "TI-TFL"
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> -
> -inherit features_check
> -
> -REQUIRED_MACHINE_FEATURES = "gpu"
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> -COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
> -
> -PR = "r2"
> -
> -BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
> -
> -SRC_URI = "git://
> git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}
> <http://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=$%7BBRANCH%7D>
> "
> -SRCREV = "5977e82b96028f783d39c7219f016c1faf8dc5f5"
> -
> -TARGET_PRODUCT:j721e = "j721e_linux"
> -TARGET_PRODUCT:j721s2 = "j721s2_linux"
> -TARGET_PRODUCT:j784s4 = "j784s4_linux"
> -TARGET_PRODUCT:am62xx = "am62_linux"
> -PVR_BUILD ?= "release"
> -PVR_WS = "wayland"
> -
> -INITSCRIPT_NAME = "rc.pvr"
> -INITSCRIPT_PARAMS = "defaults 8"
> -
> -inherit update-rc.d
> -
> -PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
> -
> -DEPENDS += "libdrm wayland expat"
> -RDEPENDS:${PN} += "bash"
> -RDEPENDS:${PN} += "wayland expat"
> -
> -RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RREPLACES:${PN} = "libegl libgles1 liblges2 libgbm"
> -RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
> -RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
> -
> -RRECOMMENDS:${PN} += "ti-img-rogue-driver"
> -
> -S = "${WORKDIR}/git"
> -
> -do_install () {
> -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT}
> BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> -    chown -R root:root ${D}
> -}
> -
> -FILES:${PN} += " ${nonarch_base_libdir}/firmware/"
> -FILES:${PN} += " ${datadir}/"
> -
> -PACKAGES =+ "${PN}-plugins"
> -FILES:${PN}-plugins = "${libdir}/libGLESv2.so ${libdir}/libGLESv1_CM.so
> ${libdir}/libEGL.so ${libdir}/dri/pvr_dri.so"
> -RDEPENDS:${PN} += "${PN}-plugins"
> -
> -ALLOW_EMPTY:${PN}-plugins = "1"
> -
> -INSANE_SKIP:${PN} += "ldflags arch already-stripped"
> -INSANE_SKIP:${PN}-plugins = "dev-so"
> -
> -CLEANBROKEN = "1"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.18.6276027.bb
> b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
> new file mode 100644
> index 00000000..924e46ba
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/libgles/
> ti-img-rogue-umlibs_1.18.6276027.bb
> @@ -0,0 +1,39 @@
> +DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
> +LICENSE = "TI-TFL"
> +LIC_FILES_CHKSUM =
> "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> +
> +inherit bin_package
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
> +
> +PR = "r2"
> +
> +BRANCH = "linuxws/kirkstone/k5.10/${PV}"
> +SRC_URI = "git://
> git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}
> <http://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=$%7BBRANCH%7D>
> "
> +SRCREV = "51e598919641d51156a631efa5447124a3c0f543"
> +S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
> +
> +TARGET_PRODUCT:j721e = "j721e_linux"
> +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> +TARGET_PRODUCT:am62xx = "am62_linux"
> +PVR_BUILD = "release"
> +PVR_WS = "lws-generic"
> +
> +RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
> +
> +do_install:append() {
> +    rm -rf "${D}/etc/init.d"
> +    rm -rf "${D}/usr/lib/libvulkan.so"
> +    rm -rf "${D}/usr/lib/libvulkan.so.0"
> +    rm -rf "${D}/usr/lib/libvulkan.so.1"
> +}
> +
> +PACKAGES = "${PN}-tools ${PN}"
> +FILES:${PN}-tools = "${bindir}/"
> +RDEPENDS:${PN}-tools = "python3-core"
> +RRECOMMENDS:${PN} += "${PN}-tools"
> +
> +INSANE_SKIP:${PN} += "ldflags arch already-stripped dev-so"
> diff --git a/meta-ti-bsp/recipes-graphics/libgles/
> ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/
> ti-sgx-ddk-um_1.17.4948957.bb
> index fb98eb68..d7f67c59 100644
> --- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> +++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
> @@ -3,19 +3,15 @@ HOMEPAGE = "
> https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
>  LICENSE = "TI-TSPA"
>  LIC_FILES_CHKSUM =
> "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
>
> -inherit features_check
> -
> -REQUIRED_MACHINE_FEATURES = "gpu"
> -
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
>  COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
>
>  PR = "r38"
>
> -BRANCH = "ti-img-sgx/kirkstone/${PV}"
> +BRANCH = "ti-img-sgx/kirkstone-mesa/${PV}"
>
>  SRC_URI = "git://
> git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=${BRANCH}
> <http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=$%7BBRANCH%7D>
> "
> -SRCREV = "905809029b877fea42e91b9738825a6294ff1775"
> +SRCREV = "bbae7217051341f515515ec190e165119102f45a"
>
>  TARGET_PRODUCT:ti33x = "ti335x"
>  TARGET_PRODUCT:ti43x = "ti437x"
> @@ -27,26 +23,7 @@ INITSCRIPT_PARAMS = "defaults 8"
>
>  inherit update-rc.d
>
> -PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
> -
> -DEPENDS += "libdrm udev wayland wayland-protocols libffi expat"
> -DEPENDS:append:libc-musl = " gcompat"
> -RDEPENDS:${PN} += "libdrm libdrm-omap udev wayland wayland-protocols
> libffi expat"
> -
> -RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -RREPLACES:${PN} = "libegl libgles1 libgles2 libgbm"
> -RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
> -RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
> -RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
> -
> -# The actual SONAME is libGLESv2.so.2, so need to explicitly specify
> RPROVIDES for .so.1 here
> -RPROVIDES:${PN} += "libGLESv2.so.1"
> +RDEPENDS:${PN} += "libdrm libdrm-omap"
>
>  RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
>
> @@ -54,7 +31,6 @@ S = "${WORKDIR}/git"
>
>  do_install () {
>      oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT}
> -    ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so.1
>
>      chown -R root:root ${D}
>  }
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> new file mode 100644
> index 00000000..912e9e9d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> @@ -0,0 +1 @@
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> new file mode 100644
> index 00000000..912e9e9d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> @@ -0,0 +1 @@
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> new file mode 100644
> index 00000000..17edee8d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> @@ -0,0 +1,40 @@
> +# PowerVR Graphics require several patches that have not made their way
> +# upstream yet. This allows us to build the shims we need without
> completely
> +# clobbering mesa.
> +
> +BRANCH = "powervr/kirkstone/22.0"
> +
> +SRC_URI = " \
> +    git://
> gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH}
> <http://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=$%7BBRANCH%7D>
> \
> +
> file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
> +    file://0002-meson.build-make-TLS-ELF-optional.patch \
> +    file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
> +    file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
> +    file://0001-util-format-Check-for-NEON-before-using-it.patch \
> +
> file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
> +"
>

Having here all the patches in oe-core will stop working if someone changes
the main recipe.
This already happens in the master branch of oe-core.

IMO If these patches are needed they should be merged on the ti fork branch.

Jose


> +
> +S = "${WORKDIR}/git"
> +
> +SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
> +
> +PACKAGECONFIG:append = " \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver',
> 'ti-img-rogue-driver', 'pvr', '', d)} \
> +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver',
> 'ti-sgx-ddk-km', 'sgx', '', d)} \
> +"
> +
> +PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
> +PACKAGECONFIG[pvr] =
> "-Dgallium-pvr-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> +PACKAGECONFIG[sgx] =
> "-Dgallium-sgx-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> +
> +PV:append = "+pvr"
> +
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr',
> ',pvr', '', d)}"
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx',
> ',sgx', '', d)}"
> +
> +do_install:append () {
> +    # remove pvr custom pkgconfig
> +    rm -rf ${D}${datadir}/pkgconfig
> +}
> +
> +RRECOMMENDS:mesa-megadriver:class-target:append =
> "${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#15708):
> https://lists.yoctoproject.org/g/meta-ti/message/15708
> Mute This Topic: https://lists.yoctoproject.org/mt/96641366/5052612
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [
> quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Denys Dmytriyenko Feb. 21, 2023, 3:21 a.m. UTC | #3
On Mon, Feb 20, 2023 at 11:06:28AM +0000, Jose Quaresma wrote:
> Randolph Sapp via lists.yoctoproject.org <rs=ti.com@lists.yoctoproject.org>
> escreveu no dia segunda, 30/01/2023 à(s) 23:20:
> 
> > Patched mesa will now be configured based on what virtual/gpudriver
> > preferred provider is selected. The gpu drivers will now runtime
> > recommend the associated um components.
> >
> > Signed-off-by: Randolph Sapp <rs@ti.com>
> > ---

<snip>

> > diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> > b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> > new file mode 100644
> > index 00000000..912e9e9d
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
> > @@ -0,0 +1 @@
> > +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> > diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> > b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> > new file mode 100644
> > index 00000000..912e9e9d
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
> > @@ -0,0 +1 @@
> > +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
> > diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> > b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> > new file mode 100644
> > index 00000000..17edee8d
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
> > @@ -0,0 +1,40 @@
> > +# PowerVR Graphics require several patches that have not made their way
> > +# upstream yet. This allows us to build the shims we need without
> > completely
> > +# clobbering mesa.
> > +
> > +BRANCH = "powervr/kirkstone/22.0"
> > +
> > +SRC_URI = " \
> > +    git://
> > gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH}
> > <http://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=$%7BBRANCH%7D>
> > \
> > +
> > file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
> > +    file://0002-meson.build-make-TLS-ELF-optional.patch \
> > +    file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
> > +    file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
> > +    file://0001-util-format-Check-for-NEON-before-using-it.patch \
> > +
> > file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
> > +"
> >
> 
> Having here all the patches in oe-core will stop working if someone changes
> the main recipe.
> This already happens in the master branch of oe-core.
> 
> IMO If these patches are needed they should be merged on the ti fork branch.

The same exact comment was already provided offline in the past, along with 
a number of others, and there was supposed to be v8 coming... Not sure what 
happened and why unmodified v7 got merged...


> > +S = "${WORKDIR}/git"
> > +
> > +SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
> > +
> > +PACKAGECONFIG:append = " \
> > +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-img-rogue-driver', 'pvr', '', d)} \
> > +    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-sgx-ddk-km', 'sgx', '', d)} \
> > +"
> > +
> > +PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
> > +PACKAGECONFIG[pvr] =
> > "-Dgallium-pvr-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> > +PACKAGECONFIG[sgx] =
> > "-Dgallium-sgx-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
> > +
> > +PV:append = "+pvr"
> > +
> > +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr',
> > ',pvr', '', d)}"
> > +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx',
> > ',sgx', '', d)}"
> > +
> > +do_install:append () {
> > +    # remove pvr custom pkgconfig
> > +    rm -rf ${D}${datadir}/pkgconfig
> > +}
> > +
> > +RRECOMMENDS:mesa-megadriver:class-target:append =
> > "${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> > --
> > 2.34.1
Randolph Sapp Feb. 21, 2023, 6:27 p.m. UTC | #4
On Mon, Feb 20 2023 at 22:21:15 -05:00:00, Denys Dmytriyenko 
<denis@denix.org> wrote:
> 
>>  > diff --git 
>> a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
>>  > b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
>>  > new file mode 100644
>>  > index 00000000..912e9e9d
>>  > --- /dev/null
>>  > +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
>>  > @@ -0,0 +1 @@
>>  > +require ${@bb.utils.contains 
>> <mailto:${@bb.utils.contains>_any('PREFERRED_PROVIDER_virtual/gpudriver',
>>  > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
>>  > diff --git 
>> a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
>>  > b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
>>  > new file mode 100644
>>  > index 00000000..912e9e9d
>>  > --- /dev/null
>>  > +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
>>  > @@ -0,0 +1 @@
>>  > +require ${@bb.utils.contains 
>> <mailto:${@bb.utils.contains>_any('PREFERRED_PROVIDER_virtual/gpudriver',
>>  > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
>>  > diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>>  > b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>>  > new file mode 100644
>>  > index 00000000..17edee8d
>>  > --- /dev/null
>>  > +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
>>  > @@ -0,0 +1,40 @@
>>  > +# PowerVR Graphics require several patches that have not made 
>> their way
>>  > +# upstream yet. This allows us to build the shims we need without
>>  > completely
>>  > +# clobbering mesa.
>>  > +
>>  > +BRANCH = "powervr/kirkstone/22.0"
>>  > +
>>  > +SRC_URI = " \
>>  > +    git://
>>  > 
>> gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH}
>>  > 
>> <<http://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=$%7BBRANCH%7D>>
>>  > \
>>  > +
>>  > 
>> file://0001-meson.build-check-for-all-linux-host_os-combinations.patch 
>> <file://0001-meson.build-check-for-all-linux-host_os-combinations.patch/> 
>> \
>>  > +    file://0002-meson.build-make-TLS-ELF-optional.patch 
>> <file://0002-meson.build-make-tls-elf-optional.patch/> \
>>  > +    
>> file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch 
>> <file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch/> \
>>  > +    
>> file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch 
>> <file://0001-futex.h-define-__nr_futex-if-it-does-not-exist.patch/> \
>>  > +    file://0001-util-format-Check-for-NEON-before-using-it.patch 
>> <file://0001-util-format-check-for-neon-before-using-it.patch/> \
>>  > +
>>  > 
>> file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch 
>> <file://0001-revert-egl-wayland-deprecate-drm_handle_format-and-d.patch/> 
>> \
>>  > +"
>>  >
>> 
>>  Having here all the patches in oe-core will stop working if someone 
>> changes
>>  the main recipe.
>>  This already happens in the master branch of oe-core.
>> 
>>  IMO If these patches are needed they should be merged on the ti 
>> fork branch.
> 
> The same exact comment was already provided offline in the past, 
> along with
> a number of others, and there was supposed to be v8 coming... Not 
> sure what
> happened and why unmodified v7 got merged...

That's my bad. Got tunnel vision trying to get SGX opperational and 
forgot about some of the suggested changes for v8. I'll submit a patch 
to resolve that when I get SGX opperational. I believe the solution 
that seemed most applicable was to drop the patch commit and instead 
use the patch paths from oe-core directly.

We didn't want to carry those patches in mesa since some of those are 
backports and distribution specific hacks for packaging. I want to keep 
mesa as vanilla as possible for multi-distro.
Jose Quaresma Feb. 22, 2023, 11:35 a.m. UTC | #5
Sapp, Randolph <rs@ti.com> escreveu no dia terça, 21/02/2023 à(s) 18:27:

> On Mon, Feb 20 2023 at 22:21:15 -05:00:00, Denys Dmytriyenko <
> denis@denix.org> wrote:
>
> > diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend >
> b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend > new file mode
> 100644 > index 00000000..912e9e9d > --- /dev/null > +++
> b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend > @@ -0,0 +1 @@
> > +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)} > diff --git
> a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend >
> b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend > new file mode
> 100644 > index 00000000..912e9e9d > --- /dev/null > +++
> b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend > @@ -0,0 +1 @@ >
> +require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver',
> > 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)} > diff --git
> a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc >
> b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc > new file mode 100644 >
> index 00000000..17edee8d > --- /dev/null > +++
> b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc > @@ -0,0 +1,40 @@ > +#
> PowerVR Graphics require several patches that have not made their way > +#
> upstream yet. This allows us to build the shims we need without >
> completely > +# clobbering mesa. > + > +BRANCH = "powervr/kirkstone/22.0" >
> + > +SRC_URI = " \ > + git:// >
> gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH}
> <http://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=$%7BBRANCH%7D>
> > <
> http://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=$%7BBRANCH%7D>
> > \ > + >
> file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
> > + file://0002-meson.build-make-TLS-ELF-optional.patch \ > +
> file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ > +
> file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ > +
> file://0001-util-format-Check-for-NEON-before-using-it.patch \ > + >
> file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
> > +" > Having here all the patches in oe-core will stop working if someone
> changes the main recipe. This already happens in the master branch of
> oe-core. IMO If these patches are needed they should be merged on the ti
> fork branch.
>
> The same exact comment was already provided offline in the past, along
> with a number of others, and there was supposed to be v8 coming... Not sure
> what happened and why unmodified v7 got merged...
>
>
> That's my bad. Got tunnel vision trying to get SGX opperational and forgot
> about some of the suggested changes for v8. I'll submit a patch to resolve
> that when I get SGX opperational. I believe the solution that seemed most
> applicable was to drop the patch commit and instead use the patch paths
> from oe-core directly.
>
> We didn't want to carry those patches in mesa since some of those are
> backports and distribution specific hacks for packaging. I want to keep
> mesa as vanilla as possible for multi-distro.
>

SRC_URI += "git://
gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH}
"
SRC_URI:remove = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz"

This currently does the job for me and with a broader mesa-gl_22.%.bbappend
but maybe mesa-gl_%.bbappend is even better.

Jose
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
deleted file mode 100644
index f021cc39..00000000
--- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
+++ /dev/null
@@ -1,29 +0,0 @@ 
-From 80d32fee3d768abbd77cce77ea9a7574651460a9 Mon Sep 17 00:00:00 2001
-From: Denys Dmytriyenko <denis@denix.org>
-Date: Wed, 7 Jul 2021 13:11:56 -0400
-Subject: [PATCH] compiler: support OpenEmbedded "nodistro" internal aarch64
- toolchain
-
-Upstream-Status: Pending
-
-Signed-off-by: Denys Dmytriyenko <denis@denix.org>
----
- build/linux/config/compiler.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/linux/config/compiler.mk b/build/linux/config/compiler.mk
-index 53a0bef..d788579 100644
---- a/build/linux/config/compiler.mk
-+++ b/build/linux/config/compiler.mk
-@@ -65,7 +65,7 @@ define calculate-compiler-preferred-target
-    ifneq ($$(filter i386-% i486-% i586-% i686-%,$$($(1)_compiler_preferred_target)),)
-     $(1)_compiler_preferred_target := i386-linux-gnu
-    endif
--   ifneq ($$(filter aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
-+   ifneq ($$(filter aarch64-oe-linux aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
-     $(1)_compiler_preferred_target := aarch64-linux-gnu
-    endif
-    ifneq ($$(filter armv7a-cros-linux-gnueabi armv7l-tizen-linux-gnueabi,$$($(1)_compiler_preferred_target)),)
--- 
-2.7.4
-
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
similarity index 72%
rename from meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
rename to meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
index b4d19195..96fb7484 100644
--- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.18.6276027.bb
@@ -3,40 +3,38 @@  HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver"
 LICENSE = "MIT | GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
 
-inherit module features_check
+inherit module
 
-REQUIRED_MACHINE_FEATURES = "gpu"
+PROVIDES = "virtual/gpudriver"
 
 MACHINE_KERNEL_PR:append = "b"
 PR = "${MACHINE_KERNEL_PR}"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
+
 COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
 
 DEPENDS = "virtual/kernel"
 
-PROVIDES = "virtual/gpudriver"
+BRANCH = "linuxws/kirkstone/k5.10/${PV}"
 
-BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
-
-SRC_URI = " \
-    git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH} \
-    file://0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch \
-"
+SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
 
 S = "${WORKDIR}/git"
 
-SRCREV = "c901804e8221d477983a6f7224a9cdc6e832f050"
+SRCREV = "d575e4f64c95a3534e10e85da15bd303febf133f"
 
 TARGET_PRODUCT:j721e = "j721e_linux"
 TARGET_PRODUCT:j721s2 = "j721s2_linux"
 TARGET_PRODUCT:j784s4 = "j784s4_linux"
 TARGET_PRODUCT:am62xx = "am62_linux"
 PVR_BUILD = "release"
-PVR_WS = "wayland"
+PVR_WS = "lws-generic"
 
 EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
 
 do_install() {
     make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
 }
+
+RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
index c22e3096..13b8757c 100644
--- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
@@ -3,9 +3,9 @@  HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-linux"
 LICENSE = "MIT | GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9b8e5edbce66c2747c50fcef12"
 
-inherit module features_check
+inherit module
 
-REQUIRED_MACHINE_FEATURES = "gpu"
+PROVIDES = "virtual/gpudriver"
 
 COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
 
@@ -16,8 +16,6 @@  PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 DEPENDS = "virtual/kernel"
 
-PROVIDES = "virtual/gpudriver"
-
 BRANCH = "ti-img-sgx/${PV}/k5.10"
 
 SRC_URI = "git://git.ti.com/git/graphics/omap5-sgx-ddk-linux.git;protocol=https;branch=${BRANCH}"
@@ -44,3 +42,5 @@  do_install() {
 do_install:k3() {
     make -C ${STAGING_KERNEL_DIR} M=${B}/eurasia_km/eurasiacon/binary_omap_linux_nulldrmws_release/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
 }
+
+RRECOMMENDS:${PN} += "ti-sgx-ddk-um"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
deleted file mode 100644
index a665c614..00000000
--- a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
+++ /dev/null
@@ -1,71 +0,0 @@ 
-DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
-HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
-LICENSE = "TI-TFL"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
-
-inherit features_check
-
-REQUIRED_MACHINE_FEATURES = "gpu"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
-
-PR = "r2"
-
-BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize"
-
-SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
-SRCREV = "5977e82b96028f783d39c7219f016c1faf8dc5f5"
-
-TARGET_PRODUCT:j721e = "j721e_linux"
-TARGET_PRODUCT:j721s2 = "j721s2_linux"
-TARGET_PRODUCT:j784s4 = "j784s4_linux"
-TARGET_PRODUCT:am62xx = "am62_linux"
-PVR_BUILD ?= "release"
-PVR_WS = "wayland"
-
-INITSCRIPT_NAME = "rc.pvr"
-INITSCRIPT_PARAMS = "defaults 8"
-
-inherit update-rc.d
-
-PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
-
-DEPENDS += "libdrm wayland expat"
-RDEPENDS:${PN} += "bash"
-RDEPENDS:${PN} += "wayland expat"
-
-RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
-RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
-
-RREPLACES:${PN} = "libegl libgles1 liblges2 libgbm"
-RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
-
-RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
-RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
-
-RRECOMMENDS:${PN} += "ti-img-rogue-driver"
-
-S = "${WORKDIR}/git"
-
-do_install () {
-    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
-    chown -R root:root ${D}
-}
-
-FILES:${PN} += " ${nonarch_base_libdir}/firmware/"
-FILES:${PN} += " ${datadir}/"
-
-PACKAGES =+ "${PN}-plugins"
-FILES:${PN}-plugins = "${libdir}/libGLESv2.so ${libdir}/libGLESv1_CM.so ${libdir}/libEGL.so ${libdir}/dri/pvr_dri.so"
-RDEPENDS:${PN} += "${PN}-plugins"
-
-ALLOW_EMPTY:${PN}-plugins = "1"
-
-INSANE_SKIP:${PN} += "ldflags arch already-stripped"
-INSANE_SKIP:${PN}-plugins = "dev-so"
-
-CLEANBROKEN = "1"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
new file mode 100644
index 00000000..924e46ba
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb
@@ -0,0 +1,39 @@ 
+DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
+HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
+
+inherit bin_package
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx"
+
+PR = "r2"
+
+BRANCH = "linuxws/kirkstone/k5.10/${PV}"
+SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
+SRCREV = "51e598919641d51156a631efa5447124a3c0f543"
+S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
+
+TARGET_PRODUCT:j721e = "j721e_linux"
+TARGET_PRODUCT:j721s2 = "j721s2_linux"
+TARGET_PRODUCT:j784s4 = "j784s4_linux"
+TARGET_PRODUCT:am62xx = "am62_linux"
+PVR_BUILD = "release"
+PVR_WS = "lws-generic"
+
+RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver"
+
+do_install:append() {
+    rm -rf "${D}/etc/init.d"
+    rm -rf "${D}/usr/lib/libvulkan.so"
+    rm -rf "${D}/usr/lib/libvulkan.so.0"
+    rm -rf "${D}/usr/lib/libvulkan.so.1"
+}
+
+PACKAGES = "${PN}-tools ${PN}"
+FILES:${PN}-tools = "${bindir}/"
+RDEPENDS:${PN}-tools = "python3-core"
+RRECOMMENDS:${PN} += "${PN}-tools"
+
+INSANE_SKIP:${PN} += "ldflags arch already-stripped dev-so"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
index fb98eb68..d7f67c59 100644
--- a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
@@ -3,19 +3,15 @@  HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
 LICENSE = "TI-TSPA"
 LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
 
-inherit features_check
-
-REQUIRED_MACHINE_FEATURES = "gpu"
-
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx"
 
 PR = "r38"
 
-BRANCH = "ti-img-sgx/kirkstone/${PV}"
+BRANCH = "ti-img-sgx/kirkstone-mesa/${PV}"
 
 SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=${BRANCH}"
-SRCREV = "905809029b877fea42e91b9738825a6294ff1775"
+SRCREV = "bbae7217051341f515515ec190e165119102f45a"
 
 TARGET_PRODUCT:ti33x = "ti335x"
 TARGET_PRODUCT:ti43x = "ti437x"
@@ -27,26 +23,7 @@  INITSCRIPT_PARAMS = "defaults 8"
 
 inherit update-rc.d
 
-PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
-
-DEPENDS += "libdrm udev wayland wayland-protocols libffi expat"
-DEPENDS:append:libc-musl = " gcompat"
-RDEPENDS:${PN} += "libdrm libdrm-omap udev wayland wayland-protocols libffi expat"
-
-RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
-RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
-
-RREPLACES:${PN} = "libegl libgles1 libgles2 libgbm"
-RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
-
-RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
-RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
-RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
-
-# The actual SONAME is libGLESv2.so.2, so need to explicitly specify RPROVIDES for .so.1 here
-RPROVIDES:${PN} += "libGLESv2.so.1"
+RDEPENDS:${PN} += "libdrm libdrm-omap"
 
 RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
 
@@ -54,7 +31,6 @@  S = "${WORKDIR}/git"
 
 do_install () {
     oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT}
-    ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so.1
 
     chown -R root:root ${D}
 }
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
new file mode 100644
index 00000000..912e9e9d
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.0.%.bbappend
@@ -0,0 +1 @@ 
+require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
new file mode 100644
index 00000000..912e9e9d
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.0.%.bbappend
@@ -0,0 +1 @@ 
+require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
diff --git a/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
new file mode 100644
index 00000000..17edee8d
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc
@@ -0,0 +1,40 @@ 
+# PowerVR Graphics require several patches that have not made their way
+# upstream yet. This allows us to build the shims we need without completely
+# clobbering mesa.
+
+BRANCH = "powervr/kirkstone/22.0"
+
+SRC_URI = " \
+    git://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH} \
+    file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
+    file://0002-meson.build-make-TLS-ELF-optional.patch \
+    file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
+    file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
+    file://0001-util-format-Check-for-NEON-before-using-it.patch \
+    file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
+"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "44b82a7b6fa8a86243911b1b0d6a07b0fd8ecfba"
+
+PACKAGECONFIG:append = " \
+    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', 'pvr', '', d)} \
+    ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', 'sgx', '', d)} \
+"
+
+PVR_DISPLAY_CONTROLLER_ALIAS ??= "tidss"
+PACKAGECONFIG[pvr] = "-Dgallium-pvr-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
+PACKAGECONFIG[sgx] = "-Dgallium-sgx-alias=${PVR_DISPLAY_CONTROLLER_ALIAS},"
+
+PV:append = "+pvr"
+
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
+
+do_install:append () {
+    # remove pvr custom pkgconfig
+    rm -rf ${D}${datadir}/pkgconfig
+}
+
+RRECOMMENDS:mesa-megadriver:class-target:append = "${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"