Protonは最新のDXVK実装でうまく機能しますが、Protonが使用しているゲームのログファイルを検索すると、ホストシステムのデスクトップドライバのバージョンがここに記載されているものと一致しないことがわかりました。これまで私が知っているのは、dxvkがブリッジなので、D3D10 / D3D11の呼び出しがVulkanに変換され、ホストシステムで処理できるため、グラフィックドライバとVulkan mesaドライバに依存することです(私の場合はAmdgpu RADVです)。 。
Vulkanが使用するメサドライバのバージョンとAPIのバージョン。Protonがロードしたゲームログにリストされています(win64ゲーム):
AMD RADV POLARIS10(LLVM 7.0.1):
ドライバー: 18.3.6
Vulkan: 1.1.70
出力ボルカン情報報告書の提出「1.1.90」はバージョン「1.1.70」と同じではありません。プロトンの場合:
Vulkan インスタンスのバージョン: 1.1.107
GPU ID: 0
(AMD RADV POLARIS10 (LLVM 8.0.0))
apiVersion = 0x40105a (1.1.90)
DriverInfo = Mesa 19.1.0 (LLVM 8.0.0)
出力は以下から来ます。グローバル情報ネットワークメサドライババージョンとLLVMバージョンに同意ボルカン情報:
OpenGLレンダラー文字列:Radeon RX 570シリーズ(POLARIS10、DRM 3.30.0、5.1.14-arch1-1-ARCH、LLVM 8.0.0)
OpenGLコアプロファイルバージョン文字列:4.5(Core Profile) Mesa 19.1。
さらに、Vulkan環境の初期化が行われる前に、ゲームログに報告されているように次のDLLがロードされます。
0x7fa05e6e0000 に L"C:\windows\system32\vulkan-1.dll" ロード: 組み込み
0x7fa05e6a0000 に L"C:\windows\system32\winevulkan.dll" ロード: 組み込み
おそらく、これらのDLLがこれらの矛盾を引き起こしているようです。
編集する:別のゲームを開くときルテリスカスタムDXVK_HUDオプションを使用すると表示できます。両方Vulkan API バージョンと Mesa バージョンマッチ私のコンソールのバージョン。 Protonがなぜこのように振る舞うのかはまだわかりません。
まとめる
- ProtonのLLVMバージョンは、マイグラフィックドライバ(LLVM 7.0.1(Proton) - LLVM 8.0.0(ホスト))のバージョンとは異なります。
- ProtonのMesaドライバのバージョンは、私のホストシステムでGLとVKの実装を提供するバージョンとは異なります。
- ProtonのVulkan APIバージョンは、vulkaninfoによって報告されたVulkan実装で使用されるバージョンとは異なります。1.1.70(Proton) - 1.1.90(Host)
Protonが独自のカウンタートップの実装を提供していないことを知っている限り、ここで何かが抜けました。誰もがこれを説明し、なぜこれらのバージョン間に矛盾があるのか教えてもらえますか?
答え1
問題は、ランタイムが隔離された環境(サンドボックス)にロードされるFlathubリポジトリからSteamをインストールしたことです。そのため、Steam はルート (/home/user/var/app.valve...) から離れたルートを見ることができません。 DXVK_HUD を実行したときに表示されるバージョン間の不一致の理由は、分離のためと思われますが、3 番目の段落に示すように確認できません。
おそらく、Flathubのスチームは私のホストパッケージのバージョンをよく読めず、間違ったバージョンを報告しているかもしれません。しかし、LLVM 7がインストールされていないわけではありませんが、なぜDXVK_HUDは私がそれを使用していると言いますか?
これから、この問題を解決しました。SteamのFlathubバージョンをアンインストールし、multilib(32ビットARCHリポジトリ)にあるパッケージをインストールします。 Mesa、Vulkan-API、およびLLVMのバージョンは、私のホストとDXVK_HUDに示されているホストの間で一致します。私この問題がSteamバージョンのFlathubユーザーに存在する可能性があると考え始めました。しかし、オンラインで私の問題を議論する投稿を見つけられなかったことを誰が知っていますか?