From ca40bad84a535b80476d9b01d792ffdf71970d98 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 29 Mar 2022 13:43:39 +0200 Subject: [PATCH] ac/spm: setup write broadcasting correctly MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Based on PAL's PerfExperiment::BuildGrbmGfxIndex method. Reviewed-by: Marek Olšák Part-of: --- src/amd/common/ac_spm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/common/ac_spm.c b/src/amd/common/ac_spm.c index 04a9426..719f6b3 100644 --- a/src/amd/common/ac_spm.c +++ b/src/amd/common/ac_spm.c @@ -26,6 +26,7 @@ #include "util/bitscan.h" #include "util/u_memory.h" +#include "ac_perfcounter.h" static struct ac_spm_block_select * ac_spm_get_block_select(struct ac_spm_trace_data *spm_trace, @@ -55,6 +56,14 @@ ac_spm_get_block_select(struct ac_spm_trace_data *spm_trace, new_block_sel->b = block; new_block_sel->num_counters = block->b->b->num_spm_counters; + /* Broadcast global block writes to SEs and SAs */ + if (!(block->b->b->flags & (AC_PC_BLOCK_SE | AC_PC_BLOCK_SHADER))) + new_block_sel->grbm_gfx_index = S_030800_SE_BROADCAST_WRITES(1) | + S_030800_SH_BROADCAST_WRITES(1); + /* Broadcast per SE block writes to SAs */ + else if (block->b->b->flags & AC_PC_BLOCK_SE) + new_block_sel->grbm_gfx_index = S_030800_SH_BROADCAST_WRITES(1); + return new_block_sel; } -- 2.7.4