GNOME 49 將透過更多全螢幕應用程式提供更好的效能
GNOME 49 將於9 月推出的另一項值得期待的改進是,由於上週合併到Mutter 合成器的一項改進,更多應用程式將能夠獲得更好/更快的直接掃描輸出。這項由Robert Mader 撰寫的Mutter 改進旨在使用不透明格式取代Wayland DMA-BUF 程式碼路徑上的直接掃描輸出。

Mader 在合併請求中解釋:
許多顯示引擎,尤其是較老或較簡單的引擎,僅支援不透明格式。然而,許多用戶端需要帶有Alpha 通道進行裝飾的格式,並且在視窗完全不透明的情況下(例如全螢幕或平鋪模式),無法輕鬆地按需更改格式。因此,他們使用不透明區域(Wayland 和EWMH 中均有此功能)來告知合成器是部分不透明還是完全不透明。
在完全不透明的情況下,我們可以利用這一訊息,在將緩衝區交給KMS 進行掃描輸出時,將Alpha 格式替換為其不透明變體。也就是說,我們對KMS 的格式“撒謊”,因為我們知道,如果顯示引擎支援Alpha 格式,視覺效果將與我們所獲得的效果相同。
因此,在受影響的裝置上,對於全螢幕視訊播放等常見用例,我們更頻繁地使用直接掃描輸出路徑,從而減少了資源佔用。
這種「技巧」已被Weston 等其他合成器使用多年,似乎適用於所有上游修改器。理論上,可能存在一些修飾符不滿足此假設,但目前看來不太可能不被阻止。
為了讓客戶端(Mesa)相應地切換到掃描輸出修飾符/標誌等,我們還需要在掃描輸出批次中添加實際不支援的Alpha 格式。
長話短說,現在在GNOME 49 Mutter 下運行的更多應用程式將適用於直接掃描輸出,從而享受更好的效能和效率。