<aside> ⚠️
This page is synced from GitHub. Edits will be overwritten.
Source: https://github.com/uwrealitylabs/standalone-knowledge-base/blob/main/docs/hardware/Display.md
Last synced: 2026-11-01 23:20:28 UTC
</aside>
Part of Hardware plan.
The compositor drives the panels. The Monado headset driver only describes them (resolution, refresh, distortion).
| Layer | Code | Decides |
|---|---|---|
| 1. Kernel | Device tree + panel driver + msm DRM | Which connectors exist (e.g. DSI-1, DSI-2) and their modes |
| 2. Vulkan driver | Turnip (Mesa shared display code) | Exposes KMS connectors as Vulkan displays drivable without a desktop |
| 3. Monado compositor target | Output targets in src/xrt/compositor/main/ |
Which display or window the compositor opens |
| 4. HMD device | Display description in xrt_device |
Resolution, viewports, refresh the compositor renders for |
Monado targets: direct mode for PCs (X11 RandR, NVIDIA, Wayland DRM leasing), windowed (X11, Wayland), and VK_KHR_display picking a display by index. Selection follows platform defaults plus env vars/settings; recent Monado reorganized targets into factories, so read the current tree.
With no desktop, the VK_KHR_display target is the fit. Confirm early, since both can fail independently of our code:
The dev kit's HDMI output is also a KMS connector, so the target can be proven on a monitor first (Tracer bullet roadmap Stage 1).