···5454 log, XR_ERROR_VALIDATION_FAILURE,
5555 "(%s == XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT) is only valid if XR_EXT_local_floor is enabled",
5656 field_name);
5757+ case XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT:
5858+#ifdef OXR_HAVE_MSFT_unbounded_reference_space
5959+ if (sys->inst->extensions.MSFT_unbounded_reference_space) {
6060+ return XR_SUCCESS;
6161+ }
6262+#endif
6363+ return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
6464+ "(%s == XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT) is only valid if "
6565+ "XR_MSFT_unbounded_reference_space is enabled",
6666+ field_name);
5767 default: break;
5868 }
5969
+1-1
src/xrt/state_trackers/oxr/oxr_objects.h
···12761276 uint32_t blend_mode_count;
12771277 XrEnvironmentBlendMode blend_modes[3];
1278127812791279- XrReferenceSpaceType reference_spaces[4];
12791279+ XrReferenceSpaceType reference_spaces[5];
12801280 uint32_t reference_space_count;
1281128112821282 //! Cache of the last known system roles, see @xrt_system_roles::generation_id
+7-1
src/xrt/state_trackers/oxr/oxr_system.c
···194194 * Reference space support.
195195 */
196196197197- static_assert(4 <= ARRAY_SIZE(sys->reference_spaces), "Not enough space in array");
197197+ static_assert(5 <= ARRAY_SIZE(sys->reference_spaces), "Not enough space in array");
198198199199 if (sys->xso->semantic.view != NULL) {
200200 sys->reference_spaces[sys->reference_space_count++] = XR_REFERENCE_SPACE_TYPE_VIEW;
···219219 if (sys->xso->semantic.stage != NULL) {
220220 sys->reference_spaces[sys->reference_space_count++] = XR_REFERENCE_SPACE_TYPE_STAGE;
221221 }
222222+223223+#ifdef OXR_HAVE_MSFT_unbounded_reference_space
224224+ if (sys->inst->extensions.MSFT_unbounded_reference_space && sys->xso->semantic.unbounded != NULL) {
225225+ sys->reference_spaces[sys->reference_space_count++] = XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT;
226226+ }
227227+#endif
222228223229224230 /*