<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>

Display

Part of Hardware plan.

Panels

Drive path

Software boundary

The compositor drives the panels. The Monado headset driver only describes them (resolution, refresh, distortion).

What selects the display

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).