aboutsummaryrefslogtreecommitdiffstats
path: root/main/mesa/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/mesa/APKBUILD')
-rw-r--r--main/mesa/APKBUILD356
1 files changed, 198 insertions, 158 deletions
diff --git a/main/mesa/APKBUILD b/main/mesa/APKBUILD
index 40e31691d31..e50ba0de6a0 100644
--- a/main/mesa/APKBUILD
+++ b/main/mesa/APKBUILD
@@ -1,25 +1,30 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mesa
-pkgver=20.0.7
-pkgrel=0
+pkgver=24.0.4
+pkgrel=1
pkgdesc="Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
-license="MIT SGI-B-2.0 BSL-1.0"
+license="MIT AND SGI-B-2.0 AND BSL-1.0"
subpackages="
$pkgname-dbg
$pkgname-dev
- $pkgname-dri-classic:_dri
- $pkgname-dri-gallium:_dri
+ $pkgname-dri-gallium:_gallium
$pkgname-va-gallium:_va
$pkgname-vdpau-gallium:_vdpau
- $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
- $pkgname-xatracker $pkgname-osmesa $pkgname-gbm
+ $pkgname-glapi
+ $pkgname-egl
+ $pkgname-gl
+ $pkgname-gles
+ $pkgname-xatracker
+ $pkgname-osmesa
+ $pkgname-gbm
$pkgname-vulkan-ati:_vulkan
- $pkgname-dri-ati:_dri_deprecated
- $pkgname-dri-nouveau:_dri_deprecated
+ $pkgname-vulkan-swrast:_vulkan
+ $pkgname-vulkan-layers:_vulkan_layers
+ $pkgname-libd3dadapter9
"
-_llvmver=10
+_llvmver=17
depends_dev="
libdrm-dev
libxext-dev
@@ -36,22 +41,21 @@ makedepends="
flex
gettext
elfutils-dev
+ glslang-dev
libtool
libxfixes-dev
libva-dev
libvdpau-dev
libx11-dev
+ libxml2-dev
libxrandr-dev
- libxt-dev
- libxvmc-dev
libxxf86vm-dev
llvm$_llvmver-dev
- makedepend
meson
py3-mako
- py3-libxml2
+ py3-packaging
python3
- talloc-dev
+ vulkan-loader-dev
wayland-dev
wayland-protocols
xorgproto
@@ -59,166 +63,212 @@ makedepends="
zstd-dev
"
source="
- https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz
- adjust-cache-deflate-buffer.patch
- musl-fix-includes.patch
- add-use-elf-tls.patch
- missing-dep-on-sha1_h.patch
- time_h.patch
- disable-rgb10-by-default.patch
+ https://mesa.freedesktop.org/archive/mesa-${pkgver/_/-}.tar.xz
+ enable-mali-t600.patch
+ no-unlink-megadrivers.patch
"
replaces="mesa-dricore"
-
-if [ "$CARCH" = x86 ]; then
- # Bug upstream that needs to be fixed
- options="$options textrels"
-fi
+options="!check" # we skip tests intentionally
+builddir="$srcdir/mesa-${pkgver/_/-}"
_dri_driverdir=/usr/lib/xorg/modules/dri
-_dri_drivers="r100,r200,nouveau"
-_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl"
-_gallium_provides="
- $pkgname-dri-swrast=$pkgver-r$pkgrel
- $pkgname-dri-virtio=$pkgver-r$pkgrel
- "
-_vulkan_drivers="amd"
-_arch_opts=""
-_vulkan_overlay_layer=false
+_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl,zink"
+_vulkan_drivers="amd,swrast"
+_vulkan_layers="device-select,overlay"
+
+# extra gallium per arch
case "$CARCH" in
x86*)
- _dri_drivers="${_dri_drivers},i915,i965"
- _gallium_drivers="${_gallium_drivers},svga,iris"
- _vulkan_drivers="${_vulkan_drivers},intel"
- _vulkan_overlay_layer=true
- makedepends="$makedepends glslang"
- subpackages="$subpackages \
- $pkgname-dri-intel:_dri_deprecated \
- $pkgname-vulkan-intel:_vulkan
- $pkgname-vulkan-layer:_vulkan_layer"
- _gallium_provides="$_gallium_provides $pkgname-dri-vmwgfx=$pkgver-r$pkgrel"
- _arch_opts="-Ddri3=true"
- case "$CARCH" in
- x86)
- _arch_opts="$_arch_opts -Dglx-read-only-text=true -Dasm=false";;
- esac
+ _gallium_drivers="$_gallium_drivers,svga,i915,iris,crocus"
;;
armhf|armv7|aarch64)
- _gallium_drivers="${_gallium_drivers},vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra"
- _gallium_provides="$_gallium_provides
- $pkgname-dri-vc4=$pkgver-r$pkgrel
- $pkgname-dri-v3d=$pkgver-r$pkgrel
- $pkgname-dri-freedreno=$pkgver-r$pkgrel
- $pkgname-dri-kmsro=$pkgver-r$pkgrel
- $pkgname-dri-lima=$pkgver-r$pkgrel
- $pkgname-dri-panfrost=$pkgver-r$pkgrel
- $pkgname-dri-etnaviv=$pkgver-r$pkgrel
- $pkgname-dri-tegra=$pkgver-r$pkgrel
+ _gallium_drivers="$_gallium_drivers,vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra"
+ ;;
+esac
+
+# extra vulkan per arch
+case "$CARCH" in
+x86*)
+ _vulkan_drivers="$_vulkan_drivers,intel,intel_hasvk"
+ _vulkan_layers="$_vulkan_layers,intel-nullhw"
+ subpackages="
+ $subpackages
+ $pkgname-vulkan-intel:_vulkan
+ "
+ ;;
+aarch64)
+ _vulkan_drivers="$_vulkan_drivers,broadcom,freedreno,panfrost"
+ subpackages="
+ $subpackages
+ $pkgname-vulkan-broadcom:_vulkan
+ $pkgname-vulkan-freedreno:_vulkan
+ $pkgname-vulkan-panfrost:_vulkan
+ "
+ ;;
+esac
+
+case "$CARCH" in
+x86)
+ # lto fails on x86 only
+ # mostly:
+ # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21371
+ # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21180
+ _lto=false
+ ;;
+*)
+ # ~5% smaller
+ _lto=true
+ ;;
+esac
+
+case "$CARCH" in
+aarch64|x86_64)
+ _rusticl=true
+ makedepends="
+ $makedepends
+ clang$_llvmver-dev
+ libclc-dev~$_llvmver
+ rust
+ rust-bindgen
+ spirv-llvm-translator-dev
+ "
+ subpackages="
+ $subpackages
+ $pkgname-rusticl
"
;;
+*)
+ _rusticl=false
+ ;;
esac
build() {
- export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
- export MESA_GIT_SHA1_OVERRIDE=53b2b224dc2de982c37915a0ad218e33365ff75e
-
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
+ # use -g1 to generate less debug info:
+ # 485 MiB -> ~80 MiB
+ export CFLAGS="$CFLAGS -O2 -g1"
+ export CXXFLAGS="$CXXFLAGS -O2 -g1"
+ export CPPFLAGS="$CPPFLAGS -O2 -g1"
+
+ case "$CARCH" in
+ armhf|armv7)
+ # gnu2 tlsdesc is broken in binutils
+ export CFLAGS="$CFLAGS -mtls-dialect=gnu"
+ export CXXFLAGS="$CXXFLAGS -mtls-dialect=gnu"
+ ;;
+ esac
+
+ PATH="$PATH:/usr/lib/llvm$_llvmver/bin" \
+ abuild-meson \
+ -Db_ndebug=true \
+ -Db_lto=$_lto \
+ -Dbackend_max_links=2 \
-Ddri-drivers-path=$_dri_driverdir \
-Dgallium-drivers=$_gallium_drivers \
- -Ddri-drivers=$_dri_drivers \
-Dvulkan-drivers=$_vulkan_drivers \
- -Dvulkan-overlay-layer=$_vulkan_overlay_layer \
- -Dplatforms=x11,drm,wayland,surfaceless \
- -Dllvm=true \
- -Dshared-llvm=true \
- -Dshared-glapi=true \
- -Dgbm=true \
+ -Dvulkan-layers=$_vulkan_layers \
+ -Dplatforms=x11,wayland \
+ -Dllvm=enabled \
+ -Dshared-llvm=enabled \
+ -Dshared-glapi=enabled \
+ -Dgbm=enabled \
-Dglx=dri \
-Dopengl=true \
- -Dosmesa=gallium \
- -Dgles1=false \
- -Dgles2=true \
- -Degl=true \
- -Dgallium-xa=true \
- -Dgallium-vdpau=true \
- -Dgallium-va=true \
- -Dgallium-xvmc=false \
- -Dgallium-nine=false \
- -Db_ndebug=true \
- $_arch_opts \
+ -Dosmesa=true \
+ -Dgles1=enabled \
+ -Dgles2=enabled \
+ -Degl=enabled \
+ -Dgallium-extra-hud=true \
+ -Dgallium-nine=true \
+ -Dgallium-rusticl=$_rusticl \
+ -Dgallium-va=enabled \
+ -Dgallium-vdpau=enabled \
+ -Dgallium-xa=enabled \
+ -Drust_std=2021 \
+ -Dvideo-codecs=all \
. output
# Print config
- meson configure output
-
- # parallel build workaround
- ninja -C output src/compiler/nir/nir_intrinsics.h
+ meson configure --no-pager output
- ninja -C output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ provider_priority=100
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
egl() {
pkgdesc="Mesa libEGL runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libEGL.so*
}
gl() {
pkgdesc="Mesa libGL runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libGL.so*
}
glapi() {
pkgdesc="Mesa shared glapi"
replaces="$pkgname-gles=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libglapi.so.*
}
gles() {
pkgdesc="Mesa libGLESv2 runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libGLES*.so*
}
xatracker() {
pkgdesc="Mesa XA state tracker for vmware"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libxatracker*.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libxatracker*.so.*
}
osmesa() {
pkgdesc="Mesa offscreen rendering libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libOSMesa.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libOSMesa.so.*
}
gbm() {
pkgdesc="Mesa gbm library"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
+
+ amove usr/lib/libgbm.so.*
+}
+
+libd3dadapter9() {
+ pkgdesc="Mesa directx9 adapter"
+ depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
+
+ amove usr/lib/d3d/d3dadapter9.so*
+}
+
+rusticl() {
+ pkgdesc="Mesa OpenCL driver"
+ depends="mesa=$pkgver-r$pkgrel clang$_llvmver-headers libclc~$_llvmver"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libRusticlOpenCL.so.*
+ amove etc/OpenCL/vendors/
}
# Move links referencing the same file to the subpackage.
@@ -233,11 +283,9 @@ _mv_links() {
_mv_vulkan() {
local i
- install -d "$subpkgdir"/usr/lib
- install -d "$subpkgdir"/usr/share/vulkan/icd.d
for i in "$@"; do
- mv "$pkgdir"/usr/lib/libvulkan_$i.so "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/share/vulkan/icd.d/${i}* "$subpkgdir"/usr/share/vulkan/icd.d/
+ amove usr/lib/libvulkan_$i*.so
+ amove usr/share/vulkan/icd.d/${i}_*.*
done
}
@@ -245,44 +293,20 @@ _mv_vulkan() {
# library. This library is then hard-linked to separate files (one for each driver).
# Each subpackage contains one megadriver so that all the hard-links are preserved.
-_dri() {
- local n=${subpkgname##*-dri-}
- pkgdesc="Mesa $n DRI drivers"
+_gallium() {
+ pkgdesc="Mesa gallium DRI drivers"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- case $n in
- classic)
- # libmesa_dri_drivers.so
- _mv_links $_dri_driverdir radeon_dri.so ;;
- gallium)
- # libgallium_dri.so
- _mv_links $_dri_driverdir swrast_dri.so
- provides="$_gallium_provides"
- ;;
- esac
-}
-
-# Compatibility packages for upgrading from the old (driver-specific) subpackages
-_dri_deprecated() {
- local n=${subpkgname##*-dri-}
- pkgdesc="Mesa DRI drivers for $n (DEPRECATED)"
- depends="
- mesa-dri-classic=$pkgver-r$pkgrel
- mesa-dri-gallium=$pkgver-r$pkgrel
- "
-
- case $n in
- ati|nouveau)
- depends="$depends mesa-va-gallium mesa-vdpau-gallium" ;;
- esac
-
- mkdir "$subpkgdir"
+ # libgallium_dri.so
+ _mv_links $_dri_driverdir swrast_dri.so
}
_va() {
local n=${subpkgname##*-va-}
pkgdesc="Mesa $n VAAPI drivers"
depends="mesa=$pkgver-r$pkgrel libva"
+ provider_priority=100
case $n in
gallium)
@@ -295,6 +319,7 @@ _vdpau() {
local n=${subpkgname##*-vdpau-}
pkgdesc="Mesa $n VDPAU drivers"
depends="mesa=$pkgver-r$pkgrel libvdpau"
+ provider_priority=100
case $n in
gallium)
@@ -307,30 +332,45 @@ _vulkan() {
local n=${subpkgname##*-vulkan-}
pkgdesc="Mesa Vulkan API driver for $n"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
case $n in
ati)
_mv_vulkan radeon ;;
intel)
_mv_vulkan intel ;;
+ broadcom)
+ _mv_vulkan broadcom ;;
+ freedreno)
+ _mv_vulkan freedreno ;;
+ panfrost)
+ _mv_vulkan panfrost ;;
+ swrast)
+ _mv_vulkan lvp ;;
esac
}
-_vulkan_layer() {
- pkgdesc="Vulkan overlay layer to display information about the application"
- depends=""
-
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/vulkan "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/share/vulkan/explicit_layer.d "$subpkgdir"/usr/share/vulkan
- mv "$pkgdir"/usr/lib/libVkLayer_MESA_overlay.so "$subpkgdir"/usr/lib
-
- mv "$pkgdir"/usr/bin/mesa-overlay-control.py "$subpkgdir"/usr/bin
+_vulkan_layers() {
+ pkgdesc="collection of vulkan layers from mesa"
+ depends="python3"
+ provider_priority=100
+
+ # Remove this after the release of the next stable (3.14)
+ # it originally was claed layer as it only packaged the
+ # overlay one but now it also packages device-select and
+ # intel-nullhw (on x86*)
+ provides="$pkgname-vulkan-layer=$pkgver-r$pkgrel"
+ provider_priority=100
+ replaces="$pkgname-vulkan-layer=$pkgver-r$pkgrel"
+
+ amove usr/share/vulkan/explicit_layer.d
+ amove usr/share/vulkan/implicit_layer.d
+ amove usr/lib/libVkLayer_*.so
+ amove usr/bin/mesa-overlay-control.py
}
-sha512sums="00baae50f14bf2b08b5654dffb11cf67499dc1825e1700b137fb5719e767e0e78e789979df2c194f677ea9c5e531f34965d47b9e37c239944c38d0570c7a9685 mesa-20.0.7.tar.xz
-cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc adjust-cache-deflate-buffer.patch
-cf849044d6cc7d2af4ff015208fb09d70bf9660538699797da21bda2ecb7c1892d312af83d05116afd826708d9caafb1d05a13f09139c558aea6fee931e3eee7 musl-fix-includes.patch
-9aa207a38d538abbd8e7a7210e3081508563e85e8c27b2269b8f40fd62d9fc6fee0cb2f573a0e62c42f8ba0fb85740459b761f009d5991cfd9813d7614541908 add-use-elf-tls.patch
-250a048193d1e2f4044c6850e707e1b0f67812f03357cb53bc4c3c501ade14dc9b0f40bf6a7d87903a65d5d87af58d210fd2729fa658f10b63d4d2d60b6bcc11 missing-dep-on-sha1_h.patch
-0e704e0082697170ff33a600988b59b4690f1560af4193c86920ca31128409c64f89f302707cb1ac58f8bc47653b5a8a5d38f36f634e7b7def7659894d4c6c5a time_h.patch
-ede642ae9be64c3fc5fee46e8bf1b2f982191febcfadb235b0261868213c7cca11d38bb53b972f3184a887430f37b9f470a9b12fd03cf54b98315ec75c4d8ed4 disable-rgb10-by-default.patch"
+sha512sums="
+1d05b07026417fbe9cf18f7b18f2db9fe5fe327555c590283d87f69bbdd51f64135928a1dbe155d750187fc268bbdbb070bc1ae9ffc3e013b8707b391969d515 mesa-24.0.4.tar.xz
+450e9c61a62487e2cc83e03a05521d40a48294118b1af9d56220fb546c50fedd61f1f005b85c5e956e23eb2397f696fe1bbf9626253c99233278ca406b75543b enable-mali-t600.patch
+e3d39d61b14188cd5a22e19e8c065650995f85943e6c42ec5775db5b76a9ebe8913253a8b9ac32056ac13a2c357cd951f867ecb39976c52f7d014dcc1a2d87dc no-unlink-megadrivers.patch
+"