閥門公司 專案的新分支 基於 Wine 專案的發展,旨在確保為 Windows 開發並在 Steam 目錄中呈現的遊戲應用程式能夠在 Linux 上發布。該項目的發展 在 BSD 許可下。 當它們準備好時,在 Proton 中開發的變更將轉移到原始 Wine 和相關項目,例如 DXVK 和 vkd3d。
Proton 可讓您在 Steam Linux 用戶端中直接執行僅限 Windows 的遊戲應用程式。 該軟體包包括 DirectX 10/11 的實作(基於 )和12(基於 )通過將 DirectX 調用轉換為 Vulkan API 來工作,改進了對遊戲控制器的支持,並且無論遊戲支持的屏幕分辨率如何,都能夠使用全屏模式。 與原始 Wine 相比,由於補丁的應用,多線程遊戲的性能得到了顯著提升”「(Eventfd 同步)或「futex/fsync」。
主要的 :
- 與 Wine 4.11 程式碼庫的同步已經完成,移植了超過 3300 個變更(先前的分支基於 wine 4.2)。來自 Proton 154 的 4.2 個補丁已經向上游移植,現在已成為核心 Wine 發行版的一部分;
- 增加了基於 futex() 系統調用的同步原語的實驗性支持,與 esync 相比,這降低了 CPU 負載。此外,新的實作解決了使用 用於 esync 和可能耗盡可用的檔案描述符。
正在進行的工作的核心是擴展 Linux 核心中標準 futex() 系統呼叫的功能,使其具備執行緒池最佳同步所需的功能。 Proton 的 FUTEX_WAIT_MULTIPLE 標誌的必要支援補丁已發布。 納入主 Linux 內核和 。準備的變更尚未包含在主核心中,因此目前需要 支持這些原語的特殊核心;
- 夾層 (在 Vulkan API 之上實作 DXGI、Direct3D 10 和 Direct3D 11)已更新至版本 和 (在 Vulkan 之上實驗性地實現 Direct3D 9)最高版本 0.13f。若要在 Proton 中啟用 D9VK 支持,請使用 PROTON_USE_D9VK 標誌;
- 當前顯示器刷新率現在傳輸到遊戲;
- 修復與滑鼠遊標焦點處理和視窗管理相關的問題;
- 修正了某些遊戲(尤其是 Unity 遊戲)中出現的操縱桿輸入延遲和振動支援問題;
- 增加了對最新版本OpenVR SDK的支援;
- 實作 DirectX 音訊庫(API XAudio2、X3DAudio、XAPO 和 XACT3)的 FAudio 元件已更新至版本 19.07;
- 修正了 GameMaker 遊戲中網路子系統的問題;
- 現在,許多 Wine 模組都是以 Windows PE 檔案的形式建構的,而不是 Linux 函式庫。隨著這方面工作的進展,使用 PE 將有助於一些 DRM 系統和反作弊軟體。如果您使用的是自訂 Proton 版本,則可能需要重新建立 Vagrant VM 來建置 PE 檔案。
在 Valve 的補丁被納入主 Linux 核心之前,使用 futex() 而不是 esync 需要安裝一個支援補丁集中實現的線程同步池的特殊核心。 . 對於已經在 AUR 中的 Arch Linux 即用型核心包,已使用 fsync 補丁編譯。在 Ubuntu 18.04 和 19.04 中,您可以使用 linux-mfutex-valve 實驗性核心 PPA(sudo add-apt-repository ppa:valve-experimental/kernel-bionic;sudo apt-get install linux-mfutex-valve);
如果您的核心支援 fsync,則啟動 Proton 4.11 時控制台將顯示訊息「fsync: up and running」。您可以使用 PROTON_NO_FSYNC=1 標誌強制停用 fsync。
來源: opennet.ru
