07-29-2024 08:10 PM
I'm developing a native C++ OpenXR app for the Meta Quest 3 but I can't seem to properly set the api version to anything other than XR_MAKE_VERSION(1, 0, 0)
Ideally this should work assuming I'm using a supported OpenXR version:
XrApplicationInfo applicationInfo;
applicationInfo.apiVersion = XR_CURRENT_API_VERSION;
However this results in a:
Solved! Go to Solution.
07-30-2024 07:55 AM
Hi rickyjames35,
At the time of writing, using the latest 1.0 version number given by XR_API_VERSION_1_0 is the correct version to use for the Meta Quest devices. Note that it is important to not just use the 1.0.0 version, since that might opt you into compatibility behavior including old bugs.
Thanks for highlighting the confusing error message, I will forward that internally.
Best,
Andreas Selvik
07-30-2024 07:55 AM
Hi rickyjames35,
At the time of writing, using the latest 1.0 version number given by XR_API_VERSION_1_0 is the correct version to use for the Meta Quest devices. Note that it is important to not just use the 1.0.0 version, since that might opt you into compatibility behavior including old bugs.
Thanks for highlighting the confusing error message, I will forward that internally.
Best,
Andreas Selvik
07-30-2024 08:01 PM
Thanks for the reply @lionleaf. Your suggestion does work, but now I have a followup about how the versioning is intended to work.
As you pointed out, using XR_API_VERSION_1_0 is the correct thing to do. XR_MAKE_VERSION(1, 0, 0) and XR_API_VERSION_1_0 are not the same. Under the hood it XR_API_VERSION_1_0 gives you:
#define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
Since I'm using the latest OpenXR library at the time (1.1.38), this actually gives me the equivalent of XR_MAKE_VERSION(1, 0, 38). This does run and work on the device but seems very strange given 1.0.38 was never an OpenXR release. Is Khronos doing something different with how they are handling semantic versioning and are support both the 1.0 and 1.1 api at the same time on the same branch and the patch number applies to both api versions?