Valve、Linux 上で Windows ゲームを実行するためのスイートである Proton 4.11 をリリース

バルブカンパニー опубликовала 新しいプロジェクトブランチ プロトン4.11、Wine プロジェクトの開発に基づいており、Windows 用に作成され Steam カタログに表示されるゲーム アプリケーションを Linux 上で確実に起動できるようにすることを目的としています。 プロジェクトの開発 広める BSD ライセンスに基づいて。 準備が整うと、Proton で開発された変更が元の Wine および DXVK や vkd3d などの関連プロジェクトに転送されます。

Proton を使用すると、Windows 専用のゲーム アプリケーションを Steam Linux クライアントで直接実行できます。 パッケージには、DirectX 10/11 (ベース) の実装が含まれています。 DXVK 拡張子) および 12 (に基づく) vkd3d) は、Vulkan API への DirectX 呼び出しの変換を介して動作し、ゲーム コントローラーのサポートが向上し、ゲームでサポートされている画面解像度に関係なくフルスクリーン モードを使用できるようになります。 オリジナルの 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 カーネルに含めるために、 glibc。 準備された変更はまだメイン カーネルに含まれていないため、現時点では必要です。 確立する これらのプリミティブをサポートする特別なカーネル。

    Valve、Linux 上で Windows ゲームを実行するためのスイートである Proton 4.11 をリリース

  • 層間 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 モジュールは、Linux ライブラリではなく Windows PE ファイルとしてビルドされるようになりました。 この分野の研究が進むにつれて、PE の使用は一部の DRM およびアンチチート システムに役立つでしょう。 カスタム Proton ビルドを使用する場合は、PE ファイルをビルドするために Vagrant 仮想マシンを再作成する必要がある可能性があります。

Valve のパッチがメインの Linux カーネルに採用される前に、esync の代わりに futex() を使用するには、パッチのセットに実装されたスレッド同期プールをサポートする特別なカーネルをインストールする必要があります。 fsync。 Arch Linux の場合はすでに AUR に含まれています 公開済み 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 を強制的にオフにすることができます。

出所: オープンネット.ru

コメントを追加します