mesa_version=26.0.3 mesa_srcdir="./" mesa_builddir="build" haul_to_output() { output=$1 shift haul "$output" "$@" } depot_build() { meson setup "$mesa_builddir" "$mesa_srcdir" \ --prefix=/usr \ --buildtype=release \ -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,llvmpipe,softpipe,iris,crocus,i915,zink,d3d12,asahi,freedreno \ -Dgallium-extra-hud=true \ -Dgallium-mediafoundation=disabled \ -Dgallium-rusticl=true \ -Dgles1=disabled \ -Dhtml-docs=disabled \ -Dintel-rt=enabled \ -Dlibunwind=disabled \ -Dmicrosoft-clc=disabled \ -Dvideo-codecs=all \ -Dvulkan-drivers=amd,gfxstream,intel,intel_hasvk,nouveau,swrast,virtio,microsoft-experimental,asahi,freedreno \ -Dvulkan-layers=device-select,intel-nullhw,overlay,screenshot,vram-report-limit meson compile -C "$mesa_builddir" } depot_install() { meson install -C "$mesa_builddir" --destdir "$DESTDIR" ln -sr "$DESTDIR/usr/lib/libGLX_mesa.so.0" "$DESTDIR/usr/lib/libGLX_indirect.so.0" } depot_install_opencl_mesa() { haul_to_output "opencl-mesa" \ "usr/lib/libRusticlOpenCL*" \ "etc/OpenCL/vendors/rusticl.icd" } depot_install_vulkan_asahi() { haul_to_output "vulkan-asahi" \ "usr/share/vulkan/icd.d/asahi_icd.*.json" \ "usr/lib/libvulkan_asahi.so" } depot_install_vulkan_dzn() { haul_to_output "vulkan-dzn" \ "usr/share/vulkan/icd.d/dzn_icd.*.json" \ "usr/lib/libvulkan_dzn.so" \ "usr/lib/libspirv_to_dxil.*" \ "usr/bin/spirv2dxil" } depot_install_vulkan_freedreno() { haul_to_output "vulkan-freedreno" \ "usr/share/vulkan/icd.d/freedreno_icd.*.json" \ "usr/lib/libvulkan_freedreno.so" } depot_install_vulkan_gfxstream() { haul_to_output "vulkan-gfxstream" \ "usr/share/vulkan/icd.d/gfxstream_vk_icd.*.json" \ "usr/lib/libvulkan_gfxstream.so" } depot_install_vulkan_intel() { haul_to_output "vulkan-intel" \ "usr/share/vulkan/icd.d/intel_icd.*.json" \ "usr/share/vulkan/icd.d/intel_hasvk_icd.*.json" \ "usr/lib/libvulkan_intel.so" \ "usr/lib/libvulkan_intel_hasvk.so" } depot_install_vulkan_nouveau() { haul_to_output "vulkan-nouveau" \ "usr/share/vulkan/icd.d/nouveau_icd.*.json" \ "usr/lib/libvulkan_nouveau.so" } depot_install_vulkan_radeon() { haul_to_output "vulkan-radeon" \ "usr/share/vulkan/icd.d/radeon_icd.*.json" \ "usr/lib/libvulkan_radeon.so" \ "usr/share/drirc.d/00-radv-defaults.conf" } depot_install_vulkan_swrast() { haul_to_output "vulkan-swrast" \ "usr/share/vulkan/icd.d/lvp_icd.*.json" \ "usr/lib/libvulkan_lvp.so" } depot_install_vulkan_virtio() { haul_to_output "vulkan-virtio" \ "usr/share/vulkan/icd.d/virtio_icd.*.json" \ "usr/lib/libvulkan_virtio.so" } depot_install_vulkan_mesa_device_select() { haul_to_output "vulkan-mesa-device-select" \ "usr/lib/libVkLayer_MESA_device_select.so" \ "usr/share/vulkan/implicit_layer.d" } depot_install_vulkan_mesa_layers() { haul_to_output "vulkan-mesa-layers" \ "usr/lib/libVkLayer_*.so" \ "usr/bin/mesa-*-control.py" \ "usr/share/vulkan/explicit_layer.d" }