-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Monado OpenXR runtime intercompatibility #6038
Comments
Hello @Supreeeme, this feature request reads like it's written from a suboptimal perspective. Instead of asking for a manual bypass, this request should be generalized to ask for OpenXR applications to just work out of the box with Monado if that's what the default OpenXR runtime is set to on the host system. |
Yes, sorry, that's how I intended it. My point was right now Proton does things specifically for SteamVR and those things don't work if you have the runtime set to Monado, or presumably any other non-SteamVR OpenXR runtime. |
I would also like to express my support of this request - SteamVR is not as performant or reliable on Linux as Monado at this point , and feels somewhat neglected. So for titles that run in proton, I would like to be able to use Monado instead of steamVR, at least until your steamVR team at valve gets its act together regarding Linux. |
Would be kinda neat to see valve contribute to monado and use it over the current OpenXR runtime that steam provides, but thats neither here nor there. |
Hi @Supreeeme. I'm also trying to get a game working via Lutris -> Proton-GE (7-35) -> OpenXR -> Monado, namely the DCS World Beta which supposedly has OpenXR support: https://forum.dcs.world/topic/318004-dcs-now-supports-openxr-natively/ But even with:
I see no BEGIN_SESSION or any reaction on "XRT_COMPOSITOR_LOG=debug monado-service" when I start DCS World Beta. How did you set these registry keys, in which path and to which values did you set them? Via Lutris and the game's "Wine Registry" menu I can't find neither "state", "openxr_vulkan_instance_extensions" nor "openxr_vulkan_device_extensions". The "hello_xr" application from the libopenxr-utils package on Debian Sid works fine for me via monado-service. Which windows OpenXR apps were you able to run through Proton + Monado? Any non-steam, standalone, small OpenXR windows demo apps you can recommend for first tries? It seems that people were able to get DCS World running via Steam -> Proton -> OpenVR -> OpenOVR -> OpenXR -> Monado: #1722 (comment) But it would be great to be able to skip the OpenOVR layer for OpenVR to OpenXR translation. Especially as Monado is directly available on Debian while OpenOVR is not and would need a manual installation. Edit: The error I'm seeing from Proton on the console is the following when I try to run DCS World Beta:
So this seems indeed related to the missing registry keys? |
@T-X Could you try to change the relative path in active_runtime.json to be pointing to the library relative to ~/.config/openxr/1. The path you have when you just link to the file in /usr/share/... should not be valid from ~/.config/openxr/1. |
@farmboy0 I don't quite understand your remark. hello_xr works fine with what's set in my ~/.config/openxr/1/active_runtime.json / the ~/.local/share/openxr/1/openxr_monado.json it symlinks to. Also I was now able to manually configure everything in a Lutris installed OpenXR game. And have documented the steps I needed here: TheZoq2/dcs_on_linux#26 (comment). So I guess the ultimate goal of this ticket would be to make all these extra steps superfluous? |
@T-X The problem is that proton runs in a container, so its not quite the same as running wine standalone. And to make the container work with monado you need to make sure the container can see everything you need to comminucate with Monado which runs outside the container. |
I'm gonna close this because I've already solved my usecase: |
Did you have to take any extra steps to get proton to use monado with OpenComposite installed? OpenComposite initializes properly for me, but wineopenxr still fails to load the xr runtime
|
@Coreforge If I had to guess you're missing the |
Feature Request
I confirm:
contain this feature already.
Description
From my testing, the wineopenxr module reads from three registry keys that I assume are directly set by SteamVR (since I can't find any reference to the keys anywhere else within Proton) to get info from the OpenXR runtime:
state
,openxr_vulkan_instance_extensions
, andopenxr_vulkan_device_extensions
. If I set these keys in the prefix of an OpenXR game (as well as disable the steam runtime), I can get OpenXR apps to work with Monado, another Linux OpenXR runtime. Obviously you wouldn't want users having to set these registry keys for every OpenXR game, so it would be beneficial to have a way of reading the info these keys relay directly from the runtime.For the instance and device extension keys, I imagine it would be as simple as requesting the extensions from the runtime directly. The state key is a bit different in that it seems to exist to avoid a SteamVR bug where xrCreateInstance hangs if SteamVR is not running, but I imagine this can be worked around by just trying to create an instance and failing after a timeout. I could get these things into a pull request myself, but I'm sure I'm missing some context, namely why instance and device extensions need to be put into a registry key rather than queried directly, so I'd appreciate any guidance in that area.
The text was updated successfully, but these errors were encountered: