-
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
steam_helper: clean up OpenVR before getting OpenXR extensions in initialize_vr_data
#8126
base: proton_9.0
Are you sure you want to change the base?
Conversation
…itialize_vr_data` When using OpenComposite, both OpenVR and OpenXR functions may call the same underlying OpenXR loader. Because the OpenXR loader only supports a single active instance, `initialize_vr_data` currently fails as an OpenXR instance has already been initialized ath the time XR extensions are queried. This commit fixes the problem by cleaning up the temporary OpenVR context *before* initializing OpenXR instead of keeping it open until the end of the call. Fix for: ValveSoftware#7905
I'm sorry for the long delay, but I finally found some time to try out your suggestion. It works as expected AFAICT, thank you for the guidance. Regarding your comment about real names: I have no intention to use my real, full name on this account and I also don't want to pretend that I do :) If your offer to pull this under your name still stands, you have my permission to do so. That goes for anyone who would be willing to do so. |
@eburema were you able to compile proton yet? On my machine, the docker/podman build worked fine as long as my git repo and build dir were fresh. The problems I had were always caused by:
|
…itialize_vr_data` Patch written by Emily <[email protected]> #8126 When using OpenComposite, both OpenVR and OpenXR functions may call the same underlying OpenXR loader. Because the OpenXR loader only supports a single active instance, `initialize_vr_data` currently fails as an OpenXR instance has already been initialized ath the time XR extensions are queried. This commit fixes the problem by cleaning up the temporary OpenVR context *before* initializing OpenXR instead of keeping it open until the end of the call. Fix for: #7905 Signed-off-by: Paul Gofman <[email protected]>
Thanks! I pushed the patch, it is in Experimental [bleeding-edge] now: 5b26b6a |
Finally managed to compile proton (was in the end a user error), and tested this new addition to bleeding edge with both OpenComposite + Monado, and SteamVR. Patch seems to be working fine on my end (OpenXR games started to work in OC + Monado, and nothing broke in SteamVR) |
…itialize_vr_data` Patch written by Emily <[email protected]> #8126 When using OpenComposite, both OpenVR and OpenXR functions may call the same underlying OpenXR loader. Because the OpenXR loader only supports a single active instance, `initialize_vr_data` currently fails as an OpenXR instance has already been initialized ath the time XR extensions are queried. This commit fixes the problem by cleaning up the temporary OpenVR context *before* initializing OpenXR instead of keeping it open until the end of the call. Fix for: #7905 Signed-off-by: Paul Gofman <[email protected]>
When using OpenComposite, both OpenVR and OpenXR functions may call the same underlying OpenXR loader.
Because the OpenXR loader only supports a single active instance,
initialize_vr_data
currently fails as an OpenXR instance has already been initialized at the time XR extensions are queried.This commit fixes the problem by cleaning up the temporary OpenVR context before initializing OpenXR instead of keeping it open until the end of the call.
Fix for:
#7905
This is a follow-up to #7906.
As @gofman suggested, it is much simpler and safer to just close the OpenVR instance early than what I did before.
Tested with: