From 66a34be6ac37d3475c492a0c83fbe3aadb3aa016 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 4 Jun 2021 08:55:17 +0200 Subject: [PATCH] ac/perfcounters: remove ac_pc_block_base::num_prelude MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This seems unnecessary if the first select register is correctly set. This CB filter was always disabled anyways. Signed-off-by: Samuel Pitoiset Acked-by: Marek Olšák Part-of: --- src/amd/common/ac_perfcounter.c | 3 +-- src/amd/common/ac_perfcounter.h | 1 - src/gallium/drivers/radeonsi/si_perfcounter.c | 18 ++++-------------- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/src/amd/common/ac_perfcounter.c b/src/amd/common/ac_perfcounter.c index 011dda1..721c5f4 100644 --- a/src/amd/common/ac_perfcounter.c +++ b/src/amd/common/ac_perfcounter.c @@ -33,10 +33,9 @@ static struct ac_pc_block_base cik_CB = { .num_counters = 4, .flags = AC_PC_BLOCK_SE | AC_PC_BLOCK_INSTANCE_GROUPS, - .select0 = R_037000_CB_PERFCOUNTER_FILTER, + .select0 = R_037004_CB_PERFCOUNTER0_SELECT, .counter0_lo = R_035018_CB_PERFCOUNTER0_LO, .num_multi = 1, - .num_prelude = 1, .layout = AC_PC_MULTI_ALTERNATE, }; diff --git a/src/amd/common/ac_perfcounter.h b/src/amd/common/ac_perfcounter.h index 8383681..99cba13 100644 --- a/src/amd/common/ac_perfcounter.h +++ b/src/amd/common/ac_perfcounter.h @@ -118,7 +118,6 @@ struct ac_pc_block_base { unsigned *select; unsigned *counters; unsigned num_multi; - unsigned num_prelude; unsigned layout; }; diff --git a/src/gallium/drivers/radeonsi/si_perfcounter.c b/src/gallium/drivers/radeonsi/si_perfcounter.c index a8c497c..c7ee570 100644 --- a/src/gallium/drivers/radeonsi/si_perfcounter.c +++ b/src/gallium/drivers/radeonsi/si_perfcounter.c @@ -103,7 +103,6 @@ static void si_pc_emit_select(struct si_context *sctx, struct ac_pc_block *block struct radeon_cmdbuf *cs = &sctx->gfx_cs; unsigned idx; unsigned layout_multi = regs->layout & AC_PC_MULTI_MASK; - unsigned dw; assert(count <= regs->num_counters); @@ -114,13 +113,11 @@ static void si_pc_emit_select(struct si_context *sctx, struct ac_pc_block *block if (layout_multi == AC_PC_MULTI_BLOCK) { assert(!(regs->layout & AC_PC_REG_REVERSE)); + unsigned reg_count = count; - dw = count + regs->num_prelude; if (count >= regs->num_multi) - dw += regs->num_multi; - radeon_set_uconfig_reg_seq(cs, regs->select0, dw, false); - for (idx = 0; idx < regs->num_prelude; ++idx) - radeon_emit(cs, 0); + reg_count += regs->num_multi; + radeon_set_uconfig_reg_seq(cs, regs->select0, reg_count, false); for (idx = 0; idx < MIN2(count, regs->num_multi); ++idx) radeon_emit(cs, selectors[idx] | regs->select_or); @@ -141,9 +138,7 @@ static void si_pc_emit_select(struct si_context *sctx, struct ac_pc_block *block assert(!(regs->layout & AC_PC_REG_REVERSE)); - radeon_set_uconfig_reg_seq(cs, regs->select0, count + regs->num_prelude, false); - for (idx = 0; idx < regs->num_prelude; ++idx) - radeon_emit(cs, 0); + radeon_set_uconfig_reg_seq(cs, regs->select0, count, false); for (idx = 0; idx < count; ++idx) radeon_emit(cs, selectors[idx] | regs->select_or); @@ -164,13 +159,10 @@ static void si_pc_emit_select(struct si_context *sctx, struct ac_pc_block *block unsigned reg_base = regs->select0; unsigned reg_count = count + MIN2(count, regs->num_multi); - reg_count += regs->num_prelude; if (!(regs->layout & AC_PC_REG_REVERSE)) { radeon_set_uconfig_reg_seq(cs, reg_base, reg_count, false); - for (idx = 0; idx < regs->num_prelude; ++idx) - radeon_emit(cs, 0); for (idx = 0; idx < count; ++idx) { radeon_emit(cs, selectors[idx] | regs->select_or); if (idx < regs->num_multi) @@ -185,8 +177,6 @@ static void si_pc_emit_select(struct si_context *sctx, struct ac_pc_block *block radeon_emit(cs, 0); radeon_emit(cs, selectors[idx - 1] | regs->select_or); } - for (idx = 0; idx < regs->num_prelude; ++idx) - radeon_emit(cs, 0); } } radeon_end(); -- 2.7.4