ValveSoftware / ValveSoftware/steam-runtime
`graphics-drivers-openxr-1.c` removes vendor-specific fields from the active runtime json
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 1.5k
- Forks
- 97
- PR merge metrics
- No merged PRs in 30d
Description
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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in graphics-drivers-openxr-1.c around the reported line and trace how g_object_new and srt_openxr_1_runtime_new_replace_library_path construct the replacement active_runtime.json. Compare the generated configuration with the source JSON, including vendor-prefixed fields; done means those fields are retained while the library path override still works.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100