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

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

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

主要的 質子 4.11 的變化:

  • 與 Wine 4.11 程式碼庫進行了同步,從中傳輸了 3300 多個變更(先前的分支基於 wine 4.2)。 Proton 154 的 4.2 個補丁已移至上游,現在包含在主 Wine 包中;
  • 增加了對基於 futex() 系統調用的同步原語的實驗性支持,與 esync 相比,這減少了 CPU 負載。 此外,新的實作解決了需要使用的問題 特殊設定 用於同步和可能耗盡可用文件描述符。

    所做工作的本質是擴展 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 虛擬機器來建立 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

添加評論