Skip to content

DisplayXR Runtime v2.33.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 18:04
· 505 commits to main since this release

Highlights

Multi-screen on Windows: a window spanning two 3D displays is now woven and looked-around per screen — in-process D3D11/D3D12 and the service's direct path, with the HWND following the majority screen and segments under the weave-on-scanout split.
New DisplayXR Dashboard (displayxr-dashboard.exe, Avalonia, Start-menu shortcut): live display status, per-screen display-processor choice, and workspace-controller launch settings. New CLI: displayxr-cli status [--watch], dp use --screen, workspace list/set/launch.

Features

  • feat(plugin): append get_screen_status per-screen vendor status slot (ADR-051 D2); sim_display implements it with synthetic values
  • feat(status): display status snapshot, headless builder and displayxr-cli status
  • feat(service): service-side status snapshot builder, per-client compositor facts, Windows native mode
  • feat(ipc): three session-free DIAG status RPCs + generation counters
  • feat(cli): status over DIAG IPC, status --watch; clients gains presenter/lease/window/owner
  • feat(mcp): get_status_snapshot session-free tool
  • feat(cli): versioned --json contract (schema 1) + selftest metres warning
  • feat(util)/feat(plugin-loader): per-screen display-processor preference store, stable screen key, per-screen preference rule; status snapshot carries both
  • feat(segments): recreate a screen's segment DP when its plug-in changes
  • feat(ipc): system_request_display_reprobe; re-probe re-reads the preference
  • feat(cli): dp use|reset --screen, dp list screens[]; claims carry the key; dp list --json lists each screen's claimants
  • feat(dashboard): DisplayXR Dashboard, an Avalonia renderer over displayxr-cli — Components page, per-screen selector, workspace-controller launch settings, DPI refit, hotkey suspend while capturing, status child linger; built from build_windows.bat
  • feat(service): workspace-controller launch settings model (hotkey grammar, service.json controllers map), applied live
  • feat(ipc): system_reload_service_config, system_workspace_launch, system_workspace_hotkey_suspend
  • feat(cli): workspace list|set|reset|launch|hotkey-suspend; info --json workspace_controllers[]
  • feat(macos): Vulkan apps weave on a Metal-only DP (VK via comp_metal) + fix the VK-via-Metal SIGBUS (#1900)
  • Metal compositor: format-honest colour (ADR-044) (#1901)

Fixes

  • fix(ipc): macOS weave sessions get tracked, window-offset OOP views (#1902)
  • fix(metal): resize cursor for runtime-owned resize; drawable from the applied window (#1899)
  • fix(cli): print and flush info / selftest output before tearing the instance down (#1892) (#1894)
  • fix(service): verify a DIAG / CONTROLLER peer by its long path, not its 8.3 spelling
  • fix(dashboard): read CLI JSON past stray log lines; button label colours; choose the display processor per screen only

Docs

  • Display dashboard phases 0–8 documented; get_screen_status in iface reference + vendor onboarding; Control Panel is now the Avalonia DisplayXR Dashboard
  • docs(adr-046): Amendment 1 — depth cursor on lifted content (Phase 3c)
  • docs(dxr-release): browser lanes need browser_version / deb_version before tagging

CI / Build

  • ci: Dashboard job; publish the dashboard into the Windows package
  • installer: ship displayxr-dashboard.exe with a Start-menu shortcut

Other

  • test: status snapshot, status IPC, per-screen preference, launch-settings grammar, get_screen_status iface pin, DisplayXR.Dashboard.Tests (xunit)
  • refactor(service): [HEALTH] and [RENDER] fill a struct before they log
  • chore(versions): bump browser → v1.7.1; runtime → v2.32.0