From 90d9406436fdf27de180078fac4a25347bd84a3b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 13 Sep 2023 14:34:20 +0200 Subject: [PATCH] ac/perfcounter: compute the number of global instances of TCP,SQ,GL1C and GL2C This will be used by SPM. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_perfcounter.c | 12 ++++++++++++ src/amd/common/ac_perfcounter.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/amd/common/ac_perfcounter.c b/src/amd/common/ac_perfcounter.c index ee8b359..0af3031 100644 --- a/src/amd/common/ac_perfcounter.c +++ b/src/amd/common/ac_perfcounter.c @@ -1182,6 +1182,18 @@ bool ac_init_perfcounters(const struct radeon_info *info, block->num_instances = MAX2(1, info->max_good_cu_per_sa); } + if (info->gfx_level >= GFX10) { + if (!strcmp(block->b->b->name, "TCP")) { + block->num_global_instances = MAX2(1, info->num_cu_per_sh) * info->num_se * info->max_sa_per_se; + } else if (!strcmp(block->b->b->name, "SQ")) { + block->num_global_instances = block->num_instances * info->num_se; + } else if (!strcmp(block->b->b->name, "GL1C")) { + block->num_global_instances = block->num_instances * info->num_se * info->max_sa_per_se; + } else if (!strcmp(block->b->b->name, "GL2C")) { + block->num_global_instances = info->num_tcc_blocks; + } + } + if (ac_pc_block_has_per_instance_groups(pc, block)) { block->num_groups = block->num_instances; } else { diff --git a/src/amd/common/ac_perfcounter.h b/src/amd/common/ac_perfcounter.h index 9a7c188..c198c44 100644 --- a/src/amd/common/ac_perfcounter.h +++ b/src/amd/common/ac_perfcounter.h @@ -119,6 +119,7 @@ struct ac_pc_block_gfxdescr { struct ac_pc_block { const struct ac_pc_block_gfxdescr *b; unsigned num_instances; + unsigned num_global_instances; unsigned num_groups; char *group_names; -- 2.7.4