ac/perfcounter: add new GCEA_SE block definition on GFX12

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39100>
This commit is contained in:
Samuel Pitoiset 2025-12-22 12:41:16 +01:00 committed by Marge Bot
parent 7f84c0056f
commit 11a12893d6
4 changed files with 29 additions and 1 deletions

View file

@ -761,6 +761,7 @@ bool ac_init_perfcounters(const struct radeon_info *info,
break;
case GL2C:
case GCEA:
case GCEA_SE:
block->num_instances = info->num_tcc_blocks;
break;
case GL2A:

View file

@ -714,6 +714,29 @@ static struct ac_pc_block_base gfx12_GCEA_CPWD = {
.spm_block_select = AC_SPM_GLOBAL_BLOCK_GCEA_CPWD,
};
/* GCEA_SE */
static unsigned gfx12_GCEA_SE_select0[] = {
R_036880_GC_EA_SE_PERFCOUNTER0_SELECT,
R_036888_GC_EA_SE_PERFCOUNTER1_SELECT,
};
static unsigned gfx12_GCEA_SE_select1[] = {
R_036884_GC_EA_SE_PERFCOUNTER0_SELECT1,
};
static struct ac_pc_block_base gfx12_GCEA_SE = {
.gpu_block = GCEA_SE,
.name = "GCEA_SE",
.distribution = AC_PC_GLOBAL_BLOCK,
.num_counters = 2,
.select0 = gfx12_GCEA_SE_select0,
.select1 = gfx12_GCEA_SE_select1,
.counter0_lo = R_0349C0_GC_EA_SE_PERFCOUNTER0_LO,
.num_spm_counters = 1,
.num_spm_wires = 2,
.spm_block_select = AC_SPM_GLOBAL_BLOCK_GCEA_SE,
};
static struct ac_pc_block_gfxdescr groups_gfx12[] = {
{&gfx12_CB, 315},
{&gfx12_CHA, 25},
@ -742,6 +765,7 @@ static struct ac_pc_block_gfxdescr groups_gfx12[] = {
{&gfx12_UTCL1, 71, 2},
{&gfx12_SQ_WGP, 511, 4},
{&gfx12_GCEA_CPWD, 32},
{&gfx12_GCEA_SE, 32},
};
const struct ac_pc_block_gfxdescr *

View file

@ -294,7 +294,8 @@ ac_spm_init_instance_mapping(const struct radeon_info *info,
assert(block->b->b->gpu_block == GL2C ||
block->b->b->gpu_block == CPF ||
block->b->b->gpu_block == GCEA ||
block->b->b->gpu_block == GCEA_CPWD);
block->b->b->gpu_block == GCEA_CPWD ||
block->b->b->gpu_block == GCEA_SE);
instance_index = counter->instance;
}
@ -348,6 +349,7 @@ ac_spm_init_grbm_gfx_index(const struct ac_pc_block *block,
case CPF:
case GCEA:
case GCEA_CPWD:
case GCEA_SE:
/* Global blocks. */
grbm_gfx_index |= S_030800_SE_BROADCAST_WRITES(1);
FALLTHROUGH;

View file

@ -39,6 +39,7 @@ enum ac_spm_global_block {
AC_SPM_GLOBAL_BLOCK_GUS,
AC_SPM_GLOBAL_BLOCK_GCEA,
AC_SPM_GLOBAL_BLOCK_GCEA_CPWD = AC_SPM_GLOBAL_BLOCK_GCEA,
AC_SPM_GLOBAL_BLOCK_GCEA_SE = AC_SPM_GLOBAL_BLOCK_GCEA,
AC_SPM_GLOBAL_BLOCK_CHA,
AC_SPM_GLOBAL_BLOCK_CHC,
AC_SPM_GLOBAL_BLOCK_CHCG,