amd,radv,radeonsi: add ac_emit_cp_inhibit_clockgating()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37956>
This commit is contained in:
Samuel Pitoiset
2025-10-20 12:43:55 +02:00
committed by Marge Bot
parent bc1080e27f
commit 5cb400a97b
6 changed files with 28 additions and 38 deletions
+18
View File
@@ -483,3 +483,21 @@ ac_emit_cp_load_context_reg_index(struct ac_cmdbuf *cs, uint32_t reg,
ac_cmdbuf_emit(reg_count); /* in DWORDS */
ac_cmdbuf_end();
}
void
ac_emit_cp_inhibit_clockgating(struct ac_cmdbuf *cs, enum amd_gfx_level gfx_level,
bool inhibit)
{
if (gfx_level >= GFX11)
return; /* not needed */
ac_cmdbuf_begin(cs);
if (gfx_level >= GFX10) {
ac_cmdbuf_set_uconfig_reg(R_037390_RLC_PERFMON_CLK_CNTL,
S_037390_PERFMON_CLOCK_STATE(inhibit));
} else if (gfx_level >= GFX8) {
ac_cmdbuf_set_uconfig_reg(R_0372FC_RLC_PERFMON_CLK_CNTL,
S_0372FC_PERFMON_CLOCK_STATE(inhibit));
}
ac_cmdbuf_end();
}
+4
View File
@@ -112,6 +112,10 @@ ac_emit_cp_load_context_reg_index(struct ac_cmdbuf *cs, uint32_t reg,
uint32_t reg_count, uint64_t va,
bool predicate);
void
ac_emit_cp_inhibit_clockgating(struct ac_cmdbuf *cs, enum amd_gfx_level gfx_level,
bool inhibit);
#ifdef __cplusplus
}
#endif