我怎么知道演示已经完成,因为VkPresentInfoKHR和vkQueuePresentKHR中没有信号灯和栅栏?

时间:2019-05-04 06:06:36

标签: vulkan

我可以在从交换链获取图像和渲染之间进行渲染,在渲染和演示之间进行同步,但是我是否需要在下一次循环迭代之前等待演示的完整性?

如果是,将使用哪种同步方法?

2 个答案:

答案 0 :(得分:0)

呈现图像的操作是异步操作,尽管与队列相关,但由于队列执行而无法完成 。而且它也不会/不应该阻止该队列,因为它可能涉及CPU操作。

您永远不应该等待演示文稿完成。您想要的是完成 acquire 的操作。这就是vkAcquireNextImageKHR需要使用信号灯/围栏的原因。除非这些命令与用于获取图像的信号灯/围栏同步,否则您将无法执行操作返回的图像的命令。

答案 1 :(得分:0)

我想说这种问题是无效的。 “演示完成”是什么意思?演示从不完成。图像会无限显示,并重复显示,直到您提供新图像为止。

检查演示文稿是否完成的唯一方法是致电vkAcquireNextImageKHR。这说明演示引擎仅使用 返回的图像来完成

但是,人们通常问的意思是如何获取VSync信息。它目前不平凡。并进一步研究了如何使其变得更好:Vulkan-Docs#370