#559

feat(hdr): inherit client display peak luminance

Openprimez-xwants to merge intofrom

Vibepollo currently derives RTX HDR peak brightness from a host-selected MHC2 profile or its configured fallback. It cannot receive the peak luminance of the display used by Moonlight. This adds a versioned, optional client peak report to launch and resume, including Remote Monitor launch, based directly on current Nonary/Vibepollo:master.

  • Advertise ClientHdrPeakVersion=1; accept clientHdrPeakCalibrated and clientHdrPeakEdid integer nits.
  • Reject malformed values and reports outside 1–100000 nits; clamp accepted values to the existing host-supported 400–2000 range.
  • Preserve explicit app/client peak overrides and host-assigned MHC2 profiles before client calibration, client DXGI, and configured fallback.
  • Apply client reports only for real, effective HDR requests. Preserve app 10-bit SDR preferences, forced-off policy, shared-session runtime ownership, and rollback.
  • Snapshot file-plus-CLI HDR policy separately from paused runtime overrides so removing an app override on resume restores the configured policy.

Paired client: https://github.com/Nonary/moonlight-qt/pull/2

Validation (2026-10-05): Windows x64 Release built and linked successfully with PyroWave, tray, and WebRTC enabled. Four selected CTest suites passed, including all 14 focused peak-policy cases. The complete runtime package passed isolated startup and dependency checks; an installed Windows host restarted successfully and advertised ClientHdrPeakVersion=1. Scoped git diff --check passed.

Live end-to-end HDR streaming and other-platform builds remain unverified. The paired client passed its Windows x64 Release build and all 46 focused checks.