···1276127612771277 float target_frame_time_ms = ns_to_ms(c->settings.nominal_frame_interval_ns);
1278127812791279+ //! @todo: Query all supported refresh rates of the current mode
12801280+ sys_info->num_refresh_rates = 1;
12811281+ sys_info->refresh_rates[0] = 1. / time_ns_to_s(c->settings.nominal_frame_interval_ns);
12821282+12791283 uint64_t now = os_monotonic_get_ns();
12801284 for (int i = 0; i < NUM_FRAME_TIMES; i++) {
12811285 c->compositor_frame_times.times_ns[i] = now + i;
+3
src/xrt/include/xrt/xrt_compositor.h
···15571557 //! Number of meaningful elements in xrt_system_compositor_info::supported_blend_modes
15581558 uint8_t supported_blend_mode_count;
1559155915601560+ uint32_t num_refresh_rates;
15611561+ float refresh_rates[1];
15621562+15601563 //! The vk device as used by the compositor, never changes.
15611564 uint8_t compositor_vk_deviceUUID[XRT_GPU_UUID_SIZE];
15621565
+15
src/xrt/state_trackers/oxr/oxr_api_funcs.h
···515515 const XrHandJointsLocateInfoEXT *locateInfo,
516516 XrHandJointLocationsEXT *locations);
517517518518+//! OpenXR API function @ep{xrEnumerateDisplayRefreshRatesFB}
519519+XRAPI_ATTR XrResult XRAPI_CALL
520520+oxr_xrEnumerateDisplayRefreshRatesFB(XrSession session,
521521+ uint32_t displayRefreshRateCapacityInput,
522522+ uint32_t *displayRefreshRateCountOutput,
523523+ float *displayRefreshRates);
524524+525525+//! OpenXR API function @ep{xrGetDisplayRefreshRateFB}
526526+XRAPI_ATTR XrResult XRAPI_CALL
527527+oxr_xrGetDisplayRefreshRateFB(XrSession session, float *displayRefreshRate);
528528+529529+//! OpenXR API function @ep{xrRequestDisplayRefreshRateFB}
530530+XRAPI_ATTR XrResult XRAPI_CALL
531531+oxr_xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate);
532532+518533/*!
519534 * @}
520535 */