// Compute Submit: wait for frame N graphics to finish, then run post-processing
auto computeWaitInfo = vk::SemaphoreSubmitInfo{
.semaphore = *graphicsTimeline,
.value = frameN_graphics_finished,
.stageMask = vk::PipelineStageFlagBits2::eComputeShader
};
auto computeSignalInfo = vk::SemaphoreSubmitInfo{
.semaphore = *computeTimeline,
.value = frameN_postprocessing_finished,
.stageMask = vk::PipelineStageFlagBits2::eComputeShader
};
auto computeSubmit = vk::SubmitInfo2{
.waitSemaphoreInfoCount = 1,
.pWaitSemaphoreInfos = &computeWaitInfo,
.signalSemaphoreInfoCount = 1,
.pSignalSemaphoreInfos = &computeSignalInfo,
.commandBufferInfoCount = 1,
.pCommandBufferInfos = &postProcessCmdInfo
};
computeQueue.submit2(computeSubmit);