Based on the engineering research, here is our recommendation:
To proceed, you should utilize our OpenXR Loader from the SDK package. By replacing the generic OpenXR loader with ours, the system will locate the Spaces Services Runtime, enabling session creation.
Additionally, follow this a link to StereoKit, which supports Spaces, is open source, and serves as an excellent example for their implementation.
Snapdragon Spaces OpenXR Custom Loader Setup · StereoKit/StereoKit · Discussion #790 · GitHub.
Please note that while these solutions work, they are not officially supported and I can not guarantee you won't run into issues at some point.
GitHub - StereoKit/StereoKit: An easy-to-use XR engine for building AR and VR applications with C# and OpenXR!
An easy-to-use XR engine for building AR and VR applications with C# and OpenXR! - StereoKit/StereoKit
Please follow this thread for more information:
Custom 3D engine : Spaces Snapdragon Forum
Richard. rountree
Hi,
I have seen a few posts here about using the SDK via generic OpenXR interface rather than using the Unity or Unreal SDKs and see it should be possible.
We are in the process of implementing this for our engine which already supports OpenXR on other platforms. We have also tried using the OpenXR tutorials to remove any doubt of incorrect API usage through our engine, specifically https://github.com/KhronosGroup/OpenXR-Tutorials Chapter 2 example which creates an XrInstance.
We have sideloaded the OpenXR Runtime Broker and that is showing "Snapdragon Spaces Services" installed and selected as the OpenXR runtime.
The call to xrCreateInstance is returning the error code XR_ERROR_INITIALIZATION_FAILED, which implies our XrInstanceCreateInfo structure contains a platform specific extension for a different platform. There are no API layers enabled and only 2 enabled extensions: XR_EXT_debug_utils XR_KHR_vulkan_enable
Is there any specific additional requirements to create a snapdragon spaces instance? Our next step will be to look through the Unreal source to see if there is anything specific but if there were some pointers to get us there faster that would be helpful.
Thanks,
Richard.