···9494 OXR_VERIFY_SESSION_AND_INIT_LOG(&log, session, sess, "xrBeginSession");
9595 OXR_VERIFY_SESSION_NOT_LOST(&log, sess);
9696 OXR_VERIFY_ARG_TYPE_AND_NOT_NULL(&log, beginInfo, XR_TYPE_SESSION_BEGIN_INFO);
9797- OXR_VERIFY_VIEW_CONFIG_TYPE(&log, sess->sys->inst, beginInfo->primaryViewConfigurationType);
9797+9898+ // in a headless session there is no compositor and primaryViewConfigurationType must be ignored
9999+ if (sess->compositor != NULL) {
100100+ OXR_VERIFY_VIEW_CONFIG_TYPE(&log, sess->sys->inst, beginInfo->primaryViewConfigurationType);
101101+ }
9810299103 if (sess->has_begun) {
100104 return oxr_error(&log, XR_ERROR_SESSION_RUNNING, "Session is already running");
+2-1
src/xrt/state_trackers/oxr/oxr_session.c
···210210 if (xc != NULL) {
211211 XrViewConfigurationType view_type = beginInfo->primaryViewConfigurationType;
212212213213- if (view_type != sess->sys->view_config_type) {
213213+ // in a headless session there is no compositor and primaryViewConfigurationType must be ignored
214214+ if (sess->compositor != NULL && view_type != sess->sys->view_config_type) {
214215 /*! @todo we only support a single view config type per
215216 * system right now */
216217 return oxr_error(log, XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,