From 918e5764f4df0309b1d2eec3e9daaf7f1d97d909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 25 Mar 2026 14:16:25 -0400 Subject: [PATCH] radeonsi: disable streamout queries for u_blitter Cc: mesa-stable Reviewed-by: Pierre-Eric Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 6 ++++++ src/gallium/drivers/radeonsi/si_pipe.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 72792f2d8e9..7c3d9dc0fe2 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -78,6 +78,9 @@ void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op) /* Force-disable fbfetch because there are unsolvable recursion problems with u_blitter. */ si_force_disable_ps_colorbuf0_slot(sctx); + /* This disables streamout queries. See si_get_streamout_enable_state. */ + si_mark_atom_dirty(sctx, &sctx->atoms.s.streamout_enable); + sctx->blitter_running = true; } @@ -106,6 +109,9 @@ void si_blitter_end(struct si_context *sctx) sctx->vertex_buffers_dirty = sctx->num_vertex_elements > 0; si_mark_atom_dirty(sctx, &sctx->atoms.s.gfx_shader_pointers); + /* This re-enables streamout queries. */ + si_mark_atom_dirty(sctx, &sctx->atoms.s.streamout_enable); + /* We force-disabled fbfetch for u_blitter, so recompute the state. */ si_update_ps_colorbuf0_slot(sctx); } diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 83897861bc6..67adc75bb4c 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1849,6 +1849,9 @@ static inline struct si_shader_ctx_state *si_get_vs(struct si_context *sctx) static inline bool si_get_streamout_enable_state(struct si_context *sctx) { + if (sctx->blitter_running) + return false; + /* For GFX11, return whether NGG streamout queries are enabled. For older gens, return whether * streamout hw is enabled. *