commit 9c8905140b2271ce2cbfd04b952af85d8e9ca055
parent 5806ab0a34d10a0dcb47825b7a0b89be087a4803
Author: umhau <umhau@example.invalid>
Date: Wed, 21 Oct 2026 12:00:17 +0000
Docs: reliability milestone passed; factory calibration values and next steps
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat:
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/NOTES.md b/NOTES.md
@@ -83,3 +83,7 @@ for 60 Hz-only operation).
- Display-loss detection latency in the app: 10.7 s -> 0.98 s after moving callback work to CFRunLoopPerformBlock.
- Still open: millisecond-level continuity (candidate boot-arg appledptx-hot_unplug_delay_ms, parked), head tracking,
lens-distortion calibration.
+- 2026-10-20 ~[time redacted]: RELIABILITY MILESTONE PASSED. 650 s no-fault soak at native 90 Hz: 89.9987 presented fps,
+ skipped +3, 0 GPU errors, clean exit, zero DP resets (evidence/verified-90hz-soak.json). Fault recovery (separate
+ trials): 4.4 s outage via recovery queue + DRST.
+- Factory calibration was read successfully. Measured per-unit optical geometry is omitted from this public history; the demo reads each headset at runtime.
diff --git a/SETUP.md b/SETUP.md
@@ -98,7 +98,13 @@ zsh tools/build.sh # builds the app + the signe
(= 2 s grace + ~2.2 s reset/retrain/re-add). Releasing the capture inside the callback did not help
(CGDisplayRelease returns 1001 = kCGErrorIllegalArgument there; outages 4.6 s) and was removed.
- Every DRST is followed ~5.7 s later by a brief lane-sync blip (IRQ_HPD/INTERLANE retrain) that the app recaptures.
- - A no-fault 660 s soak at 90 Hz is in progress; not yet final proof.
+ - **Reliability milestone PASSED** (`evidence/verified-90hz-soak.json`, `evidence/verified-90hz-soak.txt`):
+ no-fault soak at native 4320x2160 @ 90 Hz, exit 0, 649.965 s settled interval, 58,496 presented frames =
+ 89.9987 fps, skipped +3, 0 GPU errors, no render-worker join timeout, zero DP resets. One 0.637 s self-heal at
+ startup, then no drops.
+- Factory calibration: `.build/debug/VRWorkstation --read-calibration <path>` reads the headset's config store over
+ HID (10,737 bytes, under 1 s; do it before the app enables the IMU). The app caches it at
+ `~/Library/Application Support/VRWorkstation/factory.json`. Lens correction using it is in progress.
## How the boot-arg was found
`amfi_get_out_of_my_way` controls code signing, not HDCP, so we searched this Mac's own kernel: