diff mbox series

[meta-ti,master/scarthgap,3/3] mesa-pvr_23.2.1: add recipe for 23.2.1

Message ID 20240430213821.3697267-4-rs@ti.com
State Superseded
Delegated to: Ryan Eatmon
Headers show
Series GFX driver and mesa update | expand

Commit Message

Randolph Sapp April 30, 2024, 9:38 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Add a recipe for mesa-pvr to use a newer branch based on mesa 23.2.1.
This branch does not currently contain SGX patches so it is also being
masked by the ltsprep branding to prevent regressing those devices
currently.

Please note that because this recipe is currently in
SIGGEN_EXCLUDERECIPES_ABISAFE you may run into sstate errors when
switching away from the ltsprep tag. Please issue a clean to mesa and
ti-img-rogue-umlibs if you get warnings from either package's
do_create_runtime_spdx step.

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 .../recipes-graphics/mesa/mesa-pvr_23.2.1.bb  | 59 +++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb

Comments

Denys Dmytriyenko May 1, 2024, 4:47 p.m. UTC | #1
On Tue, Apr 30, 2024 at 04:38:21PM -0500, Randolph Sapp via lists.yoctoproject.org wrote:
> From: Randolph Sapp <rs@ti.com>
> 
> Add a recipe for mesa-pvr to use a newer branch based on mesa 23.2.1.
> This branch does not currently contain SGX patches so it is also being
> masked by the ltsprep branding to prevent regressing those devices
> currently.
> 
> Please note that because this recipe is currently in
> SIGGEN_EXCLUDERECIPES_ABISAFE you may run into sstate errors when
> switching away from the ltsprep tag.

This is less specific to SIGGEN_EXCLUDERECIPES_ABISAFE and more generic to 
any time you downgrade a component version while having a local sstate with 
a new version (and use a PR server as well) - it will show "Version going 
backwards" errors.


> Please issue a clean to mesa and
> ti-img-rogue-umlibs if you get warnings from either package's
> do_create_runtime_spdx step.
> 
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  .../recipes-graphics/mesa/mesa-pvr_23.2.1.bb  | 59 +++++++++++++++++++
>  1 file changed, 59 insertions(+)
>  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> 
> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> new file mode 100644
> index 00000000..c83ba87d
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> @@ -0,0 +1,59 @@
> +# 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.
> +
> +DEFAULT_PREFERENCE = "-1"
> +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}_${PV}:"
> +
> +require recipes-graphics/mesa/mesa.inc
> +
> +SUMMARY += " (with PowerVR support for TI platforms)"
> +
> +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
> +
> +BRANCH = "powervr/${PV}"
> +
> +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://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
> +    file://0001-gallium-Fix-build-with-llvm-17.patch \
> +    file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \
> +"
> +
> +S = "${WORKDIR}/git"
> +
> +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)} \
> +"
> +
> +SRCREV = "b12290126ba6a154f0e8b0a8c8b2b0d64f98e427"
> +
> +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] = ""
> +PACKAGECONFIG:remove = "elf-tls"
> +PACKAGECONFIG[elf-tls] = ""
> +PACKAGECONFIG:remove = "xvmc"
> +PACKAGECONFIG[xvmc] = ""
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
> +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
> +
> +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
> +
> +do_install:append () {
> +    # remove pvr custom pkgconfig
> +    rm -rf ${D}${datadir}/pkgconfig
> +}
> +
> +FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
> +FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
> +
> +RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> -- 
> 2.44.0
>
Randolph Sapp May 2, 2024, 6:15 p.m. UTC | #2
On Wed May 1, 2024 at 11:47 AM CDT, Denys Dmytriyenko wrote:
> On Tue, Apr 30, 2024 at 04:38:21PM -0500, Randolph Sapp via lists.yoctoproject.org wrote:
> > From: Randolph Sapp <rs@ti.com>
> > 
> > Add a recipe for mesa-pvr to use a newer branch based on mesa 23.2.1.
> > This branch does not currently contain SGX patches so it is also being
> > masked by the ltsprep branding to prevent regressing those devices
> > currently.
> > 
> > Please note that because this recipe is currently in
> > SIGGEN_EXCLUDERECIPES_ABISAFE you may run into sstate errors when
> > switching away from the ltsprep tag.
>
> This is less specific to SIGGEN_EXCLUDERECIPES_ABISAFE and more generic to 
> any time you downgrade a component version while having a local sstate with 
> a new version (and use a PR server as well) - it will show "Version going 
> backwards" errors.


See, that's what I assumed, but because the error was specifically about the
license stage, there was no generic [version-going-backwards] qa warning, and
the kernel wasn't suffering from the same issue I assumed it was related to
SIGGEN_EXCLUDERECIPES_ABISAFE trying to keep some artifacts around.

I did not get a chance to test it though. Do you know what the kernel does to
avoid this or is this? Is it some behavior handled specifically by the kernel
class? I asked Ryan about it when I first saw the error but he didn't know.


> > Please issue a clean to mesa and
> > ti-img-rogue-umlibs if you get warnings from either package's
> > do_create_runtime_spdx step.
> > 
> > Signed-off-by: Randolph Sapp <rs@ti.com>
> > ---
> >  .../recipes-graphics/mesa/mesa-pvr_23.2.1.bb  | 59 +++++++++++++++++++
> >  1 file changed, 59 insertions(+)
> >  create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> > 
> > diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> > new file mode 100644
> > index 00000000..c83ba87d
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
> > @@ -0,0 +1,59 @@
> > +# 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.
> > +
> > +DEFAULT_PREFERENCE = "-1"
> > +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}_${PV}:"
> > +
> > +require recipes-graphics/mesa/mesa.inc
> > +
> > +SUMMARY += " (with PowerVR support for TI platforms)"
> > +
> > +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
> > +
> > +BRANCH = "powervr/${PV}"
> > +
> > +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://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
> > +    file://0001-gallium-Fix-build-with-llvm-17.patch \
> > +    file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \
> > +"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +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)} \
> > +"
> > +
> > +SRCREV = "b12290126ba6a154f0e8b0a8c8b2b0d64f98e427"
> > +
> > +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] = ""
> > +PACKAGECONFIG:remove = "elf-tls"
> > +PACKAGECONFIG[elf-tls] = ""
> > +PACKAGECONFIG:remove = "xvmc"
> > +PACKAGECONFIG[xvmc] = ""
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +
> > +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
> > +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
> > +
> > +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
> > +
> > +do_install:append () {
> > +    # remove pvr custom pkgconfig
> > +    rm -rf ${D}${datadir}/pkgconfig
> > +}
> > +
> > +FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
> > +FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
> > +
> > +RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
> > -- 
> > 2.44.0
> >
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
new file mode 100644
index 00000000..c83ba87d
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb
@@ -0,0 +1,59 @@ 
+# 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.
+
+DEFAULT_PREFERENCE = "-1"
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}_${PV}:"
+
+require recipes-graphics/mesa/mesa.inc
+
+SUMMARY += " (with PowerVR support for TI platforms)"
+
+LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
+
+BRANCH = "powervr/${PV}"
+
+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://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
+    file://0001-gallium-Fix-build-with-llvm-17.patch \
+    file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \
+"
+
+S = "${WORKDIR}/git"
+
+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)} \
+"
+
+SRCREV = "b12290126ba6a154f0e8b0a8c8b2b0d64f98e427"
+
+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] = ""
+PACKAGECONFIG:remove = "elf-tls"
+PACKAGECONFIG[elf-tls] = ""
+PACKAGECONFIG:remove = "xvmc"
+PACKAGECONFIG[xvmc] = ""
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
+
+VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
+
+do_install:append () {
+    # remove pvr custom pkgconfig
+    rm -rf ${D}${datadir}/pkgconfig
+}
+
+FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
+FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
+
+RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"