Android XR supports OpenXR through the OpenXR 1.1 specification and a long list of third party vendor extensions. Using these extensions offers you that familiar experience when developing for XR. Some of these capabilities require Android runtime permissions. If you are looking to build directly on the OpenXR APIs, you can find the required header files in the jetpack-xr-natives repository.
Android XR Vendor Extensions
Extension Name |
Description |
Spatial API Version |
|---|---|---|
Anchors created by an application using XR_ANDROID_trackables are tied to a specific session and thus not visible to other... |
v1 |
|
Uses IK to determine body position based on head and hands position. |
v2 |
|
For devices that support multiple environment blend modes. |
v1 |
|
This extension allows the application to request depth maps of the real-world environment around the headset and query... |
v1 |
|
This extension allows the application to persist. |
v1 |
|
This extension allows applications to determine which extensions are supported by the current system configuration. |
v3 |
|
This extension enables applications to obtain position and orientation of the user's eyes, as well as eye tracking status. |
v1 |
|
This extension enables applications to get weights of blend shapes and render facial expressions in XR experiences. |
v1 |
|
This extension enables applications to get face tracking data from multiple data sources. |
v3 |
|
This extension enables hand tracking inputs represented as a dynamic hand mesh. |
v1 |
|
This extension allows the application to request data representing the lighting of the real-world environment around the headset. |
v1 |
|
This extension builds upon the basic XR_ANDROID_light_estimation extension. |
v3 |
|
This extension provides an XrPath for getting mouse input and defines one commonly used action pose for user mouse profiles... |
v1 |
|
The passthrough camera can take time to start up and might not be immediately available. |
v1 |
|
This extension provides APIs to enumerate and query various performance metrics counters of the current XR device. |
v1 |
|
This extension allows the application to perform raycasts against trackables in the environment. |
v1 |
|
This extension allows the runtime to notify the application when the recommended resolution changes. |
v1 |
|
The user's default environment can: be in a variety of states using a combination of a blend mode and input modality. |
v1 |
|
This extension is intended to provide meshes that approximately represent the physical objects in the user's environment. |
v1 |
|
The xrCreateSpatialAnchorEXT function defined in the XR_EXT_spatial_anchor extension allows applications to create spatial... |
v3 |
|
This extension provides the annotation tracking capability for the <<XR_EXT_spatial_entity>> extension to tracking various... |
v3 |
|
This extension builds on XR_EXT_spatial_entity and provides a new component for XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT to... |
v3 |
|
This extension builds on XR_EXT_spatial_entity and provides raycast functionality for existing spatial capabilities. |
v3 |
|
This extension allows applications to create and attach anchors to spatial entities. |
v3 |
|
This extension builds on XR_EXT_spatial_entity and defines a spatial capability for tracking a set of predefined physical... |
v3 |
|
This extension allows the application to access trackables from the physical environment. |
v1 |
|
This extension enables tracking of planar images as specified by sets of input reference images. |
v3 |
|
This extension enables physical marker tracking. |
v1 |
|
This extension enables physical object tracking. |
v1 |
|
This extension enables physical QR code tracking and QR code data decoding. |
v1 |
|
This extension allows applications to create an XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID reference space. |
v1 |
Third-party extensions
Extension Name |
Description |
Spatial API Version |
|---|---|---|
Some applications might need to access XR interaction devices without presenting any image content on the display or displays. |
v1 |
|
This extension adds an optional structure that can be included on the XrInteractionProfileSuggestedBinding::next chain passed... |
v1 |
|
Due to the nature of the OpenXR interface, there is very little error information available to the developer and application. |
v1 |
|
This extension enables applications to locate the individual joints of hand tracking inputs. |
v1 |
|
This extension defines an API for the application to give performance hints to the runtime and for the runtime to send... |
v1 |
|
On platforms which support dynamically adjusting the display refresh rate. |
v1 |
|
This extension enables the application to modify and query specific mutable state associated with a swapchain. |
v1 |
|
Foveation in the context of XR is a rendering technique that allows the area of an image near the focal point or fovea of the... |
v1 |
|
On Facebook HMDs, developers can create foveation profiles generated by the runtime for the optical properties and performance. |
v1 |
|
The Vulkan graphics API requires an image to be applied to the swapchain to apply a foveation pattern. |
v1 |
|
This extension provides support to enable space warp technology on application. |
v1 |
|
This extension must be provided by runtimes supporting applications using OpenGL ES APIs for rendering. |
v1 |
|
When the application creates an XrInstance object on Android systems. |
v1 |
|
A common activity in XR is to view an image stream. |
v1 |
|
For XR to be comfortable, it is important for applications to deliver frames quickly and consistently. |
v1 |
|
Color scale and bias are applied to a layer color during composition, after its conversion to premultiplied alpha representation. |
v1 |
|
This extension adds an additional layer type that enables direct sampling from cubemaps. |
v1 |
|
This extension adds an additional layer type where the XR runtime must map a texture stemming from a swapchain onto the inside... |
v1 |
|
This extension defines an extra layer type which allows applications to submit depth images along with color images in... |
v1 |
|
This extension adds an additional layer type where the XR runtime must map an equirectangular coded image stemming from a... |
v1 |
|
This extension adds an additional layer type where the XR runtime must map an equirectangular coded image stemming from a... |
v1 |
|
This extension provides two functions for converting between timespec monotonic time and XrTime. |
v1 |
|
This extension enables the use of the Vulkan graphics API in an OpenXR runtime. |
v1 |
|
This extension enables the use of the Vulkan graphics API in an OpenXR runtime. |
v1 |
|
On some platforms, before loading can occur the loader must be initialized with platform-specific parameters. |
v1 |
|
On Android, some loader implementations need the application to provide additional information on initialization. |
v1 |
|
This extension enables an application to specify that swapchain images should be created in a way so that they can be used as... |
v1 |
|
This extension allows the application to bind one or more digital actions to a trackpad or thumbstick as though it were a dpad... |
v1 |
|
This extension defines a Universally Unique Identifier that follows RFC 4122. |
v1 |
|
This extension enables depth-tested layer composition. |
v1 |
|
This extension provides an XrPath for getting eye gaze input from an eye tracker to enable eye gaze interactions. |
v1 |
|
This extension defines four commonly used action poses for all user hand interaction profiles including both hand tracking... |
v1 |
|
This extension support the providing of a per-view drawing mask for applications. |
v1 |
|
Eye tracked foveated rendering renders lower pixel density in the periphery of the user’s gaze. |
v1 |
|
The XR_EXT_hand_tracking extension provides a list of hand joint poses which represent the current configuration of the... |
v1 |
|
This extension defines a new "standard pose identifier" for interaction profiles, named "palm_ext". |
v1 |
|
Varjo headsets provide extremely high pixel density displays in the center area of the display. |
v1 |
|
This extension adds a new view configuration type - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO to XrViewConfigurationType... |
v1 |
|
Using this extension, a Vulkan-based application can pass through additional VkImageCreateFlags or VkImageUsageFlags by... |
v1 |
|
The XR_EXT_hand_tracking extension provides a list of hand joint poses but no mechanism to render a skinned hand mesh. |
v1 |
|
This extension does not define a new composition layer type. |
v1 |
|
XR_KHR_maintenance1 adds a collection of minor features that were intentionally left out or overlooked from the original... |
v1 |
|
This extension allows applications to request the use of processing options such as sharpening or super-sampling on a... |
v1 |
|
This extension introduces the xrLocateSpacesKHR function. |
v1 |
|
The core OpenXR spec contains two world-locked reference space XrSpace types in XrReferenceSpaceType. |
v1 |
|
This extension builds on XR_EXT_spatial_entity and allows applications to detect and track markers in their environment. |
v1 |
|
This extension allows applications to discover and correlate spatial entities across application sessions. |
v1 |
|
This extension builds on XR_EXT_spatial_entity and allows applications to create spatial anchors. |
v1 |
|
This extension builds on XR_EXT_spatial_entity and defines the plane tracking spatial capability for the spatial entity framework. |
v1 |
|
This extension introduces the concepts and foundations for scene understanding and spatial reasoning in OpenXR. |
v1 |
|
In XR systems there are certain operations that are long running and don't reasonably complete within a normal frame loop. |
v1 |
|
XR devices might use a color space that is different from many monitors used in development. |
v1 |
|
This extension provides a flag which, when applied to a composition layer, inverts the interpretation of the alpha value in... |
v1 |
|
This extension provides support to enable frame synthesis on applications based on additional application provided data. |
v3 |
|
Provides Qualcomm image tracking operations for trackables. |
v3 |
|
v3 |
||
This extension introduces a new event to notify when the system detected the change of user presence. |
v3 |
|
This extension extends the maximum struct name sizes and provides a new function to access these new extended names. |
v3 |
|
XR_EXT_interaction_profile_battery_state_display provides a mechanism for applications to query the runtime for battery state... |
v3 |
OpenXR™ and the OpenXR logo are trademarks owned by The Khronos Group Inc. and are registered as a trademark in China, the European Union, Japan and the United Kingdom.