Module: Mesa Branch: main Commit: 71bd479a7f43ad80955e2c5043a1229e3fe35e2d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=71bd479a7f43ad80955e2c5043a1229e3fe35e2d
Author: Dave Airlie <airl...@redhat.com> Date: Fri Oct 27 14:17:56 2023 +1000 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 <samuel.pitoi...@gmail.com> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26945> --- 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;