{ lib, fetchFromGitLab, mesa, meson, llvmPackages, }: (mesa.override { galliumDrivers = ["swrast" "asahi"]; vulkanDrivers = ["swrast"]; enableGalliumNine = false; # libclc and other OpenCL components are needed for geometry shader support on Apple Silicon enableOpenCL = true; }) .overrideAttrs (oldAttrs: { # version must be the same length (i.e. no unstable or date) # so that system.replaceRuntimeDependencies can work version = "24.1.0"; src = fetchFromGitLab { # tracking: https://pagure.io/fedora-asahi/mesa/commits/asahi domain = "gitlab.freedesktop.org"; owner = "asahi"; repo = "mesa"; rev = "asahi-20240228"; hash = "sha256-wOFJyYfoN6yxE9HaHXLP/0MhjyRvmlb+jPPUke0sbbE="; }; mesonFlags = # remove flag to configure xvmc functionality as having it # breaks the build because that no longer exists in Mesa 23 (lib.filter (x: !(lib.hasPrefix "-Dxvmc-libs-path=" x)) oldAttrs.mesonFlags) ++ [ # we do not build any graphics drivers these features can be enabled for "-Dgallium-va=disabled" "-Dgallium-vdpau=disabled" "-Dgallium-xa=disabled" # does not make any sense "-Dandroid-libbacktrace=disabled" # do not want to add the dependencies "-Dlibunwind=disabled" "-Dlmsensors=disabled" ] ++ ( # does not compile on nixpkgs stable, doesn't seem mandatory lib.optional (lib.versionOlder meson.version "1.3.1") "-Dgallium-rusticl=false" ); # replace patches with ones tweaked slightly to apply to this version patches = [ ./disk_cache-include-dri-driver-path-in-cache-key.patch ./opencl.patch ]; })