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,

Reply via email to