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