From 816d9794fc10edb78f4237576868cdcc48995911 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Tue, 5 Apr 2022 12:52:45 +0200 Subject: [PATCH] vkh_cmd_submit_timelined2 --- include/vkh.h | 5 ++++- src/vkhelpers.c | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/include/vkh.h b/include/vkh.h index 7e8d0f3..21f7dc6 100644 --- a/include/vkh.h +++ b/include/vkh.h @@ -270,7 +270,10 @@ vkh_public void vkh_cmd_submit_timelined (VkhQueue queue, VkCommandBuffer *pCmdBuff, VkSemaphore timeline, const uint64_t wait, const uint64_t signal); vkh_public -VkEvent vkh_event_create (VkhDevice dev); +void vkh_cmd_submit_timelined2 (VkhQueue queue, VkCommandBuffer *pCmdBuff, VkSemaphore timelines[static 2], + const uint64_t waits[static 2], const uint64_t signals[static 2]); +vkh_public +VkEvent vkh_event_create (VkhDevice dev); vkh_public VkCommandPool vkh_cmd_pool_create (VkhDevice dev, uint32_t qFamIndex, VkCommandPoolCreateFlags flags); diff --git a/src/vkhelpers.c b/src/vkhelpers.c index e7a05ca..4f9a170 100644 --- a/src/vkhelpers.c +++ b/src/vkhelpers.c @@ -95,7 +95,29 @@ void vkh_cmd_submit_timelined (VkhQueue queue, VkCommandBuffer *pCmdBuff, VkSema VK_CHECK_RESULT(vkQueueSubmit(queue->queue, 1, &submitInfo, VK_NULL_HANDLE)); } +void vkh_cmd_submit_timelined2 (VkhQueue queue, VkCommandBuffer *pCmdBuff, VkSemaphore timelines[static 2], const uint64_t waits[static 2], const uint64_t signals[static 2]) { + static VkPipelineStageFlags stageFlags = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + VkTimelineSemaphoreSubmitInfo timelineInfo; + timelineInfo.sType = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO; + timelineInfo.pNext = NULL; + timelineInfo.waitSemaphoreValueCount = 2; + timelineInfo.pWaitSemaphoreValues = waits; + timelineInfo.signalSemaphoreValueCount = 2; + timelineInfo.pSignalSemaphoreValues = signals; + VkSubmitInfo submitInfo; + submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; + submitInfo.pNext = &timelineInfo; + submitInfo.waitSemaphoreCount = 2; + submitInfo.pWaitSemaphores = timelines; + submitInfo.signalSemaphoreCount = 2; + submitInfo.pSignalSemaphores = timelines; + submitInfo.pWaitDstStageMask = &stageFlags, + submitInfo.commandBufferCount = 1; + submitInfo.pCommandBuffers = pCmdBuff; + + VK_CHECK_RESULT(vkQueueSubmit(queue->queue, 1, &submitInfo, VK_NULL_HANDLE)); +} VkEvent vkh_event_create (VkhDevice dev) { VkEvent evt; VkEventCreateInfo evtInfo = {.sType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO}; -- 2.47.3