diff options
Diffstat (limited to 'main/mesa/APKBUILD')
-rw-r--r-- | main/mesa/APKBUILD | 356 |
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 +" |