aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2022-04-05 12:52:45 +0200
committerj-p <jp_bruyere@hotmail.com>2022-05-28 14:30:46 +0200
commit816d9794fc10edb78f4237576868cdcc48995911 (patch)
tree04aec9fca381467b21efd1e7b56badda7ef987f5
parent735130a6f596d9ba636bae911090ff0285cc5b59 (diff)
vkh_cmd_submit_timelined2
-rw-r--r--include/vkh.h5
-rw-r--r--src/vkhelpers.c22
2 files changed, 26 insertions, 1 deletions
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};