diff mbox series

[v3] mesa: enable imagination powervr support

Message ID 20240319152642.360329-1-marcel@ziswiler.com
State Accepted, archived
Commit d52ba5f350dd1b468d089ed0bba2e17e6d89fb7d
Headers show
Series [v3] mesa: enable imagination powervr support | expand

Commit Message

Marcel Ziswiler March 19, 2024, 3:26 p.m. UTC
From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Allows mesa to be build with Imagination PowerVR support.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v3:
- Add a negative condition to the imagination PACKAGECONFIG as well,
  otherwise upstream defaults may result in an incorrect configuration
  (option being quietly enabled without it being present in
  PACKAGECONFIG) as pointed out by Alex.

Changes in v2:
- Define imagination as a standard PACKAGECONFIG setting as suggested by
  Alex.

 meta/recipes-graphics/mesa/mesa.inc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--
2.44.0

Comments

Randolph Sapp March 19, 2024, 7:58 p.m. UTC | #1
On Tue Mar 19, 2024 at 10:26 AM CDT, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Allows mesa to be build with Imagination PowerVR support.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v3:
> - Add a negative condition to the imagination PACKAGECONFIG as well,
>   otherwise upstream defaults may result in an incorrect configuration
>   (option being quietly enabled without it being present in
>   PACKAGECONFIG) as pointed out by Alex.
>
> Changes in v2:
> - Define imagination as a standard PACKAGECONFIG setting as suggested by
>   Alex.
>
>  meta/recipes-graphics/mesa/mesa.inc | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
> index 12d7a18eb8..0d4a37c34a 100644
> --- a/meta/recipes-graphics/mesa/mesa.inc
> +++ b/meta/recipes-graphics/mesa/mesa.inc
> @@ -113,6 +113,7 @@ VULKAN_DRIVERS:append:i686 = ",intel,amd"
>  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
>  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
>  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
> +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
>  PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
>
>  # mesa development and testing tools support, per driver
> @@ -122,6 +123,7 @@ TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '',
>  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
>  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
>  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
> +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
>
>  # dependencies for tools.
>  TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
> @@ -189,6 +191,8 @@ PACKAGECONFIG[xa]  = "-Dgallium-xa=enabled, -Dgallium-xa=disabled"
>  PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
>  PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
>
> +PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
> +
>  PACKAGECONFIG[lima] = ""
>  GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
>
> @@ -327,7 +331,7 @@ PACKAGES_DYNAMIC += "^mesa-driver-.*"
>  PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
>
>  FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
> -FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
> +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
>  FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
>  FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
>  FILES:libgbm = "${libdir}/libgbm.so.*"
> --
> 2.44.0

Looks good. Thanks Marcel! Running a test build now to verify things. Will
respond with Tested-By whenever that finishes.

Reviewed-by: Randolph Sapp <rs@ti.com>
Randolph Sapp March 19, 2024, 11:40 p.m. UTC | #2
On Tue Mar 19, 2024 at 2:58 PM CDT, Randolph Sapp via lists.openembedded.org wrote:
> On Tue Mar 19, 2024 at 10:26 AM CDT, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >
> > Allows mesa to be build with Imagination PowerVR support.
> >
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >
> > ---
> >
> > Changes in v3:
> > - Add a negative condition to the imagination PACKAGECONFIG as well,
> >   otherwise upstream defaults may result in an incorrect configuration
> >   (option being quietly enabled without it being present in
> >   PACKAGECONFIG) as pointed out by Alex.
> >
> > Changes in v2:
> > - Define imagination as a standard PACKAGECONFIG setting as suggested by
> >   Alex.
> >
> >  meta/recipes-graphics/mesa/mesa.inc | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
> > index 12d7a18eb8..0d4a37c34a 100644
> > --- a/meta/recipes-graphics/mesa/mesa.inc
> > +++ b/meta/recipes-graphics/mesa/mesa.inc
> > @@ -113,6 +113,7 @@ VULKAN_DRIVERS:append:i686 = ",intel,amd"
> >  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
> >  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
> >  VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
> > +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
> >  PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
> >
> >  # mesa development and testing tools support, per driver
> > @@ -122,6 +123,7 @@ TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '',
> >  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
> >  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
> >  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
> > +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
> >
> >  # dependencies for tools.
> >  TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
> > @@ -189,6 +191,8 @@ PACKAGECONFIG[xa]  = "-Dgallium-xa=enabled, -Dgallium-xa=disabled"
> >  PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
> >  PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
> >
> > +PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
> > +
> >  PACKAGECONFIG[lima] = ""
> >  GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
> >
> > @@ -327,7 +331,7 @@ PACKAGES_DYNAMIC += "^mesa-driver-.*"
> >  PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
> >
> >  FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
> > -FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
> > +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
> >  FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
> >  FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
> >  FILES:libgbm = "${libdir}/libgbm.so.*"
> > --
> > 2.44.0
>
> Looks good. Thanks Marcel! Running a test build now to verify things. Will
> respond with Tested-By whenever that finishes.
>
> Reviewed-by: Randolph Sapp <rs@ti.com>

Sets thing's up as well as they can be right now!

General question for the mailing list, though: for drivers that only provide
Vulkan, should zink automatically get appended to them PACKAGECONFIG string if
the opengl distro feature is selected? I don't expect this patch to do it now as
this version of the driver is still not fully Vulkan compliant, but later it'll
be relevant.

Tested-by: Randolph Sapp <rs@ti.com>
diff mbox series

Patch

diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 12d7a18eb8..0d4a37c34a 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -113,6 +113,7 @@  VULKAN_DRIVERS:append:i686 = ",intel,amd"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
+VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
 PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"

 # mesa development and testing tools support, per driver
@@ -122,6 +123,7 @@  TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '',
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
+TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"

 # dependencies for tools.
 TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
@@ -189,6 +191,8 @@  PACKAGECONFIG[xa]  = "-Dgallium-xa=enabled, -Dgallium-xa=disabled"
 PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
 PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"

+PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
+
 PACKAGECONFIG[lima] = ""
 GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"

@@ -327,7 +331,7 @@  PACKAGES_DYNAMIC += "^mesa-driver-.*"
 PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"

 FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
-FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
+FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
 FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
 FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
 FILES:libgbm = "${libdir}/libgbm.so.*"