C Specification

The xrPersistSpatialAnchorAsyncBD function is defined as:

// Provided by XR_BD_spatial_anchor
XrResult xrPersistSpatialAnchorAsyncBD(
    XrSenseDataProviderBD                       provider,
    const XrSpatialAnchorPersistInfoBD*         info,
    XrFutureEXT*                                future);

Parameters

Parameter Descriptions

To persist a spatial anchor, call xrPersistSpatialAnchorAsyncBD.

Description

Persisting a spatial anchor means storing it to a persistent storage, allowing it to be reloaded and located in subsequent sessions by the same application.

This function starts an asynchronous operation and creates a corresponding XrFutureEXT, usable with xrPollFutureEXT and related functions. The return value of this function only indicates whether the parameters were acceptable to schedule the asynchronous operation. The corresponding completion function is xrPersistSpatialAnchorCompleteBD, usable when a future from this function is in the READY state, with outputs populated by that function in the completion structure XrFutureCompletionEXT.

If a previously persisted spatial anchor is successfully loaded and located by the runtime after starting a spatial anchor provider, the runtime must queue an XrEventDataSenseDataUpdatedBD event.

In subsequent sessions, to retrieve the previously persisted spatial anchor or anchors, after receiving the XrEventDataSenseDataUpdatedBD event, use the normal practice of creating a snapshot and getting the queried sense data (call xrQuerySenseDataAsyncBD, xrQuerySenseDataCompleteBD, xrGetQueriedSenseDataBD per the specification). Tracking data is accessible by calling xrCreateSpatialEntityAnchorBD and xrCreateAnchorSpaceBD as specified. All of these functions are defined in XR_BD_spatial_sensing.

If the XrAnchorBD is already persisted, calling this function does not change the persistence status. In this case, the runtime must still set the return value of xrPersistSpatialAnchorAsyncBD to XR_SUCCESS. The runtime must set the corresponding future result returned by xrPersistSpatialAnchorCompleteBD to XR_SUCCESS.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_FUNCTION_UNSUPPORTED

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_SPATIAL_SENSING_SERVICE_UNAVAILABLE_BD

  • XR_ERROR_FEATURE_UNSUPPORTED

See Also

Document Notes

For more information, see the OpenXR Specification

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.