Valve 發布 Proton 4.11,一個在 Linux 上運行 Windows 遊戲的套件

閥門公司 опубликовала 專案的新分支 質子4.11基於 Wine 專案的發展,旨在確保為 Windows 開發並在 Steam 目錄中呈現的遊戲應用程式能夠在 Linux 上發布。該項目的發展 傳播 在 BSD 許可下。 當它們準備好時,在 Proton 中開發的變更將轉移到原始 Wine 和相關項目,例如 DXVK 和 vkd3d。

Proton 可讓您在 Steam Linux 用戶端中直接執行僅限 Windows 的遊戲應用程式。 該軟體包包括 DirectX 10/11 的實作(基於 DXVK)和12(基於 vkd3d)通過將 DirectX 調用轉換為 Vulkan API 來工作,改進了對遊戲控制器的支持,並且無論遊戲支持的屏幕分辨率如何,都能夠使用全屏模式。 與原始 Wine 相比,由於補丁的應用,多線程遊戲的性能得到了顯著提升”同步「(Eventfd 同步)或「futex/fsync」。

主要的 Proton 4.11 中的變化:

  • 與 Wine 4.11 程式碼庫的同步已經完成,移植了超過 3300 個變更(先前的分支基於 wine 4.2)。來自 Proton 154 的 4.2 個補丁已經向上游移植,現在已成為核心 Wine 發行版的一部分;
  • 增加了基於 futex() 系統調用的同步原語的實驗性支持,與 esync 相比,這降低了 CPU 負載。此外,新的實作解決了使用 特殊設定 用於 esync 和可能耗盡可用的檔案描述符。

    正在進行的工作的核心是擴展 Linux 核心中標準 futex() 系統呼叫的功能,使其具備執行緒池最佳同步所需的功能。 Proton 的 FUTEX_WAIT_MULTIPLE 標誌的必要支援補丁已發布。 轉入 納入主 Linux 內核和 格里布。準備的變更尚未包含在主核心中,因此目前需要 建立 支持這些原語的特殊核心;

     Valve 發布 Proton 4.11,一個在 Linux 上運行 Windows 遊戲的套件
  • 夾層 DXVK (在 Vulkan API 之上實作 DXGI、Direct3D 10 和 Direct3D 11)已更新至版本 1.3D9VK (在 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

添加評論