Repository navigation
DisplayXR Runtime v2.33.0
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_statusper-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_snapshotsession-free tool - feat(cli): versioned
--jsoncontract (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 listscreens[]; claims carry the key;dp list --jsonlists 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 --jsonworkspace_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_statusin 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.exewith a Start-menu shortcut
Other
- test: status snapshot, status IPC, per-screen preference, launch-settings grammar,
get_screen_statusiface 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