* [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes
@ 2020-04-27 0:39 q66
2020-04-27 0:44 ` q66
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: q66 @ 2020-04-27 0:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 901 bytes --]
There is a new pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9436 bytes --]
From 081dc326dff2420eb6b9259eb677dae1f0796d06 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
---
srcpkgs/mesa/template | 208 +++++++++++++++++++++++++++---------------
1 file changed, 136 insertions(+), 72 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..df805fbe75e 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -30,88 +29,153 @@ build_options="wayland"
build_options_default="wayland"
# Set subpackages manually to set proper rdeps in 32bit pkgs.
-subpackages="libglapi libgbm libOSMesa"
+subpackages="libglapi libgbm libOSMesa mesa-dri"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers="swrast"
+_vulkan_drivers=""
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=""
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia, dri3 and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_dri3=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ -n "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri"
+ subpackages+=" mesa-vc4-dri mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+if [ "$_have_dri3" ]; then
+ configure_args+=" -Ddri3=true"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" -Dgallium-drivers=${_gallium_drivers}"
+configure_args+=" -Dvulkan-drivers=${_vulkan_drivers}"
+configure_args+=" -Ddri-drivers=${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
# -devel must be the last one for proper order.
subpackages+=" MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +225,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +245,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
@ 2020-04-27 0:44 ` q66
2020-04-27 0:56 ` [PR PATCH] [Updated] " q66
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 0:44 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 222 bytes --]
New comment by q66 on void-packages repository
https://github.com/void-linux/void-packages/pull/21362#issuecomment-619652448
Comment:
oops, left the conditional dri3 in; will remove that for merge, shouldn't hurt travis
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Updated] mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
2020-04-27 0:44 ` q66
@ 2020-04-27 0:56 ` q66
2020-04-27 1:21 ` q66
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 0:56 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9208 bytes --]
From 3a8f8b86efc673676706b25ae77b3ff28d18e51a Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
---
srcpkgs/mesa/template | 205 +++++++++++++++++++++++++++---------------
1 file changed, 132 insertions(+), 73 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..b665c26a28e 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -35,83 +34,143 @@ subpackages="libglapi libgbm libOSMesa"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers="swrast"
+_vulkan_drivers=
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ -n "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri"
+ subpackages+=" mesa-vc4-dri mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" -Dgallium-drivers=${_gallium_drivers}"
+configure_args+=" -Dvulkan-drivers=${_vulkan_drivers}"
+configure_args+=" -Ddri-drivers=${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
-# -devel must be the last one for proper order.
-subpackages+=" MesaLib-devel"
+# must be the last one for proper order
+subpackages+=" mesa-dri MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +220,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +240,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Updated] mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
2020-04-27 0:44 ` q66
2020-04-27 0:56 ` [PR PATCH] [Updated] " q66
@ 2020-04-27 1:21 ` q66
2020-04-27 1:44 ` q66
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 1:21 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9948 bytes --]
From d68f147b101ba4a5f25b7e607b094261ec839b18 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
---
srcpkgs/mesa/template | 215 +++++++++++++++++++++++++++---------------
1 file changed, 140 insertions(+), 75 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..f656d03cc4e 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -35,83 +34,143 @@ subpackages="libglapi libgbm libOSMesa"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers="swrast"
+_vulkan_drivers=
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ -n "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri"
+ subpackages+=" mesa-vc4-dri mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" -Dgallium-drivers=${_gallium_drivers}"
+configure_args+=" -Dvulkan-drivers=${_vulkan_drivers}"
+configure_args+=" -Ddri-drivers=${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
-# -devel must be the last one for proper order.
-subpackages+=" MesaLib-devel"
+# must be the last one for proper order
+subpackages+=" mesa-dri MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +220,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +240,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
@@ -262,7 +321,10 @@ mesa-ati-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for ATI GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
+ depends="mesa-dri mesa-vulkan-radeon"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-etnaviv-dri_package() {
@@ -304,7 +366,10 @@ mesa-nouveau-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for NVIDIA GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
+ depends="mesa-dri"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-panfrost-dri_package() {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Updated] mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
` (2 preceding siblings ...)
2020-04-27 1:21 ` q66
@ 2020-04-27 1:44 ` q66
2020-04-27 1:57 ` q66
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 1:44 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9915 bytes --]
From e0b4db4799614c6e9d5f5c093045b2965d9b181a Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
---
srcpkgs/mesa/template | 213 +++++++++++++++++++++++++++---------------
1 file changed, 138 insertions(+), 75 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..3ecdd859b2b 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -35,83 +34,141 @@ subpackages="libglapi libgbm libOSMesa"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers=" -Dgallium-drivers=swrast"
+_vulkan_drivers=" -Dvulkan-drivers="
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=" -Ddri-drivers="
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ -n "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri"
+ subpackages+=" mesa-vc4-dri mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" ${_gallium_drivers} ${_vulkan_drivers} ${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
-# -devel must be the last one for proper order.
-subpackages+=" MesaLib-devel"
+# must be the last one for proper order
+subpackages+=" mesa-dri MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +218,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +238,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
@@ -262,7 +319,10 @@ mesa-ati-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for ATI GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
+ depends="mesa-dri mesa-vulkan-radeon"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-etnaviv-dri_package() {
@@ -304,7 +364,10 @@ mesa-nouveau-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for NVIDIA GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
+ depends="mesa-dri"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-panfrost-dri_package() {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Updated] mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
` (3 preceding siblings ...)
2020-04-27 1:44 ` q66
@ 2020-04-27 1:57 ` q66
2020-04-27 1:58 ` q66
2020-04-27 1:59 ` [PR PATCH] [Merged]: " q66
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 1:57 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9917 bytes --]
From 644723d928949ba3927c870cb477a8c932d3f42d Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
---
srcpkgs/mesa/template | 214 +++++++++++++++++++++++++++---------------
1 file changed, 139 insertions(+), 75 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..04911f6b74e 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -35,83 +34,142 @@ subpackages="libglapi libgbm libOSMesa"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers=" -Dgallium-drivers=swrast"
+_vulkan_drivers=" -Dvulkan-drivers="
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=" -Ddri-drivers="
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ -n "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ subpackages+=" mesa-tegra-dri"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-v3d-dri mesa-vc4-dri"
+ subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" ${_gallium_drivers} ${_vulkan_drivers} ${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
-# -devel must be the last one for proper order.
-subpackages+=" MesaLib-devel"
+# must be the last one for proper order
+subpackages+=" mesa-dri MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +219,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +239,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
@@ -262,7 +320,10 @@ mesa-ati-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for ATI GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
+ depends="mesa-dri mesa-vulkan-radeon"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-etnaviv-dri_package() {
@@ -304,7 +365,10 @@ mesa-nouveau-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for NVIDIA GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
+ depends="mesa-dri"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-panfrost-dri_package() {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Updated] mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
` (4 preceding siblings ...)
2020-04-27 1:57 ` q66
@ 2020-04-27 1:58 ` q66
2020-04-27 1:59 ` [PR PATCH] [Merged]: " q66
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 1:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages mesa-reorg
https://github.com/void-linux/void-packages/pull/21362
mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
A patch file from https://github.com/void-linux/void-packages/pull/21362.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mesa-reorg-21362.patch --]
[-- Type: text/x-diff, Size: 9958 bytes --]
From 9e420eedd9b883642431becde5fb563682da08bd Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon, 27 Apr 2020 02:19:35 +0200
Subject: [PATCH] mesa: reorg driver config to be mostly feature based + fixes
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
[ci skip]
---
srcpkgs/mesa/template | 215 +++++++++++++++++++++++++++---------------
1 file changed, 140 insertions(+), 75 deletions(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index fc4550e7686..014107d2541 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,14 +1,13 @@
# Template file for 'mesa'
pkgname=mesa
version=20.0.5
-revision=2
+revision=3
wrksrc="mesa-${version}"
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true
- -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium
- -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true
- -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true
- -Db_lto=false"
+ -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dglx=dri -Ddri3=true
+ -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless
+ -Dllvm=true -Db_lto=false"
hostmakedepends="gettext flex libxml2-python llvm pkg-config
python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel')
glslang"
@@ -35,83 +34,143 @@ subpackages="libglapi libgbm libOSMesa"
# Replace old mesa pkgs, superseded by libglvnd.
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
+# Driver configuration
+# Check for correctness on major mesa version updates
+# Particularly, check if any new worthwhile drivers were added
+
+# swrast always present
+_gallium_drivers=" -Dgallium-drivers=swrast"
+_vulkan_drivers=" -Dvulkan-drivers="
+# legacy drivers only on x86 and ppc in general
+_dri_drivers=" -Ddri-drivers="
+
+# amd drivers only on x86 and ppc
+# this also enables clover opencl
case "$XBPS_TARGET_MACHINE" in
-i686*|x86_64*)
- # Enable all x86 drivers.
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Ddri-drivers=auto"
- configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true"
- configure_args+=" -Dvulkan-drivers=auto"
- configure_args+=" -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-overlay-layer=true"
+ i686*|x86_64*|ppc*) _have_amd=yes ;;
+esac
+
+# hardware video decoding on x86, ppc, aarch64
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|aarch64*) _have_hwdec=yes ;;
+esac
+
+# most platforms get nvidia and virgl
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*|ppc*|armv[67]*|aarch64*)
+ _have_nv=yes
+ _have_virgl=yes
+ ;;
+esac
+
+# x86 additionally gets intel, vmware and gallium nine
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ _have_intel=yes
+ _have_vmware=yes
+ _have_nine=yes
+ ;;
+esac
+
+if [ "$_have_amd" ]; then
+ # amd cards can use clover
+ _have_opencl=yes
+ _gallium_drivers+=",r300,r600,radeonsi"
+ _vulkan_drivers+=",amd"
+ _dri_drivers+=",r100,r200"
+ subpackages+=" mesa-vulkan-radeon"
+ # transitional dummy packages
+ subpackages+=" mesa-ati-dri"
+fi
+
+if [ "$_have_intel" ]; then
+ _gallium_drivers+=",iris"
+ _vulkan_drivers+=",intel"
+ _dri_drivers+=",i915,i965"
+ subpackages+=" mesa-vulkan-intel"
+ # transitional dummy packages
+ subpackages+=" mesa-intel-dri"
+fi
+
+if [ "$_have_nv" ]; then
+ _gallium_drivers+=",nouveau"
+ if [ "$_have_arm" ]; then
+ _gallium_drivers+=",tegra"
+ # transitional dummy packages
+ subpackages+=" mesa-tegra-dri"
+ else
+ _dri_drivers+=",nouveau"
+ fi
+ # transitional dummy packages
+ subpackages+=" mesa-nouveau-dri"
+fi
+
+if [ "$_have_arm" ]; then
+ _gallium_drivers+=",kmsro"
+ _gallium_drivers+=",v3d,vc4,freedreno,etnaviv,lima,panfrost"
+ # transitional dummy packages
+ subpackages+=" mesa-kmsro-dri mesa-v3d-dri mesa-vc4-dri"
+ subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri"
+ subpackages+=" mesa-lima-dri mesa-panfrost-dri"
+fi
+
+if [ "$_have_virgl" ]; then
+ _gallium_drivers+=",virgl"
+fi
+
+if [ "$_have_nine" ]; then
+ configure_args+=" -Dgallium-nine=true"
+fi
+
+if [ "$_have_vmware" ]; then
+ _gallium_drivers+=",svga"
+ configure_args+=" -Dgallium-xa=true"
+ subpackages+=" libxatracker"
+ # transitional dummy packages
+ subpackages+=" mesa-vmwgfx-dri"
+else
+ configure_args+=" -Dgallium-xa=false"
+fi
+
+# enabled currently by amd drivers
+if [ "$_have_opencl" ]; then
hostmakedepends+=" clang"
makedepends+=" libclc-git"
- subpackages+=" libxatracker mesa-opencl mesa-dri mesa-vaapi mesa-vdpau"
- subpackages+=" mesa-XvMC mesa-vulkan-intel mesa-vulkan-radeon mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-intel-dri mesa-nouveau-dri mesa-vmwgfx-dri"
- ;;
-ppc*)
- # Enable all ppc drivers.
- configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl"
- configure_args+=" -Ddri-drivers=r100,r200,nouveau"
- configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd"
- configure_args+=" -Dvulkan-drivers=amd"
+ subpackages+=" mesa-opencl"
+ configure_args+=" -Dgallium-opencl=icd"
+fi
+
+if [ "$_have_hwdec" ]; then
+ configure_args+=" -Dgallium-vdpau=true -Dgallium-va=true -Dgallium-xvmc=true"
+ subpackages+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+else
+ configure_args+=" -Dgallium-vdpau=false -Dgallium-va=false -Dgallium-xvmc=false"
+fi
+
+configure_args+=" ${_gallium_drivers} ${_vulkan_drivers} ${_dri_drivers}"
+
+if [ "$_vulkan_drivers" ]; then
configure_args+=" -Dvulkan-overlay-layer=true"
- # Explicitly control power8 feature usage, disable on BE
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) configure_args+=" -Dpower8=true";;
- *) configure_args+=" -Dpower8=false";;
- esac
- hostmakedepends+=" clang"
- makedepends+=" libclc-git"
- subpackages+=" mesa-opencl mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
subpackages+=" mesa-vulkan-overlay-layer"
- # Transitional dummy packages
- subpackages+=" mesa-ati-dri mesa-nouveau-dri"
- ;;
-aarch64*)
- # Enable all ARM drivers
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers="
- configure_args+=" -Dgallium-xa=false -Ddri3=true"
- subpackages+=" mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
- # Transitional dummy packages
- subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri"
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri"
- ;;
-armv[67]l*)
- configure_args+=" -Dgallium-drivers=auto"
- configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false"
- subpackages+=" mesa-dri"
- # Transitional dummy packages
- subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri"
- ;;
-*)
- # Enable swrast driver.
- configure_args+=" -Dgallium-drivers=swrast"
- configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false"
- configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false"
- configure_args+=" -Dgallium-xa=false"
- subpackages+=" mesa-dri"
- ;;
-esac
+fi
-# -devel must be the last one for proper order.
-subpackages+=" MesaLib-devel"
+# must be the last one for proper order
+subpackages+=" mesa-dri MesaLib-devel"
case "$XBPS_TARGET_MACHINE" in
- i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
- *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
+ ppc64le*) configure_args+=" -Dpower8=true" ;;
+ ppc*) configure_args+=" -Dpower8=false" ;;
esac
case "$XBPS_TARGET_MACHINE" in
- # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966
- *-musl) configure_args+=" -Duse-elf-tls=false";;
- *) configure_args+=" -Dglx=dri";;
+ i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";;
+ *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";;
esac
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -Duse-elf-tls=false"
+fi
+
post_configure() {
if [ "$CROSS_BUILD" ]; then
find -iname "*.ninja" -exec sed -i "{}" \
@@ -161,9 +220,9 @@ MesaLib-devel_package() {
libdrm-devel libglvnd-devel
libOSMesa>=${version}_${revision} libgbm>=${version}_${revision}
mesa>=${version}_${revision}"
- case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";;
- esac
+ if [ "$_have_vmware" ]; then
+ depends+=" libxatracker>=${version}_${revision}"
+ fi
short_desc+=" - development files"
pkg_install() {
vmove usr/include
@@ -181,7 +240,7 @@ libxatracker_package() {
mesa-opencl_package() {
short_desc="Mesa implementation of OpenCL (r600+ only)"
- depends="libclc libOpenCL"
+ depends="libclc-git ocl-icd"
pkg_install() {
vmove etc/OpenCL
vmove "usr/lib/libMesaOpenCL.so.*"
@@ -262,7 +321,10 @@ mesa-ati-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for ATI GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC mesa-vulkan-radeon"
+ depends="mesa-dri mesa-vulkan-radeon"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-etnaviv-dri_package() {
@@ -304,7 +366,10 @@ mesa-nouveau-dri_package() {
build_style=meta
lib32mode=full
short_desc="Mesa DRI drivers for NVIDIA GPUs (transitional dummy package)"
- depends="mesa-dri mesa-vaapi mesa-vdpau mesa-XvMC"
+ depends="mesa-dri"
+ if [ "$_have_hwdec" ]; then
+ depends+=" mesa-vaapi mesa-vdpau mesa-XvMC"
+ fi
}
mesa-panfrost-dri_package() {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PR PATCH] [Merged]: mesa: reorg driver config to be mostly feature based + fixes
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
` (5 preceding siblings ...)
2020-04-27 1:58 ` q66
@ 2020-04-27 1:59 ` q66
6 siblings, 0 replies; 8+ messages in thread
From: q66 @ 2020-04-27 1:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 750 bytes --]
There's a merged pull request on the void-packages repository
mesa: reorg driver config to be mostly feature based + fixes
https://github.com/void-linux/void-packages/pull/21362
Description:
This makes sure we can simply turn on features on/off per arch
in one place and then never explicitly check architecture again.
Also makes turning features on/off easy.
This also goes back to the manual driver list, so that we aren't
subject to mesa randomly turning things on/off.
Also, always enable dri3 and glx=dri, this seems to be the default
anyway, but be explicit about it; on the other hand, control
enablement of gallium-va and other hwdec stuff properly.
Also fix dependencies of mesa-opencl.
Just PRing this so travis can run.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-04-27 1:59 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27 0:39 [PR PATCH] mesa: reorg driver config to be mostly feature based + fixes q66
2020-04-27 0:44 ` q66
2020-04-27 0:56 ` [PR PATCH] [Updated] " q66
2020-04-27 1:21 ` q66
2020-04-27 1:44 ` q66
2020-04-27 1:57 ` q66
2020-04-27 1:58 ` q66
2020-04-27 1:59 ` [PR PATCH] [Merged]: " q66
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).