Mesa (main): ac/perfcounters: remove ac_pc_block_base::num_prelude
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 22 06:56:02 UTC 2021
Module: Mesa
Branch: main
Commit: 66a34be6ac37d3475c492a0c83fbe3aadb3aa016
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=66a34be6ac37d3475c492a0c83fbe3aadb3aa016
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Fri Jun 4 08:55:17 2021 +0200
ac/perfcounters: remove ac_pc_block_base::num_prelude
This seems unnecessary if the first select register is correctly set.
This CB filter was always disabled anyways.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Acked-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186>
---
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 011dda1709d..721c5f49ec1 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 8383681dbeb..99cba1319fd 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 a8c497c98fe..c7ee57036f8 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();
More information about the mesa-commit
mailing list