From 71bd479a7f43ad80955e2c5043a1229e3fe35e2d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 27 Oct 2023 14:17:56 +1000 Subject: [PATCH] radv: don't emit cp dma packets on video rings. Only emit this on the gfx/ace rings. Fixes hangs with CTS on video decode with navi3x. Reviewed-by: Samuel Pitoiset Cc: mesa-stable Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index b8d7fbfa7f3..5eb75d324f6 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -10594,7 +10594,9 @@ radv_barrier(struct radv_cmd_buffer *cmd_buffer, const VkDependencyInfo *dep_inf radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 1); radeon_emit(cmd_buffer->cs, SDMA_PACKET(SDMA_OPCODE_NOP, 0, 0)); } else { - radv_cp_dma_wait_for_stages(cmd_buffer, src_stage_mask); + const bool is_gfx_or_ace = cmd_buffer->qf == RADV_QUEUE_GENERAL || cmd_buffer->qf == RADV_QUEUE_COMPUTE; + if (is_gfx_or_ace) + radv_cp_dma_wait_for_stages(cmd_buffer, src_stage_mask); } cmd_buffer->state.flush_bits |= dst_flush_bits;