The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

st/oxr: Verify frameEndInfo->layerCount

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

+15
+15
src/xrt/state_trackers/oxr/oxr_api_session.c
··· 176 176 OXR_VERIFY_SESSION_RUNNING(&log, sess); 177 177 OXR_VERIFY_ARG_TYPE_AND_NOT_NULL(&log, frameEndInfo, XR_TYPE_FRAME_END_INFO); 178 178 179 + // Get from compositor. 180 + struct xrt_system_compositor_info *info = sess->sys->xsysc ? &sess->sys->xsysc->info : NULL; 181 + 182 + // headless extension does not modify the 16 layer minimum. 183 + uint32_t max_layers = 16; 184 + if (info) { 185 + max_layers = info->max_layers; 186 + } 187 + 188 + if (frameEndInfo->layerCount > max_layers) { 189 + return oxr_error(&log, XR_ERROR_LAYER_LIMIT_EXCEEDED, "(layerCount == %u) exceeds limit %u", 190 + frameEndInfo->layerCount, max_layers); 191 + } 192 + 193 + 179 194 #ifdef XRT_FEATURE_RENDERDOC 180 195 if (sess->sys->inst->rdoc_api) { 181 196 #ifndef XR_USE_PLATFORM_ANDROID