From: Pierre-Eric Pelloux-Prayer Date: Mon, 5 Aug 2019 13:11:41 +0000 (+0200) Subject: radeonsi: limit DPBB context_states_per_bin batches when using gfx9 workaround X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=519bebdb40d9df5926e8b16dedd36b8e0f356f60;p=mesa.git radeonsi: limit DPBB context_states_per_bin batches when using gfx9 workaround It seems that using 'context_states_per_bin = 1' for DPBB fixes the reported issue. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110214 Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c b/src/gallium/drivers/radeonsi/si_state_binning.c index 157a38f88a0..a361ea253c3 100644 --- a/src/gallium/drivers/radeonsi/si_state_binning.c +++ b/src/gallium/drivers/radeonsi/si_state_binning.c @@ -563,7 +563,11 @@ void si_emit_dpbb_state(struct si_context *sctx) context_states_per_bin = 1; persistent_states_per_bin = 1; } else { - context_states_per_bin = 6; + /* This is a workaround for: + * https://bugs.freedesktop.org/show_bug.cgi?id=110214 + * (an alternative is to insert manual BATCH_BREAK event when + * a context_roll is detected). */ + context_states_per_bin = sctx->screen->has_gfx9_scissor_bug ? 1 : 6; /* Using 32 here can cause GPU hangs on RAVEN1 */ persistent_states_per_bin = 16; }