From 147c17c28c38f57ea91d2bde1198d783dae1424d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 12 Sep 2023 13:30:12 +1000 Subject: [PATCH] radv: don't emit event code on video queues. I don't know if these can be done properly, but for now just don't emit the standard cp stuff since it hangs the GPU. "Fixes" dEQP-VK.video.synchronizat* Cc: mesa-stable Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index bff76f4231e..ffad0315470 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -10544,6 +10544,9 @@ write_event(struct radv_cmd_buffer *cmd_buffer, struct radv_event *event, VkPipe struct radeon_cmdbuf *cs = cmd_buffer->cs; uint64_t va = radv_buffer_get_va(event->bo); + if (cmd_buffer->qf == RADV_QUEUE_VIDEO_DEC) + return; + si_emit_cache_flush(cmd_buffer); radv_cs_add_buffer(cmd_buffer->device->ws, cs, event->bo); @@ -10646,6 +10649,9 @@ radv_CmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount, const Vk RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); struct radeon_cmdbuf *cs = cmd_buffer->cs; + if (cmd_buffer->qf == RADV_QUEUE_VIDEO_DEC) + return; + for (unsigned i = 0; i < eventCount; ++i) { RADV_FROM_HANDLE(radv_event, event, pEvents[i]); uint64_t va = radv_buffer_get_va(event->bo);