diff --git a/src/asahi/vulkan/hk_event.c b/src/asahi/vulkan/hk_event.c index 5be46d4f4e2..31cd735fe9d 100644 --- a/src/asahi/vulkan/hk_event.c +++ b/src/asahi/vulkan/hk_event.c @@ -93,6 +93,8 @@ hk_CmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent _event, struct hk_device *dev = hk_cmd_buffer_device(cmd); perf_debug(dev, "Set event"); + hk_cmd_buffer_end_compute(cmd); + hk_cmd_buffer_end_graphics(cmd); hk_queue_write(cmd, event->bo->va->addr, VK_EVENT_SET, false); } @@ -105,6 +107,8 @@ hk_CmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent _event, struct hk_device *dev = hk_cmd_buffer_device(cmd); perf_debug(dev, "Reset event"); + hk_cmd_buffer_end_compute(cmd); + hk_cmd_buffer_end_graphics(cmd); hk_queue_write(cmd, event->bo->va->addr, VK_EVENT_RESET, false); } @@ -113,5 +117,15 @@ hk_CmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent *pEvents, const VkDependencyInfo *pDependencyInfos) { - /* Currently we barrier everything, so this is a no-op. */ + VK_FROM_HANDLE(hk_cmd_buffer, cmd, commandBuffer); + struct hk_device *dev = hk_cmd_buffer_device(cmd); + + perf_debug(dev, "Wait events"); + + /* The big hammer. Need to check if this is actually needed. + * + * XXX: perf. + */ + hk_cmd_buffer_end_compute(cmd); + hk_cmd_buffer_end_graphics(cmd); }