summaryrefslogtreecommitdiff
path: root/user/mesa-be
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-11-21 13:56:31 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-11-29 04:55:32 -0600
commitf41957bedabd2290eeb23af57c1775a6671fb1d1 (patch)
tree243b75705e7e2de614e1a9ad786a36001fd70601 /user/mesa-be
parentfe0e5a413d36dbc7bcc639ce141938eba5b28593 (diff)
downloadpackages-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/APKBUILD171
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"