我可以在从交换链获取图像和渲染之间进行渲染,在渲染和演示之间进行同步,但是我是否需要在下一次循环迭代之前等待演示的完整性?
如果是,将使用哪种同步方法?
答案 0 :(得分:0)
呈现图像的操作是异步操作,尽管与队列相关,但由于队列执行而无法完成 。而且它也不会/不应该阻止该队列,因为它可能涉及CPU操作。
您永远不应该等待演示文稿完成。您想要的是完成 acquire 的操作。这就是vkAcquireNextImageKHR
需要使用信号灯/围栏的原因。除非这些命令与用于获取图像的信号灯/围栏同步,否则您将无法执行操作返回的图像的命令。
答案 1 :(得分:0)
我想说这种问题是无效的。 “演示完成”是什么意思?演示从不完成。图像会无限显示,并重复显示,直到您提供新图像为止。
检查演示文稿是否完成的唯一方法是致电vkAcquireNextImageKHR
。这说明演示引擎仅使用 返回的图像来完成
但是,人们通常问的意思是如何获取VSync信息。它目前不平凡。并进一步研究了如何使其变得更好:Vulkan-Docs#370