steam_helper: clean up OpenVR before getting OpenXR extensions in initialize_vr_data
#8126
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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: