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 <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25170>
(cherry picked from commit 147c17c28c)
This commit is contained in:
Dave Airlie 2023-09-12 13:30:12 +10:00 committed by Eric Engestrom
parent 6b4cde8ead
commit 45c659ba0f
2 changed files with 7 additions and 1 deletions

View file

@ -2488,7 +2488,7 @@
"description": "radv: don't emit event code on video queues.",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -10610,6 +10610,9 @@ write_event(struct radv_cmd_buffer *cmd_buffer, struct radv_event *event,
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);
@ -10719,6 +10722,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);