Skip to content

DisplayXR Runtime v2.32.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 19:44
· 160 commits to main since this release

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