// Submit the "Waiter" first!
auto waitInfo = vk::SemaphoreSubmitInfo{
.semaphore = *timelineSemaphore,
.value = 10,
.stageMask = vk::PipelineStageFlagBits2::eAllCommands
};
auto submitWaiter = vk::SubmitInfo2{
.waitSemaphoreInfoCount = 1,
.pWaitSemaphoreInfos = &waitInfo,
.commandBufferInfoCount = 1,
.pCommandBufferInfos = &waitCommandBufferInfo
};
graphicsQueue.submit2(submitWaiter);
// ... Later, perhaps in a different thread or even a different frame ...
// Submit the "Signaler"
auto signalInfo = vk::SemaphoreSubmitInfo{
.semaphore = *timelineSemaphore,
.value = 10,
.stageMask = vk::PipelineStageFlagBits2::eAllCommands
};
auto submitSignaler = vk::SubmitInfo2{
.signalSemaphoreInfoCount = 1,
.pSignalSemaphoreInfos = &signalInfo,
.commandBufferInfoCount = 1,
.pCommandBufferInfos = &signalCommandBufferInfo
};
transferQueue.submit2(submitSignaler);