Module: Mesa Branch: main Commit: f315774727aad2b639fed2d471ee1cdb4e657d68 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f315774727aad2b639fed2d471ee1cdb4e657d68
Author: Pierre-Eric Pelloux-Prayer <[email protected]> Date: Wed Mar 22 15:24:28 2023 +0100 radeonsi: don't use si_decompress_dcc if the blitter is running Otherwise this will cause a blitter recursion which will crash at some point. Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21984> --- src/gallium/drivers/radeonsi/si_blit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 0450de767e6..4d5adbbcef7 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -1325,8 +1325,10 @@ void si_decompress_dcc(struct si_context *sctx, struct si_texture *tex) /* If graphics is disabled, we can't decompress DCC, but it shouldn't * be compressed either. The caller should simply discard it. + * If blitter is running, we can't decompress DCC either because it + * will cause a blitter recursion. */ - if (!tex->surface.meta_offset || !sctx->has_graphics) + if (!tex->surface.meta_offset || !sctx->has_graphics || sctx->blitter_running) return; si_blit_decompress_color(sctx, tex, 0, tex->buffer.b.b.last_level, 0,
