From 13a188a4ef8c7b8ffb9ee17be78702deaefeb59c Mon Sep 17 00:00:00 2001 From: "Zhao, Jiali" Date: Fri, 13 Mar 2026 09:50:44 -0400 Subject: [PATCH] amd/vpelib: revert predication fix [WHY] The previous predication fix assumed bufs->cmd_buf.cpu_va and bufs->cmd_buf.size referred to the same underlying allocation/layout. In practice they can differ, which leads to incorrect predication parameters and breaks command submission. [HOW] Revert that change and restore the previous predication handling. A follow-up will reintroduce a correct fix with proper address/size pairing. Acked-by: Peyton Lee Signed-off-by: Jiali Zhao Part-of: --- src/amd/vpelib/src/core/vpelib.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/amd/vpelib/src/core/vpelib.c b/src/amd/vpelib/src/core/vpelib.c index 38e2a4814c8..de7b9e06925 100644 --- a/src/amd/vpelib/src/core/vpelib.c +++ b/src/amd/vpelib/src/core/vpelib.c @@ -1036,6 +1036,16 @@ enum vpe_status vpe_build_commands( } } + if (status == VPE_STATUS_OK) { + bufs->cmd_buf.size = cmd_buf_size - curr_bufs.cmd_buf.size; // used cmd buffer size + bufs->cmd_buf.gpu_va = cmd_buf_gpu_a; + bufs->cmd_buf.cpu_va = cmd_buf_cpu_a; + + bufs->emb_buf.size = emb_buf_size - curr_bufs.emb_buf.size; // used emb buffer size + bufs->emb_buf.gpu_va = emb_buf_gpu_a; + bufs->emb_buf.cpu_va = emb_buf_cpu_a; + } + if (status == VPE_STATUS_OK && param->predication_info.enable == true) { status = vpe_build_set_predication(bufs->cmd_buf.cpu_va, param->predication_info.polarity, param->predication_info.gpu_va, @@ -1047,16 +1057,6 @@ enum vpe_status vpe_build_commands( } } - if (status == VPE_STATUS_OK) { - bufs->cmd_buf.size = cmd_buf_size - curr_bufs.cmd_buf.size; // used cmd buffer size - bufs->cmd_buf.gpu_va = cmd_buf_gpu_a; - bufs->cmd_buf.cpu_va = cmd_buf_cpu_a; - - bufs->emb_buf.size = emb_buf_size - curr_bufs.emb_buf.size; // used emb buffer size - bufs->emb_buf.gpu_va = emb_buf_gpu_a; - bufs->emb_buf.cpu_va = emb_buf_cpu_a; - } - vpe_priv->ops_support = false; if (vpe_priv->init.debug.assert_when_not_support && status != VPE_STATUS_OK) {