From f3cc9335e6fd30ce88572dd73385c6b0e2256d59 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 24 Sep 2024 13:43:06 -0700 Subject: [PATCH] freedreno/a6xx: Set bin size per bin It is not saved/restored by level 1 preemption with skipsaverestore=1, so we need to set it for each bin. Signed-off-by: Rob Clark Part-of: --- .../drivers/freedreno/a6xx/fd6_gmem.cc | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc index cd4f8d03d97..cd5a51643d4 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc @@ -1220,30 +1220,24 @@ fd6_emit_tile_prep(struct fd_batch *batch, const struct fd_tile *tile) OUT_PKT7(ring, CP_SET_VISIBILITY_OVERRIDE, 1); OUT_RING(ring, 0x0); - - set_window_offset(ring, x1, y1); - - const struct fd_gmem_stateobj *gmem = batch->gmem_state; - set_bin_size(ring, gmem, { - .render_mode = RENDERING_PASS, - .force_lrz_write_dis = !ctx->screen->info->a6xx.has_lrz_feedback, - .buffers_location = BUFFERS_IN_GMEM, - .lrz_feedback_zmode_mask = ctx->screen->info->a6xx.has_lrz_feedback - ? LRZ_FEEDBACK_EARLY_LRZ_LATE_Z - : LRZ_FEEDBACK_NONE, - }); - - OUT_PKT7(ring, CP_SET_MODE, 1); - OUT_RING(ring, 0x0); } else { - set_window_offset(ring, x1, y1); - OUT_PKT7(ring, CP_SET_VISIBILITY_OVERRIDE, 1); OUT_RING(ring, 0x1); - - OUT_PKT7(ring, CP_SET_MODE, 1); - OUT_RING(ring, 0x0); } + + set_window_offset(ring, x1, y1); + + set_bin_size(ring, gmem, { + .render_mode = RENDERING_PASS, + .force_lrz_write_dis = !ctx->screen->info->a6xx.has_lrz_feedback, + .buffers_location = BUFFERS_IN_GMEM, + .lrz_feedback_zmode_mask = ctx->screen->info->a6xx.has_lrz_feedback + ? LRZ_FEEDBACK_EARLY_LRZ_LATE_Z + : LRZ_FEEDBACK_NONE, + }); + + OUT_PKT7(ring, CP_SET_MODE, 1); + OUT_RING(ring, 0x0); } static void