The open source OpenXR runtime

st/oxr: Add OXR_PARALLEL_VIEWS debug var

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2312>

authored by

Christoph Haag and committed by
Marge Bot
f6722271 338d8554

+18 -1
+10
src/xrt/state_trackers/oxr/oxr_instance.c
··· 49 49 DEBUG_GET_ONCE_BOOL_OPTION(debug_spaces, "OXR_DEBUG_SPACES", false) 50 50 DEBUG_GET_ONCE_BOOL_OPTION(debug_bindings, "OXR_DEBUG_BINDINGS", false) 51 51 DEBUG_GET_ONCE_BOOL_OPTION(lifecycle_verbose, "OXR_LIFECYCLE_VERBOSE", false) 52 + DEBUG_GET_ONCE_TRISTATE_OPTION(parallel_views, "OXR_PARALLEL_VIEWS") 52 53 53 54 54 55 #ifdef XRT_OS_ANDROID ··· 202 203 203 204 // Currently always true. 204 205 inst->quirks.no_validation_error_in_create_ref_space = true; 206 + 207 + enum debug_tristate_option parallel_view = debug_get_tristate_option_parallel_views(); 208 + 209 + // Only override hardcoded quirks when explicitly enabling or disabling, not on auto. 210 + if (parallel_view == DEBUG_TRISTATE_OFF) { 211 + inst->quirks.parallel_views = false; 212 + } else if (parallel_view == DEBUG_TRISTATE_ON) { 213 + inst->quirks.parallel_views = true; 214 + } 205 215 } 206 216 207 217 XrResult
+3
src/xrt/state_trackers/oxr/oxr_objects.h
··· 1711 1711 * XR_ERROR_VALIDATION_FAILURE in xrCreateReferenceSpace. 1712 1712 */ 1713 1713 bool no_validation_error_in_create_ref_space; 1714 + 1715 + //! For applications that rely on views being parallel, notably some OpenVR games with OpenComposite. 1716 + bool parallel_views; 1714 1717 } quirks; 1715 1718 1716 1719 //! Debug messengers
+5 -1
src/xrt/state_trackers/oxr/oxr_session.c
··· 614 614 * Pose 615 615 */ 616 616 617 - const struct xrt_pose view_pose = poses[i]; 617 + struct xrt_pose view_pose = poses[i]; 618 + 619 + if (sess->sys->inst->quirks.parallel_views) { 620 + view_pose.orientation = (struct xrt_quat)XRT_QUAT_IDENTITY; 621 + } 618 622 619 623 // Do the magical space relation dance here. 620 624 struct xrt_space_relation result = {0};