diff options
Diffstat (limited to 'main/mesa/APKBUILD')
-rw-r--r-- | main/mesa/APKBUILD | 282 |
1 files changed, 161 insertions, 121 deletions
diff --git a/main/mesa/APKBUILD b/main/mesa/APKBUILD index 018e9aaa318..44ab597f5ea 100644 --- a/main/mesa/APKBUILD +++ b/main/mesa/APKBUILD @@ -1,26 +1,30 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=mesa -pkgver=21.2.6 +pkgver=24.0.5 pkgrel=0 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=12 +_llvmver=17 depends_dev=" libdrm-dev libxext-dev @@ -45,12 +49,13 @@ makedepends=" libx11-dev libxml2-dev libxrandr-dev - libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev meson py3-mako + py3-packaging python3 + vulkan-loader-dev wayland-dev wayland-protocols xorgproto @@ -58,72 +63,107 @@ makedepends=" zstd-dev " source=" - https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz - musl-fix-includes.patch - add-use-elf-tls.patch - disable-rgb10-by-default.patch - 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch + https://mesa.freedesktop.org/archive/mesa-${pkgver/_/-}.tar.xz + enable-mali-t600.patch + no-unlink-megadrivers.patch " replaces="mesa-dricore" options="!check" # we skip tests intentionally - -if [ "$CARCH" = x86 ]; then - # Bug upstream that needs to be fixed - options="$options textrels" -fi +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" +_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*) + _gallium_drivers="$_gallium_drivers,svga,i915,iris,crocus" + ;; +armhf|armv7|aarch64) + _gallium_drivers="$_gallium_drivers,vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra" + ;; +esac + +# extra vulkan per arch case "$CARCH" in x86*) - _dri_drivers="${_dri_drivers},i915,i965" - _gallium_drivers="${_gallium_drivers},svga,iris,crocus" - _vulkan_drivers="${_vulkan_drivers},intel" + _vulkan_drivers="$_vulkan_drivers,intel,intel_hasvk" _vulkan_layers="$_vulkan_layers,intel-nullhw" subpackages=" - $subpackages - $pkgname-dri-intel:_dri_deprecated - $pkgname-vulkan-intel:_vulkan - " - _gallium_provides="$_gallium_provides $pkgname-dri-vmwgfx=$pkgver-r$pkgrel" - _arch_opts="-Ddri3=enabled" - case "$CARCH" in - x86) - _arch_opts="$_arch_opts -Dglx-read-only-text=true -Dasm=false";; - esac + $subpackages + $pkgname-vulkan-intel:_vulkan + " ;; -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 +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 + # 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" - python3 bin/git_sha1_gen.py --output include/git_sha1.h + 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-layers=$_vulkan_layers \ -Dplatforms=x11,wayland \ @@ -134,85 +174,101 @@ build() { -Dglx=dri \ -Dopengl=true \ -Dosmesa=true \ - -Dgles1=disabled \ + -Dgles1=enabled \ -Dgles2=enabled \ -Degl=enabled \ - -Dgallium-xa=enabled \ - -Dgallium-vdpau=enabled \ + -Dgallium-extra-hud=true \ + -Dgallium-nine=true \ + -Dgallium-rusticl=$_rusticl \ -Dgallium-va=enabled \ - -Dgallium-xvmc=disabled \ - -Dgallium-nine=false \ - -Db_ndebug=true \ - $_arch_opts \ + -Dgallium-vdpau=enabled \ + -Dgallium-xa=enabled \ + -Drust_std=2021 \ + -Dvideo-codecs=all \ . output # Print config - meson configure output + meson configure --no-pager output - # parallel build workaround - ninja -C output src/compiler/nir/nir_intrinsics.h - - meson compile ${JOBS:+-j ${JOBS}} -C output + meson compile -C output } package() { + 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 - install -d "$subpkgdir"/usr/lib - mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/ + amove usr/lib/d3d/d3dadapter9.so* +} + +rusticl() { + pkgdesc="Mesa OpenCL driver" + depends="mesa=$pkgver-r$pkgrel clang$_llvmver-headers libclc~$_llvmver" + provider_priority=100 + + amove usr/lib/libRusticlOpenCL.so.* + amove etc/OpenCL/vendors/ } # Move links referencing the same file to the subpackage. @@ -227,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 } @@ -239,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) @@ -289,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) @@ -301,24 +332,35 @@ _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_layers() { - pkgdesc="collectin of vulkan layers from mesa" + 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 @@ -328,9 +370,7 @@ _vulkan_layers() { } sha512sums=" -e65d77e2609cba85bd2cdbd4ba2072729c1556a43defdd24a91e708e3223f84b23657e63a91b16c5729684ea12fe31f45bae88294c572e057f2981a5d6c0f5a0 mesa-21.2.6.tar.xz -77b40d3b70a78e1f261f0a0358f3b5f15d5f0a6d51ba317e38053f426a14487a459743df2e4734e9c086f1f083572e78279eb8a5dde191ef0c2914594513194b musl-fix-includes.patch -de7c6fec14476539c564afa4bf59a3c8d5f34a687ffdbacfe94403e3ad4e78773222b2b74b08a1fd16b7dc9504decca1429273c179ad702c02a140e1dff15205 add-use-elf-tls.patch -efdb49daf7daa173a349785497c2d908f3140ce133d84ef9b2b983afdafda8ee853b3edcd96889b614cc0477e076c7ba2cea4b409f396df3da0561534975459b disable-rgb10-by-default.patch -fdbc13888f09d157feae6ce3b8a63cc606d7ed19e364cdb89ccce25a367255b498bbe82862a487c29d8f98d5e31980ef1f0879b06823cedb54801fd54cd461ad 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch +9476af4b9ac8db5dce397084ef169927d10b28adea7e74aa5b3136810b499ac98ddf7ab564e7d1ff81c887208c8ebab3ad2d4e27e7f46136609b5c67527018eb mesa-24.0.5.tar.xz +450e9c61a62487e2cc83e03a05521d40a48294118b1af9d56220fb546c50fedd61f1f005b85c5e956e23eb2397f696fe1bbf9626253c99233278ca406b75543b enable-mali-t600.patch +e3d39d61b14188cd5a22e19e8c065650995f85943e6c42ec5775db5b76a9ebe8913253a8b9ac32056ac13a2c357cd951f867ecb39976c52f7d014dcc1a2d87dc no-unlink-megadrivers.patch " |