diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-11-21 13:56:31 -0600 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-11-29 04:55:32 -0600 |
commit | f41957bedabd2290eeb23af57c1775a6671fb1d1 (patch) | |
tree | 243b75705e7e2de614e1a9ad786a36001fd70601 /user/mesa-be | |
parent | fe0e5a413d36dbc7bcc639ce141938eba5b28593 (diff) | |
download | packages-f41957bedabd2290eeb23af57c1775a6671fb1d1.tar.gz packages-f41957bedabd2290eeb23af57c1775a6671fb1d1.tar.bz2 packages-f41957bedabd2290eeb23af57c1775a6671fb1d1.tar.xz packages-f41957bedabd2290eeb23af57c1775a6671fb1d1.zip |
user/mesa: Add 24.x versions
user/mesa is the latest (24.2.7), and should install everywhere.
user/mesa-be includes 24.1.7 which is needed for proper operation on
big endian platforms, hence it is only enabled for ppc/ppc64.
* Unfortunately, Intel Iris is not portable due to OpenCL issues and
cannot be included with beta6.
* The glvnd JSON file needs to be kept with the driver.
* We can't split GL any more, so don't bother.
* The DRI driver depends on the GLX stub, which is part of mesa, so
declare that dep explicitly. (weak linked, so abuild can't see it)
Diffstat (limited to 'user/mesa-be')
-rw-r--r-- | user/mesa-be/APKBUILD | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/user/mesa-be/APKBUILD b/user/mesa-be/APKBUILD new file mode 100644 index 000000000..7e6cf9ccf --- /dev/null +++ b/user/mesa-be/APKBUILD @@ -0,0 +1,171 @@ +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=mesa +pkgver=24.1.7 +_llvmver=18 +pkgrel=0 +pkgdesc="Mesa DRI OpenGL library" +url="https://www.mesa3d.org" +arch="ppc ppc64" +options="!check" # No test suite. +license="MIT AND X11 AND SGI-B-2.0 AND BSL-1.0 AND LGPL-2.1+" +depends="" +depends_dev="libdrm-dev libxcb-dev libxdamage-dev libxext-dev libxshmfence-dev + xorgproto-dev" +makedepends="$depends_dev bison eudev-dev expat-dev flex libelf-dev libglvnd-dev + libva-dev libvdpau-dev libx11-dev libxfixes-dev libxrandr-dev libxt-dev + libxv-dev libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev makedepend meson + ninja python3 py3-libxml2 py3-mako py3-pygments py3-markupsafe + py3-pyyaml wayland-dev wayland-protocols glslang-dev + zlib-dev zstd-dev" +subpackages="$pkgname-dev $pkgname-dri $pkgname-vulkan-overlay $pkgname-egl + $pkgname-glapi $pkgname-gbm $pkgname-d3d $pkgname-xatracker + $pkgname-osmesa" +source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz" + +_dri_driverdir=/usr/lib/xorg/modules/dri +_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl" +_vulkan_drivers="amd,swrast,virtio" + +case "$CARCH" in +x86_64) + _gallium_drivers="${_gallium_drivers},i915,svga,iris,crocus" + _vulkan_drivers="${_vulkan_drivers},intel,intel_hasvk,microsoft-experimental" + _arch_conf="-Dintel-rt=enabled" + ;; +x86* | pmmx) + _gallium_drivers="${_gallium_drivers},i915,svga,iris,crocus" + _vulkan_drivers="${_vulkan_drivers},intel,intel_hasvk" + _arch_conf="-Dsse2=false" + ;; +aarch64 | arm*) + _gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,kmsro,v3d,lima,panfrost,etnaviv" + _vulkan_drivers="${_vulkan_drivers},freedreno,panfrost,broadcom" + case "$CARCH" in + armhf) CFLAGS="$CFLAGS -mfpu=neon";; + esac + ;; +ppc64) + _arch_conf="-Dpower8=disabled" + ;; +esac + +build() { + # This is to fix #796, and is derived from: + # https://gitlab.freedesktop.org/mesa/mesa/-/commit/cc2b3a99ccf035a084d768e5c5ffa81478d685c1 + cat > native.file <<EOF +[binaries] +llvm-config = '$(command -v llvm${_llvmver}-config)' +rust = ['rustc', '--target=${CHOST}'] +EOF + + meson \ + --native-file=native.file \ + -Dprefix=/usr \ + -Ddri-drivers-path=$_dri_driverdir \ + -Dgallium-drivers=$_gallium_drivers \ + -Dgallium-nine=true \ + -Dgallium-va=enabled \ + -Dgallium-vdpau=enabled \ + -Dgallium-xa=enabled \ + -Dglvnd=enabled \ + -Dglx=dri \ + -Dosmesa=true \ + -Dplatforms=x11,wayland \ + -Dvideo-codecs=all_free \ + -Dvulkan-drivers=$_vulkan_drivers \ + -Dvulkan-layers=device-select,overlay \ + $_arch_conf \ + build + + ninja -C build +} + +package() { + DESTDIR="$pkgdir" ninja -C build install +} + +egl() { + replaces="mesa" + pkgdesc="Mesa libEGL runtime libraries" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libEGL*.so* \ + "$subpkgdir"/usr/lib/ +} + +gl() { + replaces="mesa" + pkgdesc="Mesa libGL runtime libraries" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libGL*.so* \ + "$subpkgdir"/usr/lib/ +} + +glapi() { + replaces="$pkgname-gles" + pkgdesc="Mesa OpenGL API" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libglapi.so.* \ + "$subpkgdir"/usr/lib/ +} + +d3d() { + replaces="mesa" + pkgdesc="Mesa Direct3D adaptor libraries" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/d3d \ + "$subpkgdir"/usr/lib/ +} + +xatracker() { + pkgdesc="Mesa XA state tracker for VMware" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libxatracker*.so.* \ + "$subpkgdir"/usr/lib/ +} + +osmesa() { + pkgdesc="Mesa offscreen rendering libraries" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libOSMesa.so.* \ + "$subpkgdir"/usr/lib/ +} + +gbm() { + pkgdesc="Mesa GBM library" + replaces="mesa" + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgbm.so.* \ + "$subpkgdir"/usr/lib/ +} + +overlay() { + pkgdesc="Vulkan overlays to display information" + install -d "$subpkgdir"/usr/bin + install -d "$subpkgdir"/usr/lib + install -d "$subpkgdir"/usr/share + mv "$pkgdir"/usr/lib/libVkLayer_MESA_*.so \ + "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/share/vulkan \ + "$subpkgdir"/usr/share/vulkan + mv "$pkgdir"/usr/bin/mesa-overlay-control.py "$subpkgdir"/usr/bin +} + +dri() { + pkgdesc="Mesa DRI drivers" + replaces="mesa-dri-ati mesa-dri-freedreno mesa-dri-intel + mesa-dri-nouveau mesa-dri-swrast mesa-dri-tegra mesa-dri-vc4 + mesa-dri-virtio mesa-dri-vmwgfx" + provides="$replaces" + install -d "$subpkgdir"/usr/lib/xorg/modules + install -d "$subpkgdir"/usr/share/vulkan + mv "$pkgdir"/usr/lib/dri "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/xorg/modules/dri "$subpkgdir"/usr/lib/xorg/modules/ + mv "$pkgdir"/usr/share/drirc.d "$subpkgdir"/usr/share/ + mv "$pkgdir"/usr/lib/libgallium*.so* "$subpkgdir"/usr/lib/ || true + # support non-Vulkan arches + mv "$pkgdir"/usr/lib/libvulkan*.so* "$subpkgdir"/usr/lib/ || true + mv "$pkgdir"/usr/lib/vdpau "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/share/vulkan/icd.d "$subpkgdir"/usr/share/vulkan/ +} + +sha512sums="890f6387963bbb86a85305ea963cca326a3b3f8f8758ae2082fd62c52df77c2883a359341e91f36614fea59219394ef78f799a334080699a0bb71d984a68cb01 mesa-24.1.7.tar.xz" |