radeonsi: disable streamout queries for u_blitter

Cc: mesa-stable
Reviewed-by: Pierre-Eric
(cherry picked from commit 918e5764f4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40752>
This commit is contained in:
Marek Olšák 2026-03-25 14:16:25 -04:00 committed by Eric Engestrom
parent a20678b267
commit b084df3ed6
3 changed files with 10 additions and 1 deletions

View file

@ -1364,7 +1364,7 @@
"description": "radeonsi: disable streamout queries for u_blitter",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -80,6 +80,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;
}
@ -108,6 +111,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);
}

View file

@ -1887,6 +1887,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.
*