mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-02-18 11:40:06 +00:00
st/oxr: Fix projection layer viewCount validation
This commit is contained in:
parent
1059c5fa4f
commit
3fd69da828
|
@ -591,11 +591,44 @@ verify_projection_layer(struct oxr_session *sess,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proj->viewCount < 1 || proj->viewCount > XRT_MAX_VIEWS) {
|
switch (sess->sys->view_config_type) {
|
||||||
return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
|
case XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO:
|
||||||
"(frameEndInfo->layers[%u]->viewCount == %u) must be between 1 and %d for projection "
|
if (proj->viewCount != 1) {
|
||||||
"layers and the current view configuration",
|
return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
|
||||||
layer_index, proj->viewCount, XRT_MAX_VIEWS);
|
"(frameEndInfo->layers[%u]->viewCount == %u) must be 1 for "
|
||||||
|
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO",
|
||||||
|
layer_index, proj->viewCount);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO:
|
||||||
|
if (proj->viewCount != 2) {
|
||||||
|
return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
|
||||||
|
"(frameEndInfo->layers[%u]->viewCount == %u) must be 2 for "
|
||||||
|
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO",
|
||||||
|
layer_index, proj->viewCount);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO:
|
||||||
|
if (proj->viewCount != 4) {
|
||||||
|
return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
|
||||||
|
"(frameEndInfo->layers[%u]->viewCount == %u) must be 4 for "
|
||||||
|
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO",
|
||||||
|
layer_index, proj->viewCount);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT:
|
||||||
|
if (proj->viewCount != 1) {
|
||||||
|
return oxr_error(log, XR_ERROR_VALIDATION_FAILURE,
|
||||||
|
"(frameEndInfo->layers[%u]->viewCount == %u) must be 1 for "
|
||||||
|
"XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT",
|
||||||
|
layer_index, proj->viewCount);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
assert(false && "view type validation unimplemented");
|
||||||
|
return oxr_error(log, XR_ERROR_RUNTIME_FAILURE, "view type %d not supported",
|
||||||
|
sess->sys->view_config_type);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// number of depth layers must be 0 or proj->viewCount
|
// number of depth layers must be 0 or proj->viewCount
|
||||||
|
|
Loading…
Reference in a new issue