mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
tu: Do not WAIT_FOR_BR if concurrent binning is disabled
The sync emitted on TU_CMD_FLAG_WAIT_FOR_BR didn't disable CB when CB was previously disabled for the renderpass, this resulted in less resources vertex processing resources available for BR. We can just not emit the sync instead, since next time CB is enabled it will force the sync. Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38378>
This commit is contained in:
parent
f2fb8ad422
commit
a7f63a5dbb
2 changed files with 5 additions and 1 deletions
|
|
@ -364,7 +364,8 @@ tu_emit_cache_flush(struct tu_cmd_buffer *cmd_buffer)
|
|||
|
||||
tu6_emit_flushes<CHIP>(cmd_buffer, cs, cache);
|
||||
|
||||
if ((flushes & TU_CMD_FLAG_WAIT_FOR_BR) && CHIP >= A7XX) {
|
||||
if ((flushes & TU_CMD_FLAG_WAIT_FOR_BR) && CHIP >= A7XX &&
|
||||
!(cmd_buffer->state.pass && cmd_buffer->state.renderpass_cb_disabled)) {
|
||||
trace_start_concurrent_binning_barrier(&cmd_buffer->trace, cs, cmd_buffer);
|
||||
|
||||
tu_cs_emit_pkt7(cs, CP_THREAD_CONTROL, 1);
|
||||
|
|
@ -2800,6 +2801,7 @@ tu7_emit_concurrent_binning(struct tu_cmd_buffer *cmd, struct tu_cs *cs,
|
|||
tu_cs_emit(cs, CP_THREAD_CONTROL_0_THREAD(CP_SET_THREAD_BR) |
|
||||
CP_THREAD_CONTROL_0_CONCURRENT_BIN_DISABLE);
|
||||
tu7_set_pred_bit(cs, TU_PREDICATE_CB_ENABLED, false);
|
||||
cmd->state.renderpass_cb_disabled = true;
|
||||
return false;
|
||||
}
|
||||
tu7_thread_control(cs, CP_SET_THREAD_BOTH);
|
||||
|
|
@ -3900,6 +3902,7 @@ static void tu_reset_render_pass(struct tu_cmd_buffer *cmd_buffer)
|
|||
cmd_buffer->state.attachments = NULL;
|
||||
cmd_buffer->state.clear_values = NULL;
|
||||
cmd_buffer->state.gmem_layout = TU_GMEM_LAYOUT_COUNT; /* invalid value to prevent looking up gmem offsets */
|
||||
cmd_buffer->state.renderpass_cb_disabled = false;
|
||||
memset(&cmd_buffer->state.rp, 0, sizeof(cmd_buffer->state.rp));
|
||||
|
||||
/* LRZ is not valid next time we use it */
|
||||
|
|
|
|||
|
|
@ -612,6 +612,7 @@ struct tu_cmd_state
|
|||
uint32_t total_dispatches;
|
||||
|
||||
unsigned tile_render_pass_count;
|
||||
bool renderpass_cb_disabled;
|
||||
};
|
||||
|
||||
struct tu_vis_stream_patchpoint {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue