開源 Raspberry Pi 圖形驅動程式增加了雙緩衝區模式

2022-01-16 09:00:23

Mesa 的 V3D 和 V3DV 驅動分別為較新的 Broadcom VideoCore 硬體提供了開源的 OpenGL 和 Vulkan 驅動支援,實現了雙緩衝模式。正如 所述,此舉對這些驅動的眾多工作負載來說是一個良好的發展,尤其是現代 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)被禁用。

展開閱讀全文