C Specification

The XrLoaderInitInfoPropertiesEXT structure is defined as:

// Provided by XR_EXT_loader_init_properties
typedef struct XrLoaderInitInfoPropertiesEXT {
    XrStructureType                        type;
    const void*                            next;
    uint32_t                               propertyValueCount;
    const XrLoaderInitPropertyValueEXT*    propertyValues;
} XrLoaderInitInfoPropertiesEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to the next structure in a structure chain.

  • propertyValueCount is a uint32_t specifying the count of elements in the propertyValues array.

  • propertyValues is an array of XrLoaderInitPropertyValueEXT structures containing the name-value pairs for loader properties.

Description

This structure is either provided directly as the parameter to xrInitializeLoaderKHR or on that parameter’s next chain, depending on whether your platform requires another structure to be passed to xrInitializeLoaderKHR. It contains an array of string property name-value pairs, intended primarily to be used by the loader.

The ordering of properties does not matter because the loader rejects any duplicate entries.

The loader must return XR_ERROR_VALIDATION_FAILURE if there are duplicate entries of property names in the given array. The loader must obey the properties in the internal database and use them to override environment variables. The loader must start the internal database of property pairs as empty. The loader must must clear the internal database of property pairs when xrInitializeLoaderKHR is called with XrLoaderInitInfoPropertiesEXT passed in an allowed way. (That is, the loader obeys only the properties passed in the most recent successful xrInitializeLoaderKHR call that included a XrLoaderInitInfoPropertiesEXT structure.)

It is unspecified what happens to the properties if the loader is unloaded then reloaded through dynamic library loading, due to differences in platforms beyond the control of this extension. Unlike platform functions to query environment variables, whose case sensitivity varies from platform to platform, the loader must always treat lookups of properties as case-sensitive in the internal database.

This extension describes a behavior of the OpenXR loader and not any behavior of a loaded runtime. As such any properties supplied by the application must not be exposed as environment variables and must not affect any other component of the system. Future loader implementations and loader specifications may add mechanisms for the runtime or OpenXR layers to query the properties but as the writing of this spec no such functionality exists.

Valid Usage (Implicit)

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.