mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 01:40:08 +01:00
radeonsi: Inhibit clock-gating for perf counters.
Otherwise most counters return 0. Should be much more user friendly than having to totally disable clock-gating on the kernel cmdline. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5972>
This commit is contained in:
parent
794ba3efd7
commit
7b7917a424
1 changed files with 15 additions and 0 deletions
|
|
@ -919,6 +919,17 @@ static void si_pc_query_destroy(struct si_context *sctx, struct si_query *squery
|
|||
FREE(query);
|
||||
}
|
||||
|
||||
static void si_inhibit_clockgating(struct si_context *sctx, bool inhibit)
|
||||
{
|
||||
if (sctx->chip_class >= GFX10) {
|
||||
radeon_set_uconfig_reg(sctx->gfx_cs, R_037390_RLC_PERFMON_CLK_CNTL,
|
||||
S_037390_PERFMON_CLOCK_STATE(inhibit));
|
||||
} else if (sctx->chip_class >= GFX8) {
|
||||
radeon_set_uconfig_reg(sctx->gfx_cs, R_0372FC_RLC_PERFMON_CLK_CNTL,
|
||||
S_0372FC_PERFMON_CLOCK_STATE(inhibit));
|
||||
}
|
||||
}
|
||||
|
||||
static void si_pc_query_resume(struct si_context *sctx, struct si_query *squery)
|
||||
/*
|
||||
struct si_query_hw *hwquery,
|
||||
|
|
@ -935,6 +946,8 @@ static void si_pc_query_resume(struct si_context *sctx, struct si_query *squery)
|
|||
if (query->shaders)
|
||||
si_pc_emit_shaders(sctx, query->shaders);
|
||||
|
||||
si_inhibit_clockgating(sctx, true);
|
||||
|
||||
for (struct si_query_group *group = query->groups; group; group = group->next) {
|
||||
struct si_pc_block *block = group->block;
|
||||
|
||||
|
|
@ -986,6 +999,8 @@ static void si_pc_query_suspend(struct si_context *sctx, struct si_query *squery
|
|||
}
|
||||
|
||||
si_pc_emit_instance(sctx, -1, -1);
|
||||
|
||||
si_inhibit_clockgating(sctx, false);
|
||||
}
|
||||
|
||||
static bool si_pc_query_begin(struct si_context *ctx, struct si_query *squery)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue