]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
vkh_cmd_submit_timelined2
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Tue, 5 Apr 2022 10:52:45 +0000 (12:52 +0200)
committerj-p <jp_bruyere@hotmail.com>
Sat, 28 May 2022 12:30:46 +0000 (14:30 +0200)
include/vkh.h
src/vkhelpers.c

index 7e8d0f3c0a81f29a0ec0111e8c298960be140615..21f7dc6cbef72cd26ebecf3ebe11bdd18326441a 100644 (file)
@@ -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);
index e7a05ca9256b24536dfc528f91e9093d09b2c0ce..4f9a170f2c47119dd202f78e6bd02b8bc54354e2 100644 (file)
@@ -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};