The open source OpenXR runtime
0
fork

Configure Feed

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

st/oxr: submit layers with os monotonic timestamp, not XrTime

The compositor does not know about XrTime, only os monotonic timestamps.

authored by

Christoph Haag and committed by
Jakob Bornecrantz
2e2a62ce 3c13dbce

+13 -10
+13 -10
src/xrt/state_trackers/oxr/oxr_session.c
··· 2012 2012 frameEndInfo->layers[i]; 2013 2013 assert(layer != NULL); 2014 2014 2015 + int64_t timestamp = time_state_ts_to_monotonic_ns( 2016 + sess->sys->inst->timekeeping, frameEndInfo->displayTime); 2017 + 2015 2018 switch (layer->type) { 2016 2019 case XR_TYPE_COMPOSITION_LAYER_PROJECTION: 2017 2020 submit_projection_layer( 2018 2021 xc, log, (XrCompositionLayerProjection *)layer, 2019 - xdev, &inv_offset, frameEndInfo->displayTime); 2022 + xdev, &inv_offset, timestamp); 2020 2023 break; 2021 2024 case XR_TYPE_COMPOSITION_LAYER_QUAD: 2022 - submit_quad_layer( 2023 - sess, xc, log, (XrCompositionLayerQuad *)layer, 2024 - xdev, &inv_offset, frameEndInfo->displayTime); 2025 + submit_quad_layer(sess, xc, log, 2026 + (XrCompositionLayerQuad *)layer, xdev, 2027 + &inv_offset, timestamp); 2025 2028 break; 2026 2029 case XR_TYPE_COMPOSITION_LAYER_CUBE_KHR: 2027 - submit_cube_layer( 2028 - sess, xc, log, (XrCompositionLayerCubeKHR *)layer, 2029 - xdev, &inv_offset, frameEndInfo->displayTime); 2030 + submit_cube_layer(sess, xc, log, 2031 + (XrCompositionLayerCubeKHR *)layer, 2032 + xdev, &inv_offset, timestamp); 2030 2033 break; 2031 2034 case XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR: 2032 2035 submit_cylinder_layer( 2033 2036 sess, xc, log, 2034 2037 (XrCompositionLayerCylinderKHR *)layer, xdev, 2035 - &inv_offset, frameEndInfo->displayTime); 2038 + &inv_offset, timestamp); 2036 2039 break; 2037 2040 case XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR: 2038 2041 submit_equirect_layer( 2039 2042 sess, xc, log, 2040 2043 (XrCompositionLayerEquirectKHR *)layer, xdev, 2041 - &inv_offset, frameEndInfo->displayTime); 2044 + &inv_offset, timestamp); 2042 2045 break; 2043 2046 case XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR: 2044 2047 submit_equirect2_layer( 2045 2048 sess, xc, log, 2046 2049 (XrCompositionLayerEquirect2KHR *)layer, xdev, 2047 - &inv_offset, frameEndInfo->displayTime); 2050 + &inv_offset, timestamp); 2048 2051 break; 2049 2052 default: assert(false && "invalid layer type"); 2050 2053 }