Thanks to visit codestin.com
Credit goes to displayxr.org

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.

Tracked off-axis projection: an asymmetric frustum from the tracked eye position to the corners of the fixed display plane, recomputed every frame as the eye moves, so rendered content reads as depth behind the glass.

Display capability

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

Rendering & projection

How an app drives the runtime's view math and tells it which parts of the window are 3D versus flat 2D — instead of re-implementing the projection or 2D/3D compositing itself.

XR_EXT_view_rigEarly

View Rig

Lets an app drive the runtime's view-rig math instead of re-implementing the off-axis (Kooima) projection from raw eye positions. The app chains a small rig descriptor — virtual display height and ipd/parallax/perspective factors for a display rig, or convergence and vertical FOV for a camera rig — onto xrLocateViews and consumes standard, render-ready XrView{pose, fov}, exactly as on any other OpenXR runtime. A raw-result channel still exposes the untransformed eye and display-plane inputs for aware consumers that keep doing their own math.

XR_EXT_local_3d_zoneBeta

Local 3D Zones

Lets an app declare which regions of its window are 3D versus flat 2D via a per-pixel 3D-ness mask, authored as the whole window, a list of rects, or a freeform render target. The runtime composites a flat 2D layer over the weaved 3D output gated by the mask, and a hardware display processor can drive a switchable-lens panel so only the 3D regions weave. Spec v3 adds the 2D side as a first-class post-weave composition layer submitted through the normal frame loop.

XR_EXT_display_zonesBeta

Display Zones

Declares a layout of independent 3D zones and flat 2D zones across a single display, each 3D zone carrying its own view rig, plus a wish mask the vendor display processor honors when driving a switchable-lens panel. Powers mixed 2D/3D compositions — a weaved 3D object beside a flat 2D HUD, for example — and underpins the out-of-process display compositing used on Android.

XR_EXT_weaveExperimental

Window Weave Service

A window-bound, synchronous weave service for present-owners — callers that own their OS window and present it themselves, but want the runtime's vendor display processor to weave a sub-rect of that window for them. The caller hands the runtime a pre-weave stereo (side-by-side) texture and a window-relative rect and gets back a weaved shared texture plus a fence to composite and present. The caller never weaves; it is the runtime half of the inline-3D-in-a-browser path.

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.

Agent control

How applications plug into the AI-agent surface — exposing their own actions to agents and voice drivers through the same MCP framework the runtime and workspace controllers use.

Capture

Getting the composed 3D frame back out of the runtime — for screenshots, recording, and dataset generation.

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.

Where to next