A usage guide for the Hand Tracking Frequency Hint OpenXR extension and links to related topics.
Overview
The XR_META_hand_tracking_frequency_hint extension allows applications to suggest a preferred hand tracking update frequency to the runtime. By default, the runtime uses a power-efficient tracking frequency suitable for general use cases. Applications that require more responsive hand tracking can request a higher frequency to reduce latency.
This extension depends on XR_EXT_hand_tracking.
Note: The frequency hint is advisory only. The runtime may ignore the hint based on system constraints, power management policies, or user preferences. Applications should not rely on the runtime honoring the frequency hint.
Extension: XR_META_hand_tracking_frequency_hint
The XR_META_hand_tracking_frequency_hint extension introduces one enum and one function.
XrHandTrackingFrequencyHintMETA
The XrHandTrackingFrequencyHintMETA enum defines the available frequency hints:
XR_HAND_TRACKING_FREQUENCY_HINT_DEFAULT_META (1): The application suggests the runtime use the default hand tracking frequency. This is typically the most power-efficient frequency that provides adequate tracking quality for general use cases.
XR_HAND_TRACKING_FREQUENCY_HINT_HIGH_META (2): The application suggests the runtime use a higher hand tracking frequency when possible. This may provide more responsive tracking, but at higher frame rates, the effectiveness of temporal smoothing algorithms is reduced, which can result in increased jitter and less visually smooth hand tracking.
xrSetHandTrackingFrequencyHintMETA
The xrSetHandTrackingFrequencyHintMETA function sets the hand tracking frequency hint for a session.
XrSession session; // previously initialized
// Request the default hand tracking frequency
OXR(xrSetHandTrackingFrequencyHintMETA(session, XR_HAND_TRACKING_FREQUENCY_HINT_DEFAULT_META));
// Or, request a high hand tracking frequency
OXR(xrSetHandTrackingFrequencyHintMETA(session, XR_HAND_TRACKING_FREQUENCY_HINT_HIGH_META));
Toggle the frequency hint at runtime based on application state:
XrHandTrackingFrequencyHintMETA hint = requestHighFrequency
? XR_HAND_TRACKING_FREQUENCY_HINT_HIGH_META
: XR_HAND_TRACKING_FREQUENCY_HINT_DEFAULT_META;
xrSetHandTrackingFrequencyHintMETA(session, hint);
For hand tracking samples and additional OpenXR extensions, see the Meta OpenXR SDK.