diff --git a/src/xrt/state_trackers/oxr/oxr_api_session.c b/src/xrt/state_trackers/oxr/oxr_api_session.c index 034f6ab6611d3fd4e500c35d4a6c0e053ea776a8..62cee638e7a5b7d020fe6e993171663f0d1f0d89 100644 --- a/src/xrt/state_trackers/oxr/oxr_api_session.c +++ b/src/xrt/state_trackers/oxr/oxr_api_session.c @@ -94,8 +94,8 @@ oxr_xrWaitFrame(XrSession session, struct oxr_logger log; OXR_VERIFY_SESSION_AND_INIT_LOG(&log, session, sess, "xrWaitFrame"); if (sess->compositor == NULL) { - return oxr_error(&log, XR_ERROR_VALIDATION_FAILURE, - "xrWaitFrame is illegal headless sessions"); + return oxr_error(&log, XR_ERROR_GRAPHICS_DEVICE_INVALID, + "xrWaitFrame is illegal in headless sessions"); } OXR_VERIFY_ARG_TYPE_AND_NULL(&log, frameState, XR_TYPE_FRAME_STATE); OXR_VERIFY_ARG_NOT_NULL(&log, frameState); @@ -109,8 +109,11 @@ oxr_xrBeginFrame(XrSession session, const XrFrameBeginInfo* frameBeginInfo) struct oxr_session* sess; struct oxr_logger log; OXR_VERIFY_SESSION_AND_INIT_LOG(&log, session, sess, "xrBeginFrame"); - OXR_VERIFY_ARG_TYPE_AND_NULL(&log, frameBeginInfo, - XR_TYPE_FRAME_BEGIN_INFO); + // NULL explicitly allowed here because it's a basically empty struct. + if (frameBeginInfo != NULL) { + OXR_VERIFY_ARG_TYPE_AND_NULL(&log, frameBeginInfo, + XR_TYPE_FRAME_BEGIN_INFO); + } return oxr_session_frame_begin(&log, sess); }