Repository navigation
DisplayXR Runtime v2.32.0
Highlights
Stereo cameras for XR_DXR_stereo_camera (#1846): a new vendor-neutral UVC side-by-side stereo camera source on Windows (Media Foundation), opt-in via %LOCALAPPDATA%\DisplayXR\stereo-cameras.json, with hardware MJPEG decode + GPU scale and a pipelined readback ring — hardware-verified on a SpatialLabs Eyes camera at 60 Hz with rows aligned (V4L2 stub on Linux).
Also: a native Metal backend for the macOS weave service (with xrWeaveSnapWindowRectDXR routed to the Metal DP), multi-screen segments on D3D12 and on the IPC/service path (multi-screen M6 + M3), macOS monitor enumeration + runtime-owned phase-snapped window drag/resize, in-process D3D11/D3D12 sessions reaching the service's lift (ADR-049), monitor physical size from the EDID on Windows, and the D3D12 cube test apps' sRGB colour fix.
Features
- feat(stereo-camera): vendor-neutral UVC side-by-side stereo source (Windows MF; V4L2 stub)
- feat(stereo-camera): hardware MJPEG decode path for the UVC source (GPU decode + scale)
- feat(weave): native Metal backend for the macOS weave service
- feat(weave): route xrWeaveSnapWindowRectDXR to the Metal DP on the macOS weave path
- feat(d3d12): weave a window spanning monitors per screen, with per-segment views (multi-screen M6 + M3)
- feat(plugin): append create_dp_d3d12_for_screen + D3D12 set_present_origin (multi-screen M6)
- feat(test-apps): cube_handle_d3d12_win renders per-segment views (multi-screen M3)
- feat(oxr): per-segment views for IPC sessions on Windows
- feat(ipc): segment table and view routing messages
- feat(d3d11_service): weave a direct client's spanning window per screen
- feat(comp): routed-view placement and change-only table publish helpers
- feat(d3d11): the window handle follows the majority segment (multi-screen M6, ADR-047 Amendment 2)
- feat(comp/util): window-handle owner hysteresis for segments (ADR-047 Amendment 2)
- feat(d3d11): segment a straddling window under the weave-on-scanout split (multi-screen M6)
- feat(metal): runtime-owned, phase-snapped, atomic window drag + resize on macOS (ADR-050) (#1875)
- feat(metal): multi-screen segments on macOS — per-display Metal DPs + per-segment views (#1873)
- feat(os): macOS monitor enumeration — CoreGraphics displays + IOKit EDID feed the claim registry (#1872)
- feat(lift): in-process D3D11/D3D12 sessions reach the service's lift over a lift-only connection (ADR-049) (#1867)
- feat(lift): app rig drives lift viewpoints + auxiliary metric depth on the lift thread
- feat(lift): XR_DXR_lift v3 API + DP contract — app rig viewpoints and auxiliary metric depth
Fixes
- fix(stereo-camera): UVC GPU path — no letterboxing; pipelined readback ring
- fix(weave): macOS weave review fixes — origin logging, mixed-scale panel pick, Metal DP retry
- fix(test-apps): D3D12 cubes decode authored colour for an _SRGB RTV (ADR-044, #1882) (#1885)
- fix(os/win32): fill monitor physical size in mm from the EDID (#1877)
- fix(plugin_loader): don't skip the claim sweep when a DXR_SCREEN_PLUGIN pin names another plug-in (#1874)
- fix(pin-bump): watch xrt_dp_lift.h in the features gate (#1871)
Docs
- docs: ADR-051 display status model + display dashboard design (multi-screen status for the CLI, Control Panel and agents)
- docs(multi-screen): D3D12 segments status (comp-segments, roadmap M6)
- docs(multi-screen): the service-path amendment is ADR-047 Amendment 3
- docs(multi-screen): segments on the service path (ADR-047 Amendment 2)
- docs(multi-screen): the HWND follows the majority segment (ADR-047 Amendment 2)
- docs(multi-screen): segments under the #918 split (comp-segments, roadmap M6, ADR-047 Amendment 1)
- docs(lift): XR_DXR_lift v3 spec (app rig, auxiliary depth, depthToDisplay math) + ADR-048 Addendum A
CI / Build
- build(d3d11): split the segment manager into comp_d3d11_segs
Other
- refactor(weave): split the macOS weave engine into a front end + vk backend
- refactor(d3d11): draw the segments' flat-2D fill through the output composite unit
- test(weave): weave_present_vk_macos — on-panel presenter for the macOS weave service
- test: segments on the IPC path
- diag(oxr): log the per-segment view-set decision once per change (multi-screen M3) (#1870)
- chore(probes): point run_weave_present_leia.sh at the Leia plug-in rebuilt for SR Metal ABI 20
- chore(versions): bump browser → v1.7.0
- chore(versions): bump leia_plugin → v2.13.0
- chore(versions): bump runtime → v2.31.0