radeonsi: break a binning batch on a new PS if bins can use multiple state sets
ported from PAL Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6822>
This commit is contained in:
parent
972fb0368c
commit
b5debe180e
|
@ -1590,6 +1590,14 @@ static void si_shader_ps(struct si_screen *sscreen, struct si_shader *shader)
|
||||||
if (!pm4)
|
if (!pm4)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* If multiple state sets are allowed to be in a bin, break the batch on a new PS. */
|
||||||
|
if (sscreen->dpbb_allowed &&
|
||||||
|
(sscreen->pbb_context_states_per_bin > 1 ||
|
||||||
|
sscreen->pbb_persistent_states_per_bin > 1)) {
|
||||||
|
si_pm4_cmd_add(pm4, PKT3(PKT3_EVENT_WRITE, 0, 0));
|
||||||
|
si_pm4_cmd_add(pm4, EVENT_TYPE(V_028A90_BREAK_BATCH) | EVENT_INDEX(0));
|
||||||
|
}
|
||||||
|
|
||||||
pm4->atom.emit = si_emit_shader_ps;
|
pm4->atom.emit = si_emit_shader_ps;
|
||||||
|
|
||||||
/* SPI_BARYC_CNTL.POS_FLOAT_LOCATION
|
/* SPI_BARYC_CNTL.POS_FLOAT_LOCATION
|
||||||
|
|
Loading…
Reference in New Issue