Module: Mesa Branch: staging/23.3 Commit: b570eb60432209e2a86c95d4a1ef50c9946f9adb URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b570eb60432209e2a86c95d4a1ef50c9946f9adb
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> (cherry picked from commit 71bd479a7f43ad80955e2c5043a1229e3fe35e2d) --- .pick_status.json | 2 +- src/amd/vulkan/radv_cmd_buffer.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 064a9c8e209..72cbe62e2a3 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -74,7 +74,7 @@ "description": "radv: don't emit cp dma packets on video rings.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index a29bd03528c..c4336345fb4 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -10610,7 +10610,10 @@ radv_barrier(struct radv_cmd_buffer *cmd_buffer, const VkDependencyInfo *dep_inf } radv_gang_barrier(cmd_buffer, 0, dst_stage_mask); - 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;