From 5f2df312b782fb9bed5a445ddd5dced50174ce6a Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 26 Sep 2024 12:48:47 -0400 Subject: [PATCH] hk: flush with events Not sure if strictly needed. Revisit when we rework pipeline barriers. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/vulkan/hk_event.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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); }