11 月 26 日消息,Mesa 中的 Broadcom V3DV VideoCore 开源 Vulkan 驱动已经重写了硬件遮挡查询(occlusion queries)相关代码,大幅提高了性能和可靠性。
伊亚戈・托拉尔(Iago Toral)重写了 V3DV 遮挡查询代码,改进了 VideoCore Vulkan 驱动的性能。他在合并请求中解释道:“我们的实现主要依靠 CPU 完成,诸如查询重置和结果复制,还有查询可用性跟踪的某些方面都是由 CPU 处理的”。
这个新的实现通过调度计算着色器来处理所有 GPU 方面的查询功能,这涉及到查询可用性、重置和结果复制。目前这种方式仅支持管理遮挡查询,不过未来通过一些额外的工作也可以实现性能查询(Performance queries)。
作为开源树莓派 Raspberry Pi 图形驱动方面的改进,重写的 1000 多行 V3DV 驱动代码已经合并到 Mesa 23.0 中。
了解到,硬件遮挡查询是 3D API 告诉应用渲染某个物体时是否会绘制像素的特性。当包围盒被遮挡时,则跳过绘制包围盒内的物体。尽管该特性已经存在,但仍然存在两个问题影响它的广泛使用:解决遮挡查询本身的开销和等待查询结果的延迟。