假设GPU有多个后台缓冲区要渲染。
时间轴:
思想:
如果可能的话,我很乐意看到文档。我只是不知道语义定义的级别。
答案 0 :(得分:1)
语义未定义。至少,不是在OpenGL中,即使使用wgl/glX_EXT_swap_control。交换间隔将让您决定交换是否等待vsyncs,但如果您在vsyncs之间交换多次,它的实现定义了哪个图像显示。
wgl/glX_EXT_swap_control_tear允许您指定如果您在交换缓冲区时遇到撕裂行为。但是,如果你没有说明,那么会发生什么。
Vulkan允许实现不同类型的"交换"通过其现有模式的功能。 FIFO是唯一需要的演示模式,意味着您呈现的每个图像都将按照提供的顺序显示。这意味着如果你试图"交换" (用Vulkan的说法,获取)下一张图像,两者都在等待呈现,然后GPU就会失速。
有些模式可以立即显示给定的图像,这是一种镜像" swap_control_tear"的模式,以及一种在您的情况下有用的模式,如果您尝试渲染缓冲区的速度超过它们可以呈现的速度等待的人将被丢弃以支持下一张图片。