直到现在,我才注意到上周发布的 Vulkan API 1.3.297 规范更新,该更新引入了一个新的扩展 VK_EXT_present_mode_fifo_latest_ready。
Vulkan 1.3.297 规范更新是一个小更新,只需修复文档中的三个问题,然后添加一个新的扩展:VK_EXT_present_mode_fifo_latest_ready。VK_EXT_present_mode_fifo_latest_ready 扩展由 NVIDIA 工程师提供,并提供了一种新的演示模式。
VK_EXT_present_mode_fifo_latest_ready 在扩展文档中描述为:
“此设备扩展添加了一种新的演示模式,VK_PRESENT_MODE_FIFO_LATEST_READY_EXT。
这种无撕裂演示模式的行为与 VK_PRESENT_MODE_FIFO_KHR 非常相似,不同之处在于每个垂直消隐周期都会将连续的演示请求取消排队,直到找到最新的就绪状态来更新当前图像。
虽然这在概念上似乎与 VK_PRESENT_MODE_MAILBOX_KHR 相似,但根本区别在于当前请求的处理是在 vblank 期间完成的。从应用程序的角度来看,这意味着,例如,在基于 Flip 的模型中,单个 vblank 可以:导致一次释放多个交换链映像,而 VK_PRESENT_MODE_MAILBOX_KHR 可能:在新请求准备就绪时不断释放映像。
这种额外的演示模式在使用基于时间的演示 API 时非常有用。
NVIDIA 发布了 550.40.78 Linux 驱动程序和 563.22 Windows 测试版驱动程序,它们增加了对 VK_EXT_present_mode_fifo_latest_ready 的支持。到目前为止,我还没有看到任何其他 Vulkan 驱动程序公开这个新扩展。
有关 Vulkan 1.3.297 规范更新的更多详细信息,请访问 GitHub。
转自 Vulkan 1.3.297 Introduces VK_EXT_present_mode_fifo_latest_ready – Phoronix