C++ 在Vulkan中启用VSync

C++ 在Vulkan中启用VSync,c++,c,vsync,vulkan,C++,C,Vsync,Vulkan,如何在Vulkan中使用vsync?我在Windows上,但代码也应该在Linux上工作。它是通过在vkAcquireNextImageKHR中插入一个栅栏来实现的吗?尽管您可以意识到,通过使用栅栏,正确的方法是使用一种等待垂直空白的表示模式,如VK\u PRESENT\u mode\u FIFO\u KHR 英特尔有一篇很棒的文章,详细介绍了Vulkan的不同表示模式 请注意,此模式可能不适用于所有设备,即使您选择了相应的演示模式,某些驱动程序也可能会忽略v-sync。因此,如果您使用其中一种

如何在Vulkan中使用vsync?我在Windows上,但代码也应该在Linux上工作。它是通过在vkAcquireNextImageKHR中插入一个栅栏来实现的吗?

尽管您可以意识到,通过使用栅栏,正确的方法是使用一种等待垂直空白的表示模式,如VK\u PRESENT\u mode\u FIFO\u KHR

英特尔有一篇很棒的文章,详细介绍了Vulkan的不同表示模式

请注意,此模式可能不适用于所有设备,即使您选择了相应的演示模式,某些驱动程序也可能会忽略v-sync。因此,如果您使用其中一种模式,但未获得v-sync,则可能需要等待更新的驱动程序


但是,如果它是在驱动程序内部实现的,这是在Vulkan支持的所有平台上进行v-sync的正确方法。

FIFO是一种始终可用的模式。技术上是的,at需要得到规范的支持。但是您仍然应该有一个后备方案,并且不要依赖VK_PRESENT_MODE_FIFO_KHR的存在,例如,如果您运行的是不一致的驱动程序或实现。