From dfbed0d0168acfc328a584d874251306b117423f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 20 Mar 2026 10:01:49 +0100 Subject: [PATCH] ac/cmdbuf: add an assertion for COPY_DATA+PFP with registers This shouldn't be used. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_cmdbuf_cp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/amd/common/ac_cmdbuf_cp.c b/src/amd/common/ac_cmdbuf_cp.c index a4a9340085d..6d145371b05 100644 --- a/src/amd/common/ac_cmdbuf_cp.c +++ b/src/amd/common/ac_cmdbuf_cp.c @@ -245,8 +245,13 @@ ac_emit_cp_copy_data(struct ac_cmdbuf *cs, uint32_t src_sel, uint32_t dst_sel, dword0 |= COPY_DATA_WR_CONFIRM; if (flags & AC_CP_COPY_DATA_COUNT_SEL) dword0 |= COPY_DATA_COUNT_SEL; - if (flags & AC_CP_COPY_DATA_ENGINE_PFP) + if (flags & AC_CP_COPY_DATA_ENGINE_PFP) { + /* COPY_DATA shouldn't set registers in PFP because that would execute + * out-of-order with SET register packets that are executed by ME. + */ + assert(src_sel != COPY_DATA_REG && dst_sel != COPY_DATA_REG); dword0 |= COPY_DATA_ENGINE_PFP; + } ac_cmdbuf_begin(cs); ac_cmdbuf_emit(PKT3(PKT3_COPY_DATA, 4, predicate));