From patchwork Fri Feb 24 10:12:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denys Dmytriyenko X-Patchwork-Id: 20099 X-Patchwork-Delegate: reatmon@ti.com Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A2C4C6FA9D for ; Fri, 24 Feb 2023 10:12:29 +0000 (UTC) Received: from mailout4.zoneedit.com (mailout4.zoneedit.com [64.68.198.64]) by mx.groups.io with SMTP id smtpd.web11.14447.1677233542667551737 for ; Fri, 24 Feb 2023 02:12:23 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: denix.org, ip: 64.68.198.64, mailfrom: denis@denix.org) Received: from localhost (localhost [127.0.0.1]) by mailout4.zoneedit.com (Postfix) with ESMTP id BAB7340C46 for ; Fri, 24 Feb 2023 10:12:21 +0000 (UTC) Received: from mailout4.zoneedit.com ([127.0.0.1]) by localhost (zmo14-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FqD6JqmRt6gA for ; Fri, 24 Feb 2023 10:12:21 +0000 (UTC) Received: from mail.denix.org (pool-100-15-88-116.washdc.fios.verizon.net [100.15.88.116]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout4.zoneedit.com (Postfix) with ESMTPSA id A1D6940C8C for ; Fri, 24 Feb 2023 10:12:21 +0000 (UTC) Received: from thorin.denix (thorin.denix [192.168.30.9]) by mail.denix.org (Postfix) with ESMTP id 678C3163765 for ; Fri, 24 Feb 2023 05:11:54 -0500 (EST) From: Denys Dmytriyenko To: meta-ti@lists.yoctoproject.org Subject: [master/kirkstone][PATCH v8 2/6] meta-ti-bsp: graphics: Resolve dependency chain Date: Fri, 24 Feb 2023 10:12:15 +0000 Message-Id: <20230224101219.4130589-3-denis@denix.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230224101219.4130589-1-denis@denix.org> References: <20230224101219.4130589-1-denis@denix.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Feb 2023 10:12:29 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-ti/message/15948 From: Randolph Sapp 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 Signed-off-by: Denys Dmytriyenko --- v8 changes: * generate proper diff of ti-img-rogue-umlibs upgrade from 1.15 to 1.18 * in pvr-mesa.inc add FILESEXTRAPATHS to locate local patches * set LIC_FILES_CHKSUM corresponding to 22.0 * clear out video-codecs PACKAGECONFIG non-existent in 22.0 * fixup RRECOMMENDS nested overrides order * mark pvr-mesa machine-specific and set correct PV ...bb => ti-img-rogue-driver_1.18.6276027.bb} | 20 +++--- .../ti-sgx-ddk-km_1.17.4948957.bb | 8 +-- ...bb => ti-img-rogue-umlibs_1.18.6276027.bb} | 68 +++++-------------- .../libgles/ti-sgx-ddk-um_1.17.4948957.bb | 30 +------- .../mesa/mesa-gl_22.%.bbappend | 1 + .../recipes-graphics/mesa/mesa_22.%.bbappend | 1 + .../recipes-graphics/mesa/pvr-mesa.inc | 48 +++++++++++++ 7 files changed, 84 insertions(+), 92 deletions(-) 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%) rename meta-ti-bsp/recipes-graphics/libgles/{ti-img-rogue-umlibs_1.15.6133109.bb => ti-img-rogue-umlibs_1.18.6276027.bb} (22%) create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.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_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.18.6276027.bb similarity index 22% rename from meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb rename to meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.18.6276027.bb index a665c614..924e46ba 100644 --- 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.18.6276027.bb @@ -1,71 +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://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f" +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f" -inherit features_check - -REQUIRED_MACHINE_FEATURES = "gpu" +inherit bin_package PACKAGE_ARCH = "${MACHINE_ARCH}" COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx" PR = "r2" -BRANCH = "linuxws/dunfell/k5.10/${PV}_unified_fw_pagesize" - +BRANCH = "linuxws/kirkstone/k5.10/${PV}" SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}" -SRCREV = "5977e82b96028f783d39c7219f016c1faf8dc5f5" +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 = "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" +PVR_BUILD = "release" +PVR_WS = "lws-generic" -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" +RDEPENDS:${PN} += "mesa-megadriver libdrm ti-img-rogue-driver" -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} +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" } -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" +PACKAGES = "${PN}-tools ${PN}" +FILES:${PN}-tools = "${bindir}/" +RDEPENDS:${PN}-tools = "python3-core" +RRECOMMENDS:${PN} += "${PN}-tools" -CLEANBROKEN = "1" +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 1c479ee0..f1fbed15 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,22 +3,18 @@ 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/git/graphics/omap5-sgx-ddk-um-linux.git;protocol=https;branch=${BRANCH} \ file://pvrsrvkm.rules \ " -SRCREV = "905809029b877fea42e91b9738825a6294ff1775" +SRCREV = "bbae7217051341f515515ec190e165119102f45a" TARGET_PRODUCT:ti33x = "ti335x" TARGET_PRODUCT:ti43x = "ti437x" @@ -33,26 +29,7 @@ inherit update-rc.d PACKAGECONFIG ??= "udev" PACKAGECONFIG[udev] = ",,,udev" -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" @@ -60,7 +37,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 without_sysvinit=${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)} with_udev=${@bb.utils.contains('PACKAGECONFIG', 'udev', 'true', 'false', d)} diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.bbappend new file mode 100644 index 00000000..912e9e9d --- /dev/null +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-gl_22.%.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.%.bbappend b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.bbappend new file mode 100644 index 00000000..912e9e9d --- /dev/null +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa_22.%.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..96c484a7 --- /dev/null +++ b/meta-ti-bsp/recipes-graphics/mesa/pvr-mesa.inc @@ -0,0 +1,48 @@ +# 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. + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=9a383ee9f65a4e939d6630e9b067ff58" + +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}," + +PACKAGECONFIG:remove = "video-codecs" +PACKAGECONFIG[video-codecs] = "" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +PV = "22.0.3+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:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"