為了讓用戶在Linux上玩爽遊戲,Valve也是操碎了心
Valve提議對linux內核進行修改,使其對遊戲的支持更加友好。具體來說,它希望擴展FUTEX(fast user-space locking快速用戶空間鎖定)功能,並對glibc和lbpthread進行修改以提高多線程操作性。
Valve一直堅定不移地支持改進linux系統的遊戲性能。儘管在steam os中對Linux的遊戲性能進行了深度優化並改進了Wine的兼容性能,甚至和眾多硬體廠商合作推出了搭載steam os系統的steam machine設備,但Linux在遊戲性能上的瓶頸不是這麼簡單就能突破的。
Wine的問題在於,當面臨著更高硬體要求的程序時,顯得力不從心。Valve通過在Linux發布的beta版steam play中加入Proton一類對遊戲更加友好的定製版Wine來保證遊戲體驗,雖然對於某些玩家來說這卻有成效,但在Linux的遊戲性能方面仍然存在許多問題。
在Linux最近一次build的patch notes中,Valve建議對Linux內核進行修改,以克服它在嘗試運行一些遊戲時發現的問題。
首先,它為esync提供了一個名為fsync的實驗性替代品,後者提供了「對基於Futex的進程原生支持」,並且比esync有著更少的CPU資源佔用。但是,它需要使用Linux內核的eventfd()函數,因此需要對Linux內核進行修改才能確保其正常工作。
「我們建議對Linux內核[lkml.org]進行修改,以擴展Futex()系統調用以公開我們認為支持最佳線程池同步所需的額外核心功能。」
這些更改將主要擴展Futex()功能,以建立最佳線程池同步。Proton 4.11將得到fsync補丁以在新內核可用時提供支持。
開發人員還提議對glibc(GNU發布的libc庫)和libp線程進行修改。
「我們還建議對glibc和libp線程進行修改,以使linux本機多線程應用程序可以使用libp線程,這可以從等待一組futexes的行為中受益,」協合的軟體工程師Gabriel Krisman Bertazi在LKML(Linux內核郵件列表)討論中說。
Bertazi接著說,在早期測試中,在Proton中運行Beat Saber的性能提高了4%,影子盜墓者的性能則提高了1.5%。
Linux社區歡迎該修補程序,儘管需要對其進行一些清理,以滿足當前的編碼標準。
Valve貼上了「概念證明」Glibc貼片以供審查。它相信這些改變將大大改善Linux上的遊戲功能。
Valve表示「我們將通過在本機大規模線程應用程序(如Steam和源2引擎)中採用它來提高效率」
(L)
小獅子最喜歡的雞腿 分割線
※遊戲體驗全面強化的力作!邂逅航嘉X3292C電競顯示器
※惋惜:微軟手裡又死掉一款Win10產品
TAG:鈦師父 |