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 via |
||
Uses IK to determine body position based on head and hands position. Permissions: |
||
For devices that support multiple environment blend modes. Permissions: |
||
This extension allows the application to request depth maps of the real-world environment around the headset and query supported depth resolutions at creation. Permissions: |
||
This extension allows the application to persist. Permissions: |
||
This extension allows applications to determine which extensions are supported by the current system configuration. |
||
This extension enables applications to obtain position and orientation of the user's eyes, as well as eye tracking status. Permissions: |
||
This extension enables applications to get weights of blend shapes and render facial expressions in XR experiences. Permissions: |
||
This extension enables applications to get face tracking data from multiple data sources. Permissions: |
||
This extension enables hand tracking inputs represented as a dynamic hand mesh. Permissions: |
||
This extension allows the application to request data representing the lighting of the real-world environment around the headset. Permissions: |
||
This extension builds upon the basic Permissions: |
||
This extension provides an |
||
The passthrough camera can take time to start up and might not be immediately available. |
||
This extension provides APIs to enumerate and query various performance metrics counters of the current XR device. |
||
This extension allows the application to perform raycasts against trackables in the environment. Permissions: |
||
This extension allows the runtime to notify the application when the recommended resolution changes. |
||
The user's default environment can: be in a variety of states using a combination of a blend mode and input modality. |
||
This extension is intended to provide meshes that approximately represent the physical objects in the user's environment. |
||
The In contrast, this extension creates a spatial anchor that are represented by an Permissions: |
||
This extension provides the annotation tracking capability for the Permissions: |
||
This extension builds on Permissions: |
||
This extension builds on XR_EXT_spatial_entity and provides raycast functionality for existing spatial capabilities. Permissions: |
||
This extension allows applications to create and attach anchors to spatial entities. Permissions: |
||
This extension builds on Permissions: |
||
This extension allows the application to access trackables from the physical environment. Permissions: |
||
This extension enables tracking of planar images as specified by sets of input reference images. Permissions: |
||
This extension enables physical marker tracking. Permissions: |
||
This extension enables physical object tracking. Permissions: |
||
This extension enables physical QR code tracking and QR code data decoding. Permissions: |
||
This extension allows applications to create an |
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. |
||
This extension adds an optional structure that can be included on the
|
||
Due to the nature of the OpenXR interface, there is very little error information available to the developer and application. |
||
This extension enables applications to locate the individual joints of hand tracking inputs. Permissions: |
||
This extension defines an API for the application to give performance hints to the runtime and for the runtime to send performance related notifications back to the application. This allows both sides to dial in a suitable compromise between needed CPU and GPU performance, thermal sustainability and a consistent good user experience throughout the session. |
||
On platforms which support dynamically adjusting the display refresh rate. |
||
This extension enables the application to modify and query specific mutable state associated with a swapchain. |
||
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 eye to be displayed at higher resolution than areas in the periphery. |
||
On Facebook HMDs, developers can create foveation profiles generated by the runtime for the optical properties and performance. |
||
The Vulkan graphics API requires an image to be applied to the swapchain to apply a foveation pattern. |
||
This extension provides support to enable space warp technology on application. |
||
This extension must be provided by runtimes supporting applications using OpenGL ES APIs for rendering. |
||
When the application creates an XrInstance object on Android systems. |
||
A common activity in XR is to view an image stream. |
||
For XR to be comfortable, it is important for applications to deliver frames quickly and consistently. |
||
Color scale and bias are applied to a layer color during composition, after its conversion to premultiplied alpha representation. |
||
This extension adds an additional layer type that enables direct sampling from cubemaps. |
||
This extension adds an additional layer type where the XR runtime must map a texture stemming from a swapchain onto the inside of a cylinder section. It can be imagined much the same way a curved television display looks to a viewer. |
||
This extension defines an extra layer type which allows applications to submit depth images along with color images in projection layers. |
||
This extension adds an additional layer type where the XR runtime must map an equirectangular coded image stemming from a swapchain onto the inside of a sphere. |
||
This extension adds an additional layer type where the XR runtime must map an equirectangular coded image stemming from a swapchain onto the inside of a sphere. This extension uses a different parameterization more in keeping with the formulation of |
||
This extension provides two functions for converting between timespec monotonic time and |
||
This extension enables the use of the Vulkan graphics API in an OpenXR runtime. |
||
This extension enables the use of the Vulkan graphics API in an OpenXR runtime. |
||
On some platforms, before loading can occur the loader must be initialized with platform-specific parameters. |
||
On Android, some loader implementations need the application to provide additional information on initialization. |
||
This extension enables an application to specify that swapchain images should be created in a way so that they can be used as input attachments. At the time of writing this bit only affects Vulkan swapchains. |
||
This extension allows the application to bind one or more digital actions to a trackpad or thumbstick as though it were a dpad by defining additional component paths to suggest bindings for. |
||
This extension defines a Universally Unique Identifier that follows RFC 4122. |
||
This extension enables depth-tested layer composition. |
||
This extension provides an Permissions: |
||
This extension defines four commonly used action poses for all user hand interaction profiles including both hand tracking devices and motion controller devices. |
||
This extension support the providing of a per-view drawing mask for applications. |
||
Eye tracked foveated rendering renders lower pixel density in the periphery of the user’s gaze. Permissions: |
||
The Permissions: |
||
This extension defines a new "standard pose identifier" for interaction profiles, named "palm_ext". |
||
Varjo headsets provide extremely high pixel density displays in the center area of the display. Permissions: |
||
This extension adds a new view configuration type -
|
||
Using this extension, a Vulkan-based application can pass through additional |
||
The Permissions: |
||
This extension does not define a new composition layer type. |
||
|
||
This extension allows applications to request the use of processing options such as sharpening or super-sampling on a composition layer. |
||
This extension introduces the xrLocateSpacesKHR function. |
||
The core OpenXR spec contains two world-locked reference space |
||
This extension builds on Permissions: |
||
This extension allows applications to discover and correlate spatial entities across application sessions. Permissions: |
||
This extension builds on Permissions: |
||
This extension builds on |
||
This extension introduces the concepts and foundations for scene understanding and spatial reasoning in OpenXR. |
||
In XR systems there are certain operations that are long running and don't reasonably complete within a normal frame loop. |
||
XR devices might use a color space that is different from many monitors used in development. |
||
This extension provides a flag which, when applied to a composition layer, inverts the interpretation of the alpha value in the layer's swapchain images. |
||
This extension provides support to enable frame synthesis on applications based on additional application provided data. |
||
Provides Qualcomm image tracking operations for trackables. |
||
Provides Qualcomm QR code tracking operations for trackables. |
||
This extension introduces a new event to notify when the system detected the change of user presence. |
||
This extension extends the maximum struct name sizes and provides a new function to access these new extended names. |
||
|
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.