hk: flush with events

Not sure if strictly needed. Revisit when we rework pipeline barriers.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532>
This commit is contained in:
Alyssa Rosenzweig 2024-09-26 12:48:47 -04:00 committed by Marge Bot
parent e0b83ecaa6
commit 5f2df312b7

View file

@ -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);
}