Extensions

Custom OpenXR extensions that enable tracked spatial display capabilities not covered by the base OpenXR specification.

Why custom extensions?

Standard OpenXR was designed for headsets and controllers. Tracked spatial displays have different requirements: they need to communicate display geometry, support window-hosted compositing, and provide spatial display models that don't map to existing OpenXR concepts.

DisplayXR defines focused extensions to fill these gaps while remaining compatible with the OpenXR architecture and extension model. The goal is practical interoperability, not a competing specification.

Display capability

What the runtime tells apps about the 3D display they're rendering on.

App window binding

How an app hands its native window to the runtime so the compositor can output into it.

Workspace controller surface

How a swappable workspace controller (the DisplayXR Shell, or any third-party / OEM / vertical equivalent) drives multi-app composition and the launcher on top of the runtime.

Extension philosophy

  • Minimal scope — each extension does one thing well. No monolithic specs.
  • OpenXR-compatible — follows the standard extension registration and dispatch model.
  • Vendor-independent — designed for any tracked spatial display, not tied to a specific hardware vendor.
  • Explicitly versioned — specs evolve through clear versioning so apps and runtimes can negotiate capabilities.

All extension specifications and headers are in the displayxr-extensions repository.