`graphics-drivers-openxr-1.c` removes vendor-specific fields from the active runtime json

オープン
#782 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
c

調査の方向性

graphics-drivers-openxr-1.c の報告された行付近から始め、g_object_new と srt_openxr_1_runtime_new_replace_library_path が置き換え用の active_runtime.json をどのように構築するかを追跡します。生成された設定を、ベンダー接頭辞付きフィールドを含めて元の JSON と比較します。これらのフィールドが保持され、ライブラリパスのオーバーライドが引き続き機能すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Pressure Vessel

I've noticed that vendor-specific prefixed fields seem to be trimmed from the active_runtime.json that gets mounted in the container's /etc folder when using PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1.

Compare my local active_runtime.json configuration, in my XDG_CONFIG_HOME:

{
    "file_format_version": "1.0.0",
    "runtime": {
        "name": "Monado",
        "library_path": "../../../lib/wivrn/libopenxr_wivrn.so",
        "MND_libmonado_path": "../../../lib/wivrn/libmonado_wivrn.so"
    }
}

to the one mounted to the container at ~/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/var/tmp-1X9FF3/usr/lib/pressure-vessel/overrides/etc/xdg/openxr/1/active_runtime.json:

{
  "file_format_version" : "1.0.0",
  "runtime" : {
    "library_path" : "/home/jvyden/.local/share/envision/prefixes/b5c04363-bfc4-48c7-8e7f-45b3e996a57b/lib/wivrn/libopenxr_wivrn.so",
    "name" : "Monado"
  }
}

I've narrowed this behavior down to graphics-drivers-openxr-1.c where it seems to drop the original JSON in favor of SRT's own format using g_object_new. This new format is then used to override the active_runtime.json in the container by passing through srt_openxr_1_runtime_new_replace_library_path.

This mainly affects Monado/WiVRn, but also could affect SteamVR since it sets VALVE_runtime_is_steamvr to true in the runtime configuration, according to https://github.com/ValveSoftware/steam-runtime/issues/575#issuecomment-1901000744. I noticed this upon trying to integrate libmonado into xrizer and not being able to find where libmonado is from the runtime configuration.


  • Steam Runtime Version: Sniper, I believe? This behavior is exhibited in Proton Experimental.
  • Distribution (e.g. Ubuntu 18.04): Arch Linux
  • Link to your full system information (Help -> Steam Runtime Diagnostics) in a Gist: https://gist.github.com/jvyden/550d3d3ef3f400b06db3a42593992c82
  • Have you checked for system updates?: [Yes/No] yes
  • What compatibility tool are you using?: Proton Experimental
  • What versions are listed in steamapps/common/SteamLinuxRuntime/VERSIONS.txt? 0.20240806.0
  • What versions are listed in steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt? 2.0.20250826.159137 0.20250820.0 0.20250820.0 2.0.20250826.159137
  • What versions are listed in steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt? 3.0.20250826.159138 0.20250820.0 0.20250820.0 3.0.20250826.159138
主要言語
Shell
スター
1.5k
フォーク
98
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ValveSoftware/steam-runtime のほかの issue

ValveSoftware/steam-runtime の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。