近日,新的一项合并到 Mesa 24.3 的功能是 Wayland 下的 Vulkan FIFO 演示模式支持,但代码分支(功能冻结)尚未进行。
Wayland 上的 Mesa Vulkan 视窗系统集成 (WSI) 代码现在允许使用 Wayland 的 commit_timing 和 FIFO 协议启用 Vulkan FIFO(First In First Out)呈现模式,以替代邮箱演示模式。邮箱和 FIFO 呈现模式之间的区别在 Vulkan 文档中描述如下:
“VK_PRESENT_MODE_MAILBOX_KHR “指定演示引擎等待下一个垂直消隐期更新当前图像。无法观察到撕裂。内部单入口队列用于保存待处理的演示请求。如果收到新的演示请求时队列已满,新请求将取代现有条目,与前一条目相关的任何图像都将可供应用程序重新使用。在队列未空的每个垂直消隐期间,都会从队列中移除并处理一个请求。
VK_PRESENT_MODE_FIFO_KHR 指定演示引擎等待下一个垂直消隐周期更新当前图像。无法观察到撕裂。内部队列用于保存待处理的演示请求。新的请求会被添加到队列的末尾,在队列非空的每个垂直消隐周期内,会从队列的起始位置移除并处理一个请求。这是唯一需要支持的 presentMode 值”。
上个月,Wayland Protocols 1.38 添加了 FIFO 协议和 commit-timing-v1 协议,这些协议可用于在 Wayland 合成器下实现 Vulkan FIFO 支持。
一夜之间,这项历时 11 个月的合并请求终于进入了 Mesa 24.3 的主线,在 Wayland 下实现了对 Vulkan FIFO 的支持。