
一:概述在 Vulkan 的渲染流程中,vkAcquireNextImageKHR()、vkQueueSubmit()和vkQueuePresentKHR()共同构成了一条完整的同步链路,而其中最关键的同步对象就是 Semaphore。需要注意的是,这里的 Semaphore 属于 GPU 内部同步机制,并不是 CPU 与 GPU 之间的同步工具。二:渲染一帧的同步机制:渲染一帧的第一步通常是调用vkAcquireNextImageKHR()获取一张 Swapchain Image:vkAcquireNextImageKHR( device, swapchain, UINT64_MAX, acquire_semaphore, VK_NULL_HANDLE, imageIndex);这里传入的acquire_semaphore并不会立即变为 Signaled。vkAcquireNextImageKHR()的作用只是告诉 Presentation Engine(显示引擎):"当这张 Swapchain Image 真正可以重新用于渲染时,请 Signal 这个 Semaphore。"为什么需要这样做?因为 Acquire 返回的 Image 很可能上一帧还在被显示器扫描输出(Scanout)。如果