开源 Raspberry Pi 图形驱动程序增加了双缓冲区模式

来源: OSCHINA
2022-01-16 08:16:01

Mesa 的 V3D 和 V3DV 驱动分别为较新的 Broadcom VideoCore 硬件提供了开源的 OpenGL 和 Vulkan 驱动支持,实现了双缓冲模式。正如 phoronix 所述,此举对这些驱动的众多工作负载来说是一个良好的发展,尤其是现代 Raspberry Pi 单板计算机所使用的驱动。

V3D/V3DV 实现了一个可选的双缓冲区模式,在某些方面可以帮助提高性能;但在某些方面也有可能出现回归,因此在默认情况下并没有启用。

Igalia 的 Iago Toral 合并解释称

双缓冲模式将 tile 缓冲区大小分成两半,因此我们可以在当前 tile 被存储到内存的同时开始处理下一个 tile。此模式仅在未启用 MSAA 时可用,理论上可以通过减少 tile 存储开销来提高性能。但是它是以减小 tile 大小为代价的,而这也会造成一些自身的开销。

测试表明这有助于某些情况(即 Vulkan Quake ports),但会损害一些其他情况 (即 Unreal Engine 4);所以目前我们默认不启用此功能,但我们允许使用 V3D_DEBUG 有选择地启用它。

现在,V3D_DEBUG=db 环境变量可以用来激活 Mesa 22.0-devel 上的这种双缓冲,前提是 multi-sample anti-aliasing(MSAA)被禁用。

展开阅读全文
4 收藏
分享
1 评论
4 收藏
分享
返回顶部
顶部
返回顶部
顶部