1 def submit (sync : Sync) (image_index : u32) = 2 let command_buffer : CommandBuffer @auto 3 4 let (semaphore_to_acquire, semaphore_count) = 5 if sync.semaphore_acquired 6 then (sync.image_acquired_semaphores[sync.sync_index], 1) 7 else (null, 0) 8 9 let submit_info = SubmitInfo 10 type = StructureType/SubmitInfo 11 next = null 12 wait_semaphore_count = semaphore_count 13 wait_semaphores = semaphore_to_acquire@ptr 14 wait_dst_stage_mask = PipelineStageFlags/ColorAttachmentOutput@ptr 15 command_buffer_count = 1 16 command_buffers = command_buffer.object@ptr 17 signal_semaphore_count = 1 18 signal_semaphores = sync.ready_for_present_semaphores.as_ptr + image_index 19 20 vk/queue_submit command_buffer.instance.graphics_queue 1 submit_info@ptr 21 sync.fences[sync.sync_index] 22 |> assert_success 23