Module: Mesa Branch: main Commit: 90d9406436fdf27de180078fac4a25347bd84a3b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=90d9406436fdf27de180078fac4a25347bd84a3b
Author: Samuel Pitoiset <[email protected]> Date: Wed Sep 13 14:34:20 2023 +0200 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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25211> --- 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 ee8b359c9e9..0af3031389c 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 9a7c1889aaa..c198c4403ef 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;
