diff --git a/pkgs/development/libraries/mesa/backport-radeon-crash-fix.patch b/pkgs/development/libraries/mesa/backport-radeon-crash-fix.patch new file mode 100644 index 000000000000..62915abcf242 --- /dev/null +++ b/pkgs/development/libraries/mesa/backport-radeon-crash-fix.patch @@ -0,0 +1,13 @@ +diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +index 2e1d9c488e2..7979cad75fa 100644 +--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c ++++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +@@ -729,7 +729,7 @@ bool radeon_bo_can_reclaim_slab(void *priv, struct pb_slab_entry *entry) + { + struct radeon_bo *bo = container_of(entry, struct radeon_bo, u.slab.entry); + +- return radeon_bo_can_reclaim(NULL, &bo->base); ++ return radeon_bo_can_reclaim(priv, &bo->base); + } + + static void radeon_bo_slab_destroy(void *winsys, struct pb_buffer_lean *_buf) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index dff2f0021d46..53b7ccafd9e1 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -141,6 +141,11 @@ self = stdenv.mkDerivation { patches = [ ./opencl.patch + + # Backport crash fix for Radeon (legacy) kernel driver + # see https://gitlab.freedesktop.org/mesa/mesa/-/issues/10613 + # FIXME: remove when merged upstream + ./backport-radeon-crash-fix.patch ]; postPatch = ''