From: Dave Airlie Date: Fri, 27 Oct 2023 04:17:56 +0000 (+1000) Subject: radv: don't emit cp dma packets on video rings. X-Git-Tag: upstream/23.3.3~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b570eb60432209e2a86c95d4a1ef50c9946f9adb;p=platform%2Fupstream%2Fmesa.git 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: (cherry picked from commit 71bd479a7f43ad80955e2c5043a1229e3fe35e2d) --- diff --git a/.pick_status.json b/.pick_status.json index 064a9c8..72cbe62 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 a29bd03..c433634 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;