‹ projects

reverb-m1

Native wired VR on Apple silicon: Reverb G1 display bring-up and stereo demo
git clone https://umhau.org/code/reverb-m1.git
Log | Files | Refs

commit 59220ad8186a87d85160d78bba4c6c7cd7b6c5da
parent e03821f3c7bf02b1d5a20e36c07904476e846053
Author: umhau <umhau@example.invalid>
Date:   Wed, 21 Oct 2026 12:00:20 +0000

Record recovery, native 90 Hz soak, and calibrated rendering evidence

Diffstat:
Aevidence/app-recovery-trials-90hz.json | 249+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/calibrated-90hz-trial.json | 19+++++++++++++++++++
Aevidence/calibrated-90hz-trial.txt | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/calibrated-recovery-live.txt | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/calibrated-recovery-trial.json | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/calibration-offline-checks.txt | 25+++++++++++++++++++++++++
Aevidence/clean-shutdown-1.txt | 17+++++++++++++++++
Aevidence/clean-shutdown-2.txt | 15+++++++++++++++
Aevidence/clean-shutdown-trials.json | 22++++++++++++++++++++++
Aevidence/factory-calibration-read-verified.txt | 4++++
Aevidence/factory-calibration-read.txt | 4++++
Aevidence/final-app-recovery-trials.json | 153+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/final-metal-worker-soak.txt | 326+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/frameclock-first-soak.txt | 157+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/helper-safety-checks.txt | 10++++++++++
Aevidence/lenswarp-gpu-checks.txt | 2++
Aevidence/recovery-callback-release.json | 153+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/recovery-callback-release.txt | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/recovery-command-experiments.jsonl | 4++++
Aevidence/recovery-queue-baseline.json | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/recovery-queue-baseline.txt | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/recovery-trials-60hz.json | 179+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/soak-before-teardown-fix.txt | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/soak-main-thread-stall.txt | 143+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aevidence/startup-render-worker-fixed.json | 8++++++++
Aevidence/startup-render-worker-fixed.txt | 44++++++++++++++++++++++++++++++++++++++++++++
Aevidence/startup-render-worker.json | 8++++++++
Aevidence/startup-render-worker.txt | 45+++++++++++++++++++++++++++++++++++++++++++++
Aevidence/startup-runloop-fix.json | 8++++++++
Aevidence/startup-runloop-fix.txt | 35+++++++++++++++++++++++++++++++++++
Aevidence/startup-trial-1.txt | 33+++++++++++++++++++++++++++++++++
Aevidence/startup-trial-2.txt | 33+++++++++++++++++++++++++++++++++
Aevidence/startup-trials.json | 38++++++++++++++++++++++++++++++++++++++
Aevidence/verified-90hz-build.json | 17+++++++++++++++++
Aevidence/verified-90hz-soak.json | 31+++++++++++++++++++++++++++++++
Aevidence/verified-90hz-soak.txt | 287+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
36 files changed, 2597 insertions(+), 0 deletions(-)

diff --git a/evidence/app-recovery-trials-90hz.json b/evidence/app-recovery-trials-90hz.json @@ -0,0 +1,249 @@ +{ + "started": 565.151639, + "app_recovery": true, + "commands": [ + { + "started": 565.188874, + "argv": [ + "hidcmd", + "off" + ], + "ended": 565.307219, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 565.374558, + "argv": [ + "hidcmd", + "on" + ], + "ended": 565.668005, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + }, + { + "started": 577.157944, + "argv": [ + "hidcmd", + "off" + ], + "ended": 577.281840, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 577.342010, + "argv": [ + "hidcmd", + "on" + ], + "ended": 577.6670132, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + }, + { + "started": 591.887796, + "argv": [ + "hidcmd", + "off" + ], + "ended": 592.0210729, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 592.1071081, + "argv": [ + "hidcmd", + "on" + ], + "ended": 592.4302661, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + } + ], + "display_events": [ + { + "received": 565.188674, + "line": "565.188422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 565.374486, + "line": "565.374422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 565.3745122, + "line": "565.374422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 567.1534278, + "line": "567.153422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 567.153450, + "line": "567.153422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 567.562732, + "line": "567.562422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 567.562749, + "line": "567.562422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 574.426373, + "line": "574.426422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 574.426451, + "line": "574.426422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 575.210498, + "line": "575.209422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 575.210515, + "line": "575.209422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 575.670484, + "line": "575.670422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 575.670501, + "line": "575.670422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 577.341881, + "line": "577.341422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 577.341931, + "line": "577.341422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 581.877207, + "line": "581.877422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 581.877422, + "line": "581.877422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 582.309493, + "line": "582.309422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 582.309518, + "line": "582.309422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 586.939449, + "line": "586.939422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 586.939467, + "line": "586.939422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 587.7288592, + "line": "587.728422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 587.728875, + "line": "587.728422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 588.1889489, + "line": "588.188422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 588.1889699, + "line": "588.189422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 592.106874, + "line": "592.106422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 592.106915, + "line": "592.106422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 596.639261, + "line": "596.639422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 596.639282, + "line": "596.639422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 597.074720, + "line": "597.071422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 597.0748038, + "line": "597.071422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 601.701619, + "line": "601.699422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 601.701655, + "line": "601.699422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 602.3262138, + "line": "602.326422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 602.326231, + "line": "602.326422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 602.7690868, + "line": "602.769422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 602.769116, + "line": "602.769422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "returned_after_screen_on_without_DRST", + "post_recovery_drops": [ + 0.7841250896453857 + ] + }, + { + "index": 2, + "outcome": "recovered_by_app", + "seconds": 2.2007510662078857, + "post_recovery_drops": [ + 0.7894101142883301 + ] + }, + { + "index": 3, + "outcome": "recovered_by_app", + "seconds": 2.202544927597046, + "post_recovery_drops": [ + 0.6245949268341064 + ] + } + ], + "result": "passed", + "ended": 606.6429398 +} diff --git a/evidence/calibrated-90hz-trial.json b/evidence/calibrated-90hz-trial.json @@ -0,0 +1,19 @@ +{ + "process_exit": 0, + "resolution": [ + 4320, + 2160 + ], + "internal_resolution": [ + 6048, + 3024 + ], + "settled_health_seconds": 159.9960000514984, + "presented_fps": 89.99599987103021, + "skipped_delta": 1, + "gpu_errors": 0, + "gpu_ms": 5.97, + "display_removes": 0, + "join_timeout": false, + "visual_improvement": "awaiting user assessment" +} diff --git a/evidence/calibrated-90hz-trial.txt b/evidence/calibrated-90hz-trial.txt @@ -0,0 +1,83 @@ +3891.738422 [hmd] serial REDACTED-DEVICE-SERIAL +3891.848422 [hmd] wake commands accepted; waiting for IMU and video evidence +3891.859422 captured display 2: ok +3892.401422 [display callback] id=2 flags=8 main=true +3892.402422 mode 4320x2160@90 (ui 4320x2160): ok +3892.430422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +3892.431422 render worker main=false +frame 1 drawable 4320x2160 +3892.478422 [display callback] handled after 77.1 ms +3892.490422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +3892.490422 headset reports display not ready +3893.741422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 300 drawable 4320x2160 +frame 600 drawable 4320x2160 +3901.849422 health display=2 submitted=846 presented=839 skipped=4 fps=79.95 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=9528 lastIMU=0.0s status=2 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 +frame 1500 drawable 4320x2160 +3911.850422 health display=2 submitted=1746 presented=1739 skipped=4 fps=89.99 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=19532 lastIMU=0.0s status=2 +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +frame 2400 drawable 4320x2160 +3921.850422 health display=2 submitted=2646 presented=2639 skipped=4 fps=90.00 presentAge=0.00s GPUms=5.98 GPUerrors=0 IMU=29536 lastIMU=0.0s status=2 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 +frame 3300 drawable 4320x2160 +3931.849422 health display=2 submitted=3546 presented=3539 skipped=4 fps=90.01 presentAge=0.00s GPUms=5.98 GPUerrors=0 IMU=39540 lastIMU=0.0s status=2 +frame 3600 drawable 4320x2160 +frame 3900 drawable 4320x2160 +frame 4200 drawable 4320x2160 +3941.850422 health display=2 submitted=4446 presented=4439 skipped=4 fps=89.99 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=49544 lastIMU=0.0s status=2 +frame 4500 drawable 4320x2160 +frame 4800 drawable 4320x2160 +frame 5100 drawable 4320x2160 +3951.849422 health display=2 submitted=5346 presented=5339 skipped=4 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=59548 lastIMU=0.0s status=2 +frame 5400 drawable 4320x2160 +frame 5700 drawable 4320x2160 +frame 6000 drawable 4320x2160 +3961.849422 health display=2 submitted=6246 presented=6239 skipped=4 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=69548 lastIMU=0.0s status=2 +frame 6300 drawable 4320x2160 +frame 6600 drawable 4320x2160 +frame 6900 drawable 4320x2160 +3971.848422 health display=2 submitted=7146 presented=7139 skipped=4 fps=90.01 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=79552 lastIMU=0.0s status=2 +frame 7200 drawable 4320x2160 +frame 7500 drawable 4320x2160 +frame 7800 drawable 4320x2160 +3981.849422 health display=2 submitted=8046 presented=8038 skipped=5 fps=89.89 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=89556 lastIMU=0.0s status=2 +frame 8100 drawable 4320x2160 +frame 8400 drawable 4320x2160 +frame 8700 drawable 4320x2160 +3991.849422 health display=2 submitted=8946 presented=8938 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=99560 lastIMU=0.0s status=2 +frame 9000 drawable 4320x2160 +frame 9300 drawable 4320x2160 +frame 9600 drawable 4320x2160 +4001.847422 health display=2 submitted=9846 presented=9838 skipped=5 fps=90.02 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=109560 lastIMU=0.0s status=2 +frame 9900 drawable 4320x2160 +frame 10200 drawable 4320x2160 +frame 10500 drawable 4320x2160 +4011.847422 health display=2 submitted=10746 presented=10738 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=119564 lastIMU=0.0s status=2 +frame 10800 drawable 4320x2160 +frame 11100 drawable 4320x2160 +frame 11400 drawable 4320x2160 +4021.847422 health display=2 submitted=11646 presented=11638 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=129568 lastIMU=0.0s status=2 +frame 11700 drawable 4320x2160 +frame 12000 drawable 4320x2160 +frame 12300 drawable 4320x2160 +4031.847422 health display=2 submitted=12546 presented=12538 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=139572 lastIMU=0.0s status=2 +frame 12600 drawable 4320x2160 +frame 12900 drawable 4320x2160 +frame 13200 drawable 4320x2160 +4041.847422 health display=2 submitted=13446 presented=13438 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=149576 lastIMU=0.0s status=2 +frame 13500 drawable 4320x2160 +frame 13800 drawable 4320x2160 +frame 14100 drawable 4320x2160 +4051.847422 health display=2 submitted=14346 presented=14338 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=159580 lastIMU=0.0s status=2 +frame 14400 drawable 4320x2160 +frame 14700 drawable 4320x2160 +frame 15000 drawable 4320x2160 +4061.846422 health display=2 submitted=15246 presented=15238 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=169584 lastIMU=0.0s status=2 +frame 15300 drawable 4320x2160 +frame 15600 drawable 4320x2160 +frame 15900 drawable 4320x2160 +4071.846422 health display=2 submitted=16146 presented=16138 skipped=5 fps=90.00 presentAge=0.00s GPUms=5.97 GPUerrors=0 IMU=179588 lastIMU=0.0s status=2 diff --git a/evidence/calibrated-recovery-live.txt b/evidence/calibrated-recovery-live.txt @@ -0,0 +1,66 @@ +4104.077422 [hmd] serial REDACTED-DEVICE-SERIAL +4104.186422 [hmd] wake commands accepted; waiting for IMU and video evidence +4104.200422 captured display 2: ok +4104.736422 [display callback] id=2 flags=8 main=true +4104.738422 mode 4320x2160@90 (ui 4320x2160): ok +4104.753422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +4104.761422 render worker main=false +frame 1 drawable 4320x2160 +4104.808422 [display callback] handled after 71.3 ms +4104.821422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +4104.821422 headset reports display not ready +4105.065422 [display callback] id=2 flags=4640 main=true +4107.449422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +4107.508422 recovery helper accepted DRST; waiting for display ADD +4109.621422 [display callback] id=2 flags=4378 main=true +4109.621422 [display callback] handled after 4556.2 ms +4109.624422 headset display LOST +4109.624422 [display callback] handled after 2.9 ms +4109.624422 headset display back after 4559 ms +4109.631422 captured display 2: ok +4110.374422 [display callback] id=2 flags=8 main=true +4110.375422 mode 4320x2160@90 (ui 4320x2160): ok +4110.376422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +4110.377422 [display callback] handled after 2.4 ms +4110.397422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +4110.397422 headset reports display not ready +frame 300 drawable 4320x2160 +4114.188422 health display=2 submitted=363 presented=345 skipped=14 fps=32.87 presentAge=0.01s GPUms=5.92 GPUerrors=0 IMU=4372 lastIMU=0.0s status=2 +4114.604422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +4114.604422 headset reports display not ready +4114.697422 [display callback] id=2 flags=4640 main=true +4115.347422 [display callback] id=2 flags=4378 main=true +4115.348422 [display callback] handled after 650.4 ms +4115.349422 headset display LOST +4115.349422 [display callback] handled after 1.8 ms +4115.349422 headset display back after 651 ms +4115.357422 captured display 2: ok +4116.065422 [display callback] id=2 flags=8 main=true +4116.079422 mode 4320x2160@90 (ui 4320x2160): ok +4116.080422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +4116.080422 [display callback] handled after 15.3 ms +4117.402422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 600 drawable 4320x2160 +frame 900 drawable 4320x2160 +4124.187422 health display=2 submitted=1134 presented=1109 skipped=21 fps=76.40 presentAge=0.00s GPUms=5.93 GPUerrors=0 IMU=13124 lastIMU=0.0s status=4 +frame 1200 drawable 4320x2160 +frame 1500 drawable 4320x2160 +frame 1800 drawable 4320x2160 +4134.187422 health display=2 submitted=2034 presented=2009 skipped=22 fps=90.00 presentAge=0.00s GPUms=5.94 GPUerrors=0 IMU=23128 lastIMU=0.0s status=4 +frame 2100 drawable 4320x2160 +frame 2400 drawable 4320x2160 +frame 2700 drawable 4320x2160 +4144.186422 health display=2 submitted=2934 presented=2909 skipped=22 fps=90.00 presentAge=0.00s GPUms=5.95 GPUerrors=0 IMU=33132 lastIMU=0.0s status=4 +frame 3000 drawable 4320x2160 +frame 3300 drawable 4320x2160 +frame 3600 drawable 4320x2160 +4154.186422 health display=2 submitted=3834 presented=3808 skipped=22 fps=89.90 presentAge=0.00s GPUms=5.95 GPUerrors=0 IMU=43136 lastIMU=0.0s status=4 +frame 3900 drawable 4320x2160 +frame 4200 drawable 4320x2160 +frame 4500 drawable 4320x2160 +4164.188422 health display=2 submitted=4734 presented=4708 skipped=22 fps=89.99 presentAge=0.00s GPUms=5.95 GPUerrors=0 IMU=53140 lastIMU=0.0s status=4 +frame 4800 drawable 4320x2160 +frame 5100 drawable 4320x2160 +frame 5400 drawable 4320x2160 +4174.187422 health display=2 submitted=5634 presented=5608 skipped=22 fps=90.01 presentAge=0.00s GPUms=5.95 GPUerrors=0 IMU=63144 lastIMU=0.0s status=4 diff --git a/evidence/calibrated-recovery-trial.json b/evidence/calibrated-recovery-trial.json @@ -0,0 +1,85 @@ +{ + "started": 4104.8182678, + "app_recovery": true, + "leave_off": true, + "commands": [ + { + "started": 4104.871066, + "argv": [ + "hidcmd", + "off" + ], + "ended": 4104.994136, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + } + ], + "display_events": [ + { + "received": 4104.8708851, + "line": "4104.870422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 4105.057977, + "line": "4105.057422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 4105.058000, + "line": "4105.057422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 4109.6343849, + "line": "4109.633422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 4109.634406, + "line": "4109.633422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 4110.104664, + "line": "4110.103422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 4110.1047008, + "line": "4110.103422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 4114.718140, + "line": "4114.716422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 4114.7181602, + "line": "4114.716422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 4115.3725262, + "line": "4115.372422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 4115.372591, + "line": "4115.372422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 4115.821454, + "line": "4115.821422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 4115.821494, + "line": "4115.821422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "recovered_by_app", + "seconds": 2.5662858486175537, + "outage_seconds": 4.5764079093933105, + "post_recovery_drops": [ + 0.6543862819671631 + ] + } + ], + "result": "passed", + "ended": 4119.646784 +} diff --git a/evidence/calibration-offline-checks.txt b/evidence/calibration-offline-checks.txt @@ -0,0 +1,25 @@ +PASS key: 1024 bytes, upstream prefix +PASS request layout +PASS chunk reply parse +PASS end reply parse +PASS metadata size LE +PASS config block XOR/header round trip +PASS parse displays + gyro +PASS IPD from Rt translations +PASS gyro bias constant terms +PASS view 0: identity bounds = +-1080/1000 +PASS view 0 identity (0.0, 0.0) +PASS view 0 identity (0.5, 0.5) +PASS view 0 identity (0.25, 0.8) +PASS view 0 identity (1.0, 1.0) +PASS view 1: identity bounds = +-1080/1000 +PASS view 1 identity (0.0, 0.0) +PASS view 1 identity (0.5, 0.5) +PASS view 1 identity (0.25, 0.8) +PASS view 1 identity (1.0, 1.0) +PASS k1>0: centre maps to centre +PASS k1>0: left/right symmetric +PASS k1>0: matches hand calculation +PASS chromatic: red samples farther out than green, blue nearer +PASS bounds -> asymmetric FOV angles +all calibration self-tests passed diff --git a/evidence/clean-shutdown-1.txt b/evidence/clean-shutdown-1.txt @@ -0,0 +1,17 @@ +2141.286422 [hmd] serial REDACTED-DEVICE-SERIAL +2141.396422 [hmd] wake commands accepted; waiting for IMU and video evidence +2141.413422 captured display 2: ok +2141.934422 [display callback] id=2 flags=8 main=true +2141.946422 mode 4320x2160@90 (ui 4320x2160): ok +2141.964422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2141.973422 render worker main=false +frame 1 drawable 4320x2160 +2142.004422 [display callback] handled after 70.1 ms +2142.016422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +2142.016422 headset reports display not ready +2143.272422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 300 drawable 4320x2160 +frame 600 drawable 4320x2160 +2151.398422 health display=2 submitted=847 presented=839 skipped=4 fps=79.95 presentAge=0.01s GPUms=1.68 GPUerrors=0 IMU=9556 lastIMU=0.0s status=2 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 diff --git a/evidence/clean-shutdown-2.txt b/evidence/clean-shutdown-2.txt @@ -0,0 +1,15 @@ +2157.765422 [hmd] serial REDACTED-DEVICE-SERIAL +2157.874422 [hmd] wake commands accepted; waiting for IMU and video evidence +2157.892422 captured display 2: ok +2158.442422 [display callback] id=2 flags=8 main=true +2158.444422 mode 4320x2160@90 (ui 4320x2160): ok +2158.464422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2158.473422 render worker main=false +frame 1 drawable 4320x2160 +2158.504422 [display callback] handled after 61.4 ms +2159.772422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 300 drawable 4320x2160 +frame 600 drawable 4320x2160 +2167.876422 health display=2 submitted=845 presented=837 skipped=5 fps=79.77 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=9524 lastIMU=0.0s status=1 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 diff --git a/evidence/clean-shutdown-trials.json b/evidence/clean-shutdown-trials.json @@ -0,0 +1,22 @@ +[ + { + "trial": 1, + "started": 2140.810004, + "ended": 2156.991325, + "exit": 0, + "background_render": true, + "live_gpu": true, + "worker_join_timeout": false, + "log": "evidence/clean-shutdown-1.txt" + }, + { + "trial": 2, + "started": 2156.991812, + "ended": 2173.514829, + "exit": 0, + "background_render": true, + "live_gpu": true, + "worker_join_timeout": false, + "log": "evidence/clean-shutdown-2.txt" + } +] diff --git a/evidence/factory-calibration-read-verified.txt b/evidence/factory-calibration-read-verified.txt @@ -0,0 +1,4 @@ +4097.709422 read factory configuration: 10737 bytes +saved factory configuration to /tmp/vr-factory-verified.bin and /tmp/vr-factory-verified.json +Factory optical model parsed successfully; unit-specific geometry omitted. +Factory optical model parsed successfully; unit-specific geometry omitted. diff --git a/evidence/factory-calibration-read.txt b/evidence/factory-calibration-read.txt @@ -0,0 +1,4 @@ +3624.432422 read factory configuration: 10737 bytes +saved factory configuration to /Users/USER/Library/Application Support/VRWorkstation/factory.bin and /Users/USER/Library/Application Support/VRWorkstation/factory.json +Factory optical model parsed successfully; unit-specific geometry omitted. +Factory optical model parsed successfully; unit-specific geometry omitted. diff --git a/evidence/final-app-recovery-trials.json b/evidence/final-app-recovery-trials.json @@ -0,0 +1,153 @@ +{ + "started": 2261.4293602, + "app_recovery": true, + "leave_off": true, + "commands": [ + { + "started": 2261.473825, + "argv": [ + "hidcmd", + "off" + ], + "ended": 2261.5942671, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 2286.1512919, + "argv": [ + "hidcmd", + "off" + ], + "ended": 2286.284213, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + } + ], + "display_events": [ + { + "received": 2261.4736362, + "line": "2261.473422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2261.6660302, + "line": "2261.666422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2261.666055, + "line": "2261.666422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2276.144535, + "line": "2276.144422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2276.1445508, + "line": "2276.144422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2276.662928, + "line": "2276.662422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2276.662950, + "line": "2276.662422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2281.189590, + "line": "2281.189422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2281.1896079, + "line": "2281.189422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2281.860051, + "line": "2281.860422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2281.8600671, + "line": "2281.860422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2282.245164, + "line": "2282.245422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2282.245182, + "line": "2282.245422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2286.381590, + "line": "2286.381422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2286.381641, + "line": "2286.381422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2300.825486, + "line": "2300.825422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2300.8255029, + "line": "2300.825422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2301.260823, + "line": "2301.260422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2301.260840, + "line": "2301.260422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2305.908484, + "line": "2305.908422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2305.908523, + "line": "2305.908422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2306.567575, + "line": "2306.565422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2306.567596, + "line": "2306.565422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2307.053112, + "line": "2307.053422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2307.053128, + "line": "2307.053422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "recovered_by_app", + "seconds": 12.468422889709473, + "outage_seconds": 14.47850489616394, + "post_recovery_drops": [ + 0.6704609394073486 + ] + }, + { + "index": 2, + "outcome": "recovered_by_app", + "seconds": 12.438634872436523, + "outage_seconds": 14.443896055221558, + "post_recovery_drops": [ + 0.6590909957885742 + ] + } + ], + "result": "passed", + "ended": 2310.840199 +} diff --git a/evidence/final-metal-worker-soak.txt b/evidence/final-metal-worker-soak.txt @@ -0,0 +1,326 @@ +2260.703422 [hmd] serial REDACTED-DEVICE-SERIAL +2260.813422 [hmd] wake commands accepted; waiting for IMU and video evidence +2260.825422 captured display 2: ok +2261.373422 [display callback] id=2 flags=8 main=true +2261.379422 mode 4320x2160@90 (ui 4320x2160): ok +2261.399422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2261.401422 render worker main=false +frame 1 drawable 4320x2160 +2261.439422 [display callback] handled after 65.6 ms +2261.468422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +2261.468422 headset reports display not ready +2261.674422 [display callback] id=2 flags=4640 main=true +frame 300 drawable 4320x2160 +frame 600 drawable 4320x2160 +2271.674422 [display callback] handled after 10000.1 ms +2271.675422 headset display LOST +2271.688422 health display=absent submitted=612 presented=12 skipped=600 fps=1.06 presentAge=10.06s GPUms=1.17 GPUerrors=0 IMU=548 lastIMU=0.0s status=1 +2273.677422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +2273.991422 recovery helper accepted DRST; waiting for display ADD +2275.184422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2275.184422 headset reports display not ready +2276.112422 [display callback] id=2 flags=4378 main=true +2276.113422 [display callback] handled after 0.3 ms +2276.113422 headset display back after 4438 ms +2276.116422 captured display 2: ok +2276.912422 [display callback] id=2 flags=8 main=true +2276.913422 mode 4320x2160@90 (ui 4320x2160): ok +2276.914422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2276.914422 [display callback] handled after 2.4 ms +frame 900 drawable 4320x2160 +2280.815422 health display=2 submitted=963 presented=357 skipped=602 fps=37.80 presentAge=0.01s GPUms=1.21 GPUerrors=0 IMU=8936 lastIMU=0.0s status=2 +2281.087422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2281.087422 headset reports display not ready +2281.185422 [display callback] id=2 flags=4640 main=true +2281.817422 [display callback] id=2 flags=4378 main=true +2281.829422 [display callback] handled after 643.4 ms +2281.830422 headset display LOST +2281.830422 [display callback] handled after 13.3 ms +2281.830422 headset display back after 2 ms +2281.835422 captured display 2: ok +2282.518422 [display callback] id=2 flags=8 main=true +2282.519422 mode 4320x2160@90 (ui 4320x2160): ok +2282.520422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2282.520422 [display callback] handled after 2.2 ms +2283.839422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 1200 drawable 4320x2160 +2286.355422 [display callback] id=2 flags=4640 main=true +frame 1500 drawable 4320x2160 +frame 1800 drawable 4320x2160 +2296.351422 [display callback] handled after 9995.6 ms +2296.352422 headset display LOST +2296.353422 health display=absent submitted=1928 presented=722 skipped=1206 fps=23.49 presentAge=10.05s GPUms=1.24 GPUerrors=0 IMU=13412 lastIMU=0.0s status=4 +2298.354422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x04, bytes: 64 +2298.654422 recovery helper failed (exit 1) +2299.895422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2299.896422 headset reports display not ready +2300.792422 [display callback] id=2 flags=4378 main=true +2300.792422 [display callback] handled after 0.2 ms +2300.792422 headset display back after 4441 ms +2300.795422 captured display 2: ok +2301.518422 [display callback] id=2 flags=8 main=true +2301.519422 mode 4320x2160@90 (ui 4320x2160): ok +2301.524422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2301.524422 [display callback] handled after 6.8 ms +2301.525422 health display=2 submitted=1928 presented=722 skipped=1206 fps=0.00 presentAge=15.23s GPUms=1.24 GPUerrors=0 IMU=17908 lastIMU=0.0s status=5 +frame 2100 drawable 4320x2160 +2305.797422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2305.797422 headset reports display not ready +2305.892422 [display callback] id=2 flags=4640 main=true +2306.555422 [display callback] id=2 flags=4378 main=true +2306.565422 [display callback] handled after 673.3 ms +2306.567422 headset display LOST +2306.567422 [display callback] handled after 12.4 ms +2306.567422 headset display back after 1 ms +2306.571422 captured display 2: ok +2307.320422 [display callback] id=2 flags=8 main=true +2307.321422 mode 4320x2160@90 (ui 4320x2160): ok +2307.322422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2307.322422 [display callback] handled after 2.1 ms +frame 2400 drawable 4320x2160 +2308.640422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +2310.814422 health display=2 submitted=2632 presented=1409 skipped=1219 fps=73.96 presentAge=0.01s GPUms=1.29 GPUerrors=0 IMU=25908 lastIMU=0.0s status=7 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 +frame 3300 drawable 4320x2160 +2320.814422 health display=2 submitted=3533 presented=2309 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.36 GPUerrors=0 IMU=35912 lastIMU=0.0s status=7 +frame 3600 drawable 4320x2160 +frame 3900 drawable 4320x2160 +frame 4200 drawable 4320x2160 +2330.814422 health display=2 submitted=4433 presented=3209 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.41 GPUerrors=0 IMU=45916 lastIMU=0.0s status=7 +frame 4500 drawable 4320x2160 +frame 4800 drawable 4320x2160 +frame 5100 drawable 4320x2160 +2340.814422 health display=2 submitted=5333 presented=4108 skipped=1220 fps=89.90 presentAge=0.01s GPUms=1.46 GPUerrors=0 IMU=55920 lastIMU=0.0s status=7 +frame 5400 drawable 4320x2160 +frame 5700 drawable 4320x2160 +frame 6000 drawable 4320x2160 +2350.814422 health display=2 submitted=6233 presented=5008 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.49 GPUerrors=0 IMU=65924 lastIMU=0.0s status=7 +frame 6300 drawable 4320x2160 +frame 6600 drawable 4320x2160 +frame 6900 drawable 4320x2160 +2360.814422 health display=2 submitted=7132 presented=5908 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=75928 lastIMU=0.0s status=7 +frame 7200 drawable 4320x2160 +frame 7500 drawable 4320x2160 +frame 7800 drawable 4320x2160 +2370.814422 health display=2 submitted=8032 presented=6808 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.53 GPUerrors=0 IMU=85932 lastIMU=0.0s status=7 +frame 8100 drawable 4320x2160 +frame 8400 drawable 4320x2160 +frame 8700 drawable 4320x2160 +2380.813422 health display=2 submitted=8932 presented=7708 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=95936 lastIMU=0.0s status=7 +frame 9000 drawable 4320x2160 +frame 9300 drawable 4320x2160 +frame 9600 drawable 4320x2160 +2390.813422 health display=2 submitted=9832 presented=8608 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=105940 lastIMU=0.0s status=7 +frame 9900 drawable 4320x2160 +frame 10200 drawable 4320x2160 +frame 10500 drawable 4320x2160 +2400.813422 health display=2 submitted=10732 presented=9508 skipped=1220 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=115944 lastIMU=0.0s status=7 +frame 10800 drawable 4320x2160 +2401.764422 [display callback] id=2 flags=4640 main=true +frame 11100 drawable 4320x2160 +2411.762422 [display callback] handled after 9997.3 ms +2411.763422 headset display LOST +2411.764422 health display=absent submitted=11397 presented=9590 skipped=1807 fps=7.49 presentAge=10.06s GPUms=1.54 GPUerrors=0 IMU=117040 lastIMU=0.0s status=7 +2413.765422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +2414.084422 recovery helper accepted DRST; waiting for display ADD +2415.272422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2415.272422 headset reports display not ready +2416.243422 [display callback] id=2 flags=4378 main=true +2416.244422 [display callback] handled after 0.3 ms +2416.244422 headset display back after 4482 ms +2416.247422 captured display 2: ok +2416.931422 [display callback] id=2 flags=8 main=true +2416.961422 mode 4320x2160@90 (ui 4320x2160): ok +2416.962422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2416.963422 [display callback] handled after 31.4 ms +frame 11400 drawable 4320x2160 +frame 11700 drawable 4320x2160 +2420.811422 health display=2 submitted=11742 presented=9928 skipped=1810 fps=37.36 presentAge=0.00s GPUms=1.54 GPUerrors=0 IMU=125432 lastIMU=0.0s status=8 +2421.174422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2421.174422 headset reports display not ready +2421.251422 [display callback] id=2 flags=4640 main=true +2421.902422 [display callback] id=2 flags=4378 main=true +2421.910422 [display callback] handled after 658.5 ms +2421.913422 headset display LOST +2421.913422 [display callback] handled after 10.5 ms +2421.913422 headset display back after 3 ms +2421.918422 captured display 2: ok +2422.554422 [display callback] id=2 flags=8 main=true +2422.555422 mode 4320x2160@90 (ui 4320x2160): ok +2422.556422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2422.556422 [display callback] handled after 2.1 ms +2423.878422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 12000 drawable 4320x2160 +frame 12300 drawable 4320x2160 +2430.812422 health display=2 submitted=12523 presented=10700 skipped=1820 fps=77.19 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=134276 lastIMU=0.0s status=10 +frame 12600 drawable 4320x2160 +frame 12900 drawable 4320x2160 +frame 13200 drawable 4320x2160 +2440.812422 health display=2 submitted=13423 presented=11600 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=144280 lastIMU=0.0s status=10 +frame 13500 drawable 4320x2160 +frame 13800 drawable 4320x2160 +frame 14100 drawable 4320x2160 +2450.812422 health display=2 submitted=14323 presented=12500 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=154284 lastIMU=0.0s status=10 +frame 14400 drawable 4320x2160 +frame 14700 drawable 4320x2160 +frame 15000 drawable 4320x2160 +2460.811422 health display=2 submitted=15223 presented=13400 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=164288 lastIMU=0.0s status=10 +frame 15300 drawable 4320x2160 +frame 15600 drawable 4320x2160 +frame 15900 drawable 4320x2160 +2470.811422 health display=2 submitted=16123 presented=14300 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=174292 lastIMU=0.0s status=10 +frame 16200 drawable 4320x2160 +frame 16500 drawable 4320x2160 +frame 16800 drawable 4320x2160 +2480.811422 health display=2 submitted=17023 presented=15200 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=184296 lastIMU=0.0s status=10 +frame 17100 drawable 4320x2160 +frame 17400 drawable 4320x2160 +frame 17700 drawable 4320x2160 +2490.811422 health display=2 submitted=17923 presented=16100 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=194300 lastIMU=0.0s status=10 +frame 18000 drawable 4320x2160 +frame 18300 drawable 4320x2160 +frame 18600 drawable 4320x2160 +2500.811422 health display=2 submitted=18823 presented=17000 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=204304 lastIMU=0.0s status=10 +frame 18900 drawable 4320x2160 +frame 19200 drawable 4320x2160 +frame 19500 drawable 4320x2160 +2510.811422 health display=2 submitted=19723 presented=17900 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=214312 lastIMU=0.0s status=10 +frame 19800 drawable 4320x2160 +frame 20100 drawable 4320x2160 +frame 20400 drawable 4320x2160 +2520.811422 health display=2 submitted=20623 presented=18800 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=224316 lastIMU=0.0s status=10 +frame 20700 drawable 4320x2160 +frame 21000 drawable 4320x2160 +frame 21300 drawable 4320x2160 +2530.811422 health display=2 submitted=21523 presented=19700 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.58 GPUerrors=0 IMU=234320 lastIMU=0.0s status=10 +frame 21600 drawable 4320x2160 +frame 21900 drawable 4320x2160 +frame 22200 drawable 4320x2160 +2540.811422 health display=2 submitted=22423 presented=20600 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.58 GPUerrors=0 IMU=244324 lastIMU=0.0s status=10 +frame 22500 drawable 4320x2160 +frame 22800 drawable 4320x2160 +frame 23100 drawable 4320x2160 +2550.811422 health display=2 submitted=23323 presented=21500 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.58 GPUerrors=0 IMU=254328 lastIMU=0.0s status=10 +frame 23400 drawable 4320x2160 +frame 23700 drawable 4320x2160 +frame 24000 drawable 4320x2160 +2560.815422 health display=2 submitted=24223 presented=22400 skipped=1820 fps=90.01 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=264332 lastIMU=0.0s status=10 +frame 24300 drawable 4320x2160 +frame 24600 drawable 4320x2160 +frame 24900 drawable 4320x2160 +2570.818422 health display=2 submitted=25123 presented=23300 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=274336 lastIMU=0.0s status=10 +frame 25200 drawable 4320x2160 +frame 25500 drawable 4320x2160 +frame 25800 drawable 4320x2160 +2580.820422 health display=2 submitted=26023 presented=24200 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=284340 lastIMU=0.0s status=10 +frame 26100 drawable 4320x2160 +frame 26400 drawable 4320x2160 +frame 26700 drawable 4320x2160 +2590.821422 health display=2 submitted=26923 presented=25100 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=294344 lastIMU=0.0s status=10 +frame 27000 drawable 4320x2160 +frame 27300 drawable 4320x2160 +frame 27600 drawable 4320x2160 +2600.821422 health display=2 submitted=27823 presented=26000 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=304348 lastIMU=0.0s status=10 +frame 27900 drawable 4320x2160 +frame 28200 drawable 4320x2160 +frame 28500 drawable 4320x2160 +2610.821422 health display=2 submitted=28723 presented=26900 skipped=1820 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=314352 lastIMU=0.0s status=10 +frame 28800 drawable 4320x2160 +frame 29100 drawable 4320x2160 +frame 29400 drawable 4320x2160 +2620.822422 health display=2 submitted=29623 presented=27798 skipped=1821 fps=89.80 presentAge=0.01s GPUms=1.53 GPUerrors=0 IMU=324356 lastIMU=0.0s status=10 +frame 29700 drawable 4320x2160 +frame 30000 drawable 4320x2160 +frame 30300 drawable 4320x2160 +2630.822422 health display=2 submitted=30523 presented=28698 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.53 GPUerrors=0 IMU=334360 lastIMU=0.0s status=10 +frame 30600 drawable 4320x2160 +frame 30900 drawable 4320x2160 +frame 31200 drawable 4320x2160 +2640.822422 health display=2 submitted=31423 presented=29598 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.53 GPUerrors=0 IMU=344364 lastIMU=0.0s status=10 +frame 31500 drawable 4320x2160 +frame 31800 drawable 4320x2160 +frame 32100 drawable 4320x2160 +2650.822422 health display=2 submitted=32323 presented=30498 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.52 GPUerrors=0 IMU=354368 lastIMU=0.0s status=10 +frame 32400 drawable 4320x2160 +frame 32700 drawable 4320x2160 +frame 33000 drawable 4320x2160 +2660.822422 health display=2 submitted=33223 presented=31398 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=364372 lastIMU=0.0s status=10 +frame 33300 drawable 4320x2160 +frame 33600 drawable 4320x2160 +frame 33900 drawable 4320x2160 +2670.822422 health display=2 submitted=34123 presented=32298 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=374376 lastIMU=0.0s status=10 +frame 34200 drawable 4320x2160 +frame 34500 drawable 4320x2160 +frame 34800 drawable 4320x2160 +2680.822422 health display=2 submitted=35023 presented=33198 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=384380 lastIMU=0.0s status=10 +frame 35100 drawable 4320x2160 +frame 35400 drawable 4320x2160 +frame 35700 drawable 4320x2160 +2690.821422 health display=2 submitted=35923 presented=34098 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=394384 lastIMU=0.0s status=10 +frame 36000 drawable 4320x2160 +frame 36300 drawable 4320x2160 +frame 36600 drawable 4320x2160 +2700.821422 health display=2 submitted=36823 presented=34998 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.49 GPUerrors=0 IMU=404388 lastIMU=0.0s status=10 +frame 36900 drawable 4320x2160 +frame 37200 drawable 4320x2160 +frame 37500 drawable 4320x2160 +2710.821422 health display=2 submitted=37723 presented=35898 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=414392 lastIMU=0.0s status=10 +frame 37800 drawable 4320x2160 +frame 38100 drawable 4320x2160 +frame 38400 drawable 4320x2160 +2720.821422 health display=2 submitted=38623 presented=36798 skipped=1821 fps=90.00 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=424396 lastIMU=0.0s status=10 +frame 38700 drawable 4320x2160 +frame 39000 drawable 4320x2160 +frame 39300 drawable 4320x2160 +2730.821422 health display=2 submitted=39523 presented=37696 skipped=1823 fps=89.80 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=434396 lastIMU=0.0s status=10 +frame 39600 drawable 4320x2160 +frame 39900 drawable 4320x2160 +frame 40200 drawable 4320x2160 +2740.821422 health display=2 submitted=40423 presented=38595 skipped=1825 fps=89.90 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=444400 lastIMU=0.0s status=10 +frame 40500 drawable 4320x2160 +frame 40800 drawable 4320x2160 +frame 41100 drawable 4320x2160 +2750.821422 health display=2 submitted=41323 presented=39495 skipped=1825 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=454404 lastIMU=0.0s status=10 +frame 41400 drawable 4320x2160 +frame 41700 drawable 4320x2160 +frame 42000 drawable 4320x2160 +2760.819422 health display=2 submitted=42223 presented=40394 skipped=1825 fps=89.91 presentAge=0.00s GPUms=1.51 GPUerrors=0 IMU=464408 lastIMU=0.0s status=10 +frame 42300 drawable 4320x2160 +frame 42600 drawable 4320x2160 +frame 42900 drawable 4320x2160 +2770.821422 health display=2 submitted=43123 presented=41294 skipped=1826 fps=89.99 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=474412 lastIMU=0.0s status=10 +frame 43200 drawable 4320x2160 +frame 43500 drawable 4320x2160 +frame 43800 drawable 4320x2160 +2780.821422 health display=2 submitted=44023 presented=42193 skipped=1826 fps=89.90 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=484416 lastIMU=0.0s status=10 +frame 44100 drawable 4320x2160 +frame 44400 drawable 4320x2160 +frame 44700 drawable 4320x2160 +2790.821422 health display=2 submitted=44923 presented=43093 skipped=1826 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=494420 lastIMU=0.0s status=10 +frame 45000 drawable 4320x2160 +frame 45300 drawable 4320x2160 +frame 45600 drawable 4320x2160 +2800.821422 health display=2 submitted=45823 presented=43993 skipped=1826 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=504424 lastIMU=0.0s status=10 +frame 45900 drawable 4320x2160 +frame 46200 drawable 4320x2160 +frame 46500 drawable 4320x2160 +2810.820422 health display=2 submitted=46723 presented=44893 skipped=1826 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=514428 lastIMU=0.0s status=10 +frame 46800 drawable 4320x2160 +frame 47100 drawable 4320x2160 +frame 47400 drawable 4320x2160 +2820.820422 health display=2 submitted=47623 presented=45793 skipped=1826 fps=90.00 presentAge=0.01s GPUms=1.51 GPUerrors=0 IMU=524432 lastIMU=0.0s status=10 +frame 47700 drawable 4320x2160 +frame 48000 drawable 4320x2160 +frame 48300 drawable 4320x2160 +2830.820422 health display=2 submitted=48523 presented=46693 skipped=1826 fps=90.00 presentAge=0.00s GPUms=1.51 GPUerrors=0 IMU=534436 lastIMU=0.0s status=10 +frame 48600 drawable 4320x2160 +frame 48900 drawable 4320x2160 +frame 49200 drawable 4320x2160 +2840.818422 health display=2 submitted=49423 presented=47593 skipped=1826 fps=90.02 presentAge=0.00s GPUms=1.51 GPUerrors=0 IMU=544440 lastIMU=0.0s status=10 +frame 49500 drawable 4320x2160 +frame 49800 drawable 4320x2160 +frame 50100 drawable 4320x2160 diff --git a/evidence/frameclock-first-soak.txt b/evidence/frameclock-first-soak.txt @@ -0,0 +1,157 @@ +664.608422 [hmd] serial REDACTED-DEVICE-SERIAL +664.717422 [hmd] wake commands accepted; waiting for IMU and video evidence +664.728422 captured display 2: ok +665.258422 mode 4320x2160@90 (ui 4320x2160): ok +665.279422 headset display link: maximum 90 fps +665.279422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +665.335422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +665.335422 headset reports panel off +frame 1 drawable (4320.0, 2160.0) +666.586422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 300 drawable (4320.0, 2160.0) +frame 600 drawable (4320.0, 2160.0) +674.737422 health display=2 submitted=842 presented=828 fps=78.75 IMU=9568 lastIMU=0.0s status=2 +frame 900 drawable (4320.0, 2160.0) +frame 1200 drawable (4320.0, 2160.0) +frame 1500 drawable (4320.0, 2160.0) +684.737422 health display=2 submitted=1742 presented=839 fps=1.10 IMU=19572 lastIMU=0.0s status=2 +frame 1800 drawable (4320.0, 2160.0) +frame 2100 drawable (4320.0, 2160.0) +frame 2400 drawable (4320.0, 2160.0) +694.737422 health display=2 submitted=2640 presented=1739 fps=90.00 IMU=29580 lastIMU=0.0s status=2 +frame 2700 drawable (4320.0, 2160.0) +frame 3000 drawable (4320.0, 2160.0) +frame 3300 drawable (4320.0, 2160.0) +704.737422 health display=2 submitted=3540 presented=2637 fps=89.80 IMU=39584 lastIMU=0.0s status=2 +frame 3600 drawable (4320.0, 2160.0) +frame 3900 drawable (4320.0, 2160.0) +frame 4200 drawable (4320.0, 2160.0) +714.737422 health display=2 submitted=4440 presented=3537 fps=90.00 IMU=49592 lastIMU=0.0s status=2 +frame 4500 drawable (4320.0, 2160.0) +frame 4800 drawable (4320.0, 2160.0) +frame 5100 drawable (4320.0, 2160.0) +724.736422 health display=2 submitted=5340 presented=4437 fps=90.00 IMU=59596 lastIMU=0.0s status=2 +frame 5400 drawable (4320.0, 2160.0) +frame 5700 drawable (4320.0, 2160.0) +frame 6000 drawable (4320.0, 2160.0) +734.736422 health display=2 submitted=6240 presented=5337 fps=90.00 IMU=69604 lastIMU=0.0s status=2 +frame 6300 drawable (4320.0, 2160.0) +frame 6600 drawable (4320.0, 2160.0) +frame 6900 drawable (4320.0, 2160.0) +744.736422 health display=2 submitted=7140 presented=6237 fps=90.00 IMU=79608 lastIMU=0.0s status=2 +frame 7200 drawable (4320.0, 2160.0) +frame 7500 drawable (4320.0, 2160.0) +frame 7800 drawable (4320.0, 2160.0) +754.736422 health display=2 submitted=8040 presented=7136 fps=89.90 IMU=89612 lastIMU=0.0s status=2 +frame 8100 drawable (4320.0, 2160.0) +frame 8400 drawable (4320.0, 2160.0) +frame 8700 drawable (4320.0, 2160.0) +764.736422 health display=2 submitted=8940 presented=8036 fps=90.00 IMU=99616 lastIMU=0.0s status=2 +frame 9000 drawable (4320.0, 2160.0) +frame 9300 drawable (4320.0, 2160.0) +frame 9600 drawable (4320.0, 2160.0) +774.736422 health display=2 submitted=9840 presented=8936 fps=90.00 IMU=109624 lastIMU=0.0s status=2 +frame 9900 drawable (4320.0, 2160.0) +frame 10200 drawable (4320.0, 2160.0) +frame 10500 drawable (4320.0, 2160.0) +784.736422 health display=2 submitted=10740 presented=9836 fps=90.00 IMU=119628 lastIMU=0.0s status=2 +frame 10800 drawable (4320.0, 2160.0) +frame 11100 drawable (4320.0, 2160.0) +frame 11400 drawable (4320.0, 2160.0) +794.736422 health display=2 submitted=11640 presented=10736 fps=90.00 IMU=129632 lastIMU=0.0s status=2 +frame 11700 drawable (4320.0, 2160.0) +frame 12000 drawable (4320.0, 2160.0) +frame 12300 drawable (4320.0, 2160.0) +804.736422 health display=2 submitted=12540 presented=11636 fps=90.00 IMU=139636 lastIMU=0.0s status=2 +frame 12600 drawable (4320.0, 2160.0) +frame 12900 drawable (4320.0, 2160.0) +frame 13200 drawable (4320.0, 2160.0) +814.736422 health display=2 submitted=13440 presented=12536 fps=90.00 IMU=149644 lastIMU=0.0s status=2 +frame 13500 drawable (4320.0, 2160.0) +frame 13800 drawable (4320.0, 2160.0) +frame 14100 drawable (4320.0, 2160.0) +824.736422 health display=2 submitted=14340 presented=13436 fps=90.00 IMU=159648 lastIMU=0.0s status=2 +frame 14400 drawable (4320.0, 2160.0) +frame 14700 drawable (4320.0, 2160.0) +frame 15000 drawable (4320.0, 2160.0) +834.736422 health display=2 submitted=15240 presented=14336 fps=90.00 IMU=169652 lastIMU=0.0s status=2 +frame 15300 drawable (4320.0, 2160.0) +frame 15600 drawable (4320.0, 2160.0) +frame 15900 drawable (4320.0, 2160.0) +844.736422 health display=2 submitted=16140 presented=15236 fps=90.00 IMU=179656 lastIMU=0.0s status=2 +frame 16200 drawable (4320.0, 2160.0) +frame 16500 drawable (4320.0, 2160.0) +frame 16800 drawable (4320.0, 2160.0) +854.736422 health display=2 submitted=17037 presented=16324 fps=108.79 IMU=189664 lastIMU=0.0s status=2 +frame 17100 drawable (4320.0, 2160.0) +frame 17400 drawable (4320.0, 2160.0) +frame 17700 drawable (4320.0, 2160.0) +864.736422 health display=2 submitted=17937 presented=17033 fps=70.90 IMU=199668 lastIMU=0.0s status=2 +frame 18000 drawable (4320.0, 2160.0) +frame 18300 drawable (4320.0, 2160.0) +frame 18600 drawable (4320.0, 2160.0) +874.736422 health display=2 submitted=18837 presented=17933 fps=90.00 IMU=209676 lastIMU=0.0s status=2 +frame 18900 drawable (4320.0, 2160.0) +frame 19200 drawable (4320.0, 2160.0) +frame 19500 drawable (4320.0, 2160.0) +884.736422 health display=2 submitted=19737 presented=18833 fps=90.00 IMU=219680 lastIMU=0.0s status=2 +frame 19800 drawable (4320.0, 2160.0) +frame 20100 drawable (4320.0, 2160.0) +frame 20400 drawable (4320.0, 2160.0) +894.736422 health display=2 submitted=20637 presented=19733 fps=90.00 IMU=229684 lastIMU=0.0s status=2 +frame 20700 drawable (4320.0, 2160.0) +frame 21000 drawable (4320.0, 2160.0) +frame 21300 drawable (4320.0, 2160.0) +904.735422 health display=2 submitted=21537 presented=20633 fps=90.00 IMU=239688 lastIMU=0.0s status=2 +frame 21600 drawable (4320.0, 2160.0) +frame 21900 drawable (4320.0, 2160.0) +frame 22200 drawable (4320.0, 2160.0) +914.735422 health display=2 submitted=22437 presented=21533 fps=90.00 IMU=249692 lastIMU=0.0s status=2 +frame 22500 drawable (4320.0, 2160.0) +frame 22800 drawable (4320.0, 2160.0) +frame 23100 drawable (4320.0, 2160.0) +924.735422 health display=2 submitted=23337 presented=22433 fps=90.00 IMU=259696 lastIMU=0.0s status=2 +frame 23400 drawable (4320.0, 2160.0) +frame 23700 drawable (4320.0, 2160.0) +frame 24000 drawable (4320.0, 2160.0) +934.735422 health display=2 submitted=24237 presented=23333 fps=90.00 IMU=269704 lastIMU=0.0s status=2 +frame 24300 drawable (4320.0, 2160.0) +frame 24600 drawable (4320.0, 2160.0) +frame 24900 drawable (4320.0, 2160.0) +944.735422 health display=2 submitted=25137 presented=24233 fps=90.00 IMU=279708 lastIMU=0.0s status=2 +frame 25200 drawable (4320.0, 2160.0) +frame 25500 drawable (4320.0, 2160.0) +frame 25800 drawable (4320.0, 2160.0) +954.735422 health display=2 submitted=26037 presented=25133 fps=90.00 IMU=289712 lastIMU=0.0s status=2 +frame 26100 drawable (4320.0, 2160.0) +frame 26400 drawable (4320.0, 2160.0) +frame 26700 drawable (4320.0, 2160.0) +964.735422 health display=2 submitted=26937 presented=26881 fps=174.80 IMU=299716 lastIMU=0.0s status=2 +frame 27000 drawable (4320.0, 2160.0) +frame 27300 drawable (4320.0, 2160.0) +frame 27600 drawable (4320.0, 2160.0) +974.735422 health display=2 submitted=27837 presented=26933 fps=5.20 IMU=309720 lastIMU=0.0s status=2 +frame 27900 drawable (4320.0, 2160.0) +frame 28200 drawable (4320.0, 2160.0) +frame 28500 drawable (4320.0, 2160.0) +984.735422 health display=2 submitted=28737 presented=27833 fps=90.00 IMU=319728 lastIMU=0.0s status=2 +frame 28800 drawable (4320.0, 2160.0) +frame 29100 drawable (4320.0, 2160.0) +frame 29400 drawable (4320.0, 2160.0) +994.735422 health display=2 submitted=29637 presented=28733 fps=90.00 IMU=329732 lastIMU=0.0s status=2 +frame 29700 drawable (4320.0, 2160.0) +frame 30000 drawable (4320.0, 2160.0) +frame 30300 drawable (4320.0, 2160.0) +1004.735422 health display=2 submitted=30537 presented=29633 fps=90.00 IMU=339736 lastIMU=0.0s status=2 +frame 30600 drawable (4320.0, 2160.0) +frame 30900 drawable (4320.0, 2160.0) +frame 31200 drawable (4320.0, 2160.0) +1014.735422 health display=2 submitted=31437 presented=30533 fps=90.00 IMU=349740 lastIMU=0.0s status=2 +frame 31500 drawable (4320.0, 2160.0) +frame 31800 drawable (4320.0, 2160.0) +frame 32100 drawable (4320.0, 2160.0) +1024.724422 health display=2 submitted=32336 presented=31433 fps=90.10 IMU=359732 lastIMU=0.0s status=2 +frame 32400 drawable (4320.0, 2160.0) +frame 32700 drawable (4320.0, 2160.0) +frame 33000 drawable (4320.0, 2160.0) +1034.724422 health display=2 submitted=33236 presented=32332 fps=89.90 IMU=369740 lastIMU=0.0s status=2 diff --git a/evidence/helper-safety-checks.txt b/evidence/helper-safety-checks.txt @@ -0,0 +1,10 @@ +recovery helper accepted DRST; waiting for display ADD +recovery helper accepted DRST; waiting for display ADD +recovery helper accepted DRST; waiting for display ADD +recovery rate limit: at most 3 resets per minute +recovery helper exceeded 3s; terminating +recovery helper failed (exit 9) +recovery helper missing: run tools/build.sh (expected /tmp/REDACTED-TEST-DIRECTORY) +recovery: display absent after grace period; resetting DP adapter +recovery helper accepted DRST; waiting for display ADD +PASS: three resets/minute; stuck helper stopped in 3.0318520069122314s; missing helper rejected diff --git a/evidence/lenswarp-gpu-checks.txt b/evidence/lenswarp-gpu-checks.txt @@ -0,0 +1,2 @@ +PASS: 3750 RGB float-coordinate pairs, max GPU/CPU error 4.573614134084636e-07 +PASS: 1632 RGB channel samples, max GPU/CPU error 0.0041510994889600375; asymmetric projection edges correct diff --git a/evidence/recovery-callback-release.json b/evidence/recovery-callback-release.json @@ -0,0 +1,153 @@ +{ + "started": 2895.146761, + "app_recovery": true, + "leave_off": true, + "commands": [ + { + "started": 2895.1915672, + "argv": [ + "hidcmd", + "off" + ], + "ended": 2895.309618, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 2909.983598, + "argv": [ + "hidcmd", + "off" + ], + "ended": 2910.111507, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + } + ], + "display_events": [ + { + "received": 2895.1913872, + "line": "2895.191422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2895.368872, + "line": "2895.368422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2895.368903, + "line": "2895.368422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2899.972082, + "line": "2899.966422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2899.972110, + "line": "2899.966422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2900.390583, + "line": "2900.389422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2900.3905988, + "line": "2900.389422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2904.977834, + "line": "2904.977422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2904.977854, + "line": "2904.977422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2905.655492, + "line": "2905.654422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2905.655723, + "line": "2905.654422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2906.082351, + "line": "2906.082422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2906.082369, + "line": "2906.082422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2910.205076, + "line": "2910.205422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2910.2051032, + "line": "2910.205422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2914.7905011, + "line": "2914.790422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2914.7905169, + "line": "2914.790422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2915.211743, + "line": "2915.211422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2915.211775, + "line": "2915.211422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2919.861314, + "line": "2919.859422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2919.8613381, + "line": "2919.859422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2920.499697, + "line": "2920.499422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2920.499715, + "line": "2920.499422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2920.929865, + "line": "2920.929422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2920.929881, + "line": "2920.929422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "recovered_by_app", + "seconds": 2.5929999351501465, + "outage_seconds": 4.603209972381592, + "post_recovery_drops": [ + 0.6776580810546875 + ] + }, + { + "index": 2, + "outcome": "recovered_by_app", + "seconds": 2.575688123703003, + "outage_seconds": 4.585425138473511, + "post_recovery_drops": [ + 0.6383829116821289 + ] + } + ], + "result": "passed", + "ended": 2924.8016331 +} diff --git a/evidence/recovery-callback-release.txt b/evidence/recovery-callback-release.txt @@ -0,0 +1,90 @@ +2889.379422 [hmd] serial REDACTED-DEVICE-SERIAL +2889.488422 [hmd] wake commands accepted; waiting for IMU and video evidence +2889.503422 captured display 2: ok +2890.059422 [display callback] id=2 flags=8 main=true +2890.060422 mode 4320x2160@90 (ui 4320x2160): ok +2890.082422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2890.091422 render worker main=false +frame 1 drawable 4320x2160 +2890.121422 [display callback] handled after 62.5 ms +2891.388422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 300 drawable 4320x2160 +2895.378422 [display callback] id=2 flags=4640 main=true +2895.378422 callback capture release result=1001 duration=0.0ms +2897.759422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +2897.816422 recovery helper accepted DRST; waiting for display ADD +2899.956422 [display callback] id=2 flags=4378 main=true +2899.967422 [display callback] handled after 4588.6 ms +2899.968422 headset display LOST +2899.968422 [display callback] handled after 12.5 ms +2899.968422 headset display back after 2 ms +2899.978422 captured display 2: ok +2900.645422 [display callback] id=2 flags=8 main=true +2900.647422 mode 4320x2160@90 (ui 4320x2160): ok +2900.664422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2900.664422 [display callback] handled after 18.9 ms +2900.665422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2900.665422 headset reports display not ready +2900.665422 health display=2 submitted=470 presented=460 skipped=10 fps=39.42 presentAge=5.35s GPUms=1.51 GPUerrors=0 IMU=5548 lastIMU=0.0s status=2 +frame 600 drawable 4320x2160 +2904.913422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2904.913422 headset reports display not ready +2904.997422 [display callback] id=2 flags=4640 main=true +2904.997422 callback capture release result=1001 duration=0.0ms +2905.651422 [display callback] id=2 flags=4378 main=true +2905.662422 [display callback] handled after 664.8 ms +2905.664422 headset display LOST +2905.665422 [display callback] handled after 13.4 ms +2905.665422 headset display back after 3 ms +2905.670422 captured display 2: ok +2906.352422 [display callback] id=2 flags=8 main=true +2906.353422 mode 4320x2160@90 (ui 4320x2160): ok +2906.354422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2906.354422 [display callback] handled after 2.1 ms +frame 900 drawable 4320x2160 +2907.672422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +2909.490422 health display=2 submitted=1139 presented=1113 skipped=22 fps=74.00 presentAge=0.00s GPUms=1.51 GPUerrors=0 IMU=13152 lastIMU=0.0s status=4 +2910.191422 [display callback] id=2 flags=4640 main=true +2910.191422 callback capture release result=1001 duration=0.0ms +2912.576422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x04, bytes: 64 +2912.620422 recovery helper failed (exit 1) +2914.766422 [display callback] id=2 flags=4378 main=true +2914.766422 [display callback] handled after 4574.9 ms +2914.771422 headset display LOST +2914.771422 [display callback] handled after 5.2 ms +2914.771422 headset display back after 5 ms +2914.786422 captured display 2: ok +2915.465422 [display callback] id=2 flags=8 main=true +2915.482422 mode 4320x2160@90 (ui 4320x2160): ok +2915.483422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2915.483422 [display callback] handled after 17.7 ms +2915.484422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2915.484422 headset reports display not ready +frame 1200 drawable 4320x2160 +frame 1500 drawable 4320x2160 +2919.491422 health display=2 submitted=1557 presented=1524 skipped=30 fps=41.10 presentAge=0.00s GPUms=1.48 GPUerrors=0 IMU=18004 lastIMU=0.0s status=5 +2919.732422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2919.732422 headset reports display not ready +2919.830422 [display callback] id=2 flags=4640 main=true +2919.830422 callback capture release result=1001 duration=0.0ms +2920.486422 [display callback] id=2 flags=4378 main=true +2920.497422 [display callback] handled after 666.8 ms +2920.499422 headset display LOST +2920.499422 [display callback] handled after 12.5 ms +2920.499422 headset display back after 2 ms +2920.506422 captured display 2: ok +2921.176422 [display callback] id=2 flags=8 main=true +2921.197422 mode 4320x2160@90 (ui 4320x2160): ok +2921.198422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2921.198422 [display callback] handled after 21.9 ms +2922.513422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +2929.489422 health display=2 submitted=2329 presented=2289 skipped=37 fps=76.51 presentAge=0.00s GPUms=1.44 GPUerrors=0 IMU=26772 lastIMU=0.0s status=7 +frame 2400 drawable 4320x2160 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 +2939.490422 health display=2 submitted=3229 presented=3189 skipped=37 fps=89.99 presentAge=0.00s GPUms=1.44 GPUerrors=0 IMU=36776 lastIMU=0.0s status=7 +frame 3300 drawable 4320x2160 diff --git a/evidence/recovery-command-experiments.jsonl b/evidence/recovery-command-experiments.jsonl @@ -0,0 +1,4 @@ +{"test": "RID1 documented HRST via AppleHPMLib selector 2; no payload", "started": 0.000000, "ended": 0.012585, "exit": 1, "stdout": "rid 1 cmd 'HRST' (0x54535248): 0xe00002c6\n", "stderr": ""} +{"test": "RID1 HRST via AppleHPMLib selector 2, corrected BE numeric 4CC; no payload", "started": 118.604449, "ended": 118.609843, "exit": 1, "stdout": "", "stderr": "IOCreatePlugInInterfaceForService: 0xe00002be\n"} +{"test": "RID1 HRST corrected BE 4CC, signed USBCEntitlement, root; no payload", "started": 126.592107, "ended": 126.616425, "exit": 1, "stdout": "rid 1 cmd 'HRST' (0x48525354): 0xe00002c6\n", "stderr": ""} +{"test": "RID1 DRST corrected BE 4CC, signed USBCEntitlement, root; no payload", "started": 140.8553531, "ended": 140.905904, "exit": 0, "stdout": "rid 1 cmd 'DRST' (0x44525354): 0x00000000\n", "stderr": ""} diff --git a/evidence/recovery-queue-baseline.json b/evidence/recovery-queue-baseline.json @@ -0,0 +1,85 @@ +{ + "started": 2855.479031, + "app_recovery": true, + "leave_off": true, + "commands": [ + { + "started": 2855.522815, + "argv": [ + "hidcmd", + "off" + ], + "ended": 2855.642109, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + } + ], + "display_events": [ + { + "received": 2855.522652, + "line": "2855.522422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2855.745588, + "line": "2855.722422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2855.745611, + "line": "2855.722422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2860.181673, + "line": "2860.181422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2860.181697, + "line": "2860.181422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2860.660794, + "line": "2860.660422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2860.660811, + "line": "2860.660422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2865.265085, + "line": "2865.265422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 2865.265116, + "line": "2865.265422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 2865.906528, + "line": "2865.906422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2865.906546, + "line": "2865.906422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 2866.338657, + "line": "2866.338422 display 2 [MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + }, + { + "received": 2866.338675, + "line": "2866.338422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@90.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "recovered_by_app", + "seconds": 2.425560235977173, + "outage_seconds": 4.436084985733032, + "post_recovery_drops": [ + 0.6414430141448975 + ] + } + ], + "result": "passed", + "ended": 2870.194270 +} diff --git a/evidence/recovery-queue-baseline.txt b/evidence/recovery-queue-baseline.txt @@ -0,0 +1,53 @@ +2849.400422 [hmd] serial REDACTED-DEVICE-SERIAL +2849.510422 [hmd] wake commands accepted; waiting for IMU and video evidence +2849.525422 captured display 2: ok +2850.047422 [display callback] id=2 flags=8 main=true +2850.048422 mode 4320x2160@90 (ui 4320x2160): ok +2850.071422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2850.073422 render worker main=false +frame 1 drawable 4320x2160 +2850.120422 [display callback] handled after 72.7 ms +2851.387422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 300 drawable 4320x2160 +2855.733422 [display callback] id=2 flags=4640 main=true +frame 600 drawable 4320x2160 +2857.994422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +2858.052422 recovery helper accepted DRST; waiting for display ADD +2860.185422 [display callback] id=2 flags=4378 main=true +2860.186422 [display callback] handled after 4452.6 ms +2860.202422 headset display LOST +2860.202422 [display callback] handled after 16.8 ms +2860.202422 headset display back after 16 ms +2860.210422 captured display 2: ok +2860.916422 [display callback] id=2 flags=8 main=true +2860.933422 mode 4320x2160@90 (ui 4320x2160): ok +2860.936422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2860.936422 [display callback] handled after 20.2 ms +2860.937422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +2860.937422 headset reports display not ready +2860.937422 health display=2 submitted=733 presented=491 skipped=242 fps=41.19 presentAge=5.28s GPUms=1.38 GPUerrors=0 IMU=5896 lastIMU=0.0s status=2 +frame 900 drawable 4320x2160 +2865.149422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +2865.150422 headset reports display not ready +2865.232422 [display callback] id=2 flags=4640 main=true +2865.886422 [display callback] id=2 flags=4378 main=true +2865.897422 [display callback] handled after 665.2 ms +2865.898422 headset display LOST +2865.898422 [display callback] handled after 12.9 ms +2865.898422 headset display back after 2 ms +2865.903422 captured display 2: ok +2866.577422 [display callback] id=2 flags=8 main=true +2866.579422 mode 4320x2160@90 (ui 4320x2160): ok +2866.579422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2866.580422 [display callback] handled after 2.4 ms +frame 1200 drawable 4320x2160 +2867.917422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +2869.511422 health display=2 submitted=1384 presented=1124 skipped=256 fps=73.83 presentAge=0.01s GPUms=1.31 GPUerrors=0 IMU=13260 lastIMU=0.0s status=4 +frame 1500 drawable 4320x2160 +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +2879.512422 health display=2 submitted=2284 presented=2023 skipped=257 fps=89.89 presentAge=0.01s GPUms=1.35 GPUerrors=0 IMU=23268 lastIMU=0.0s status=4 +frame 2400 drawable 4320x2160 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 diff --git a/evidence/recovery-trials-60hz.json b/evidence/recovery-trials-60hz.json @@ -0,0 +1,179 @@ +{ + "started": 316.243972, + "commands": [ + { + "started": 316.279667, + "argv": [ + "hidcmd", + "off" + ], + "ended": 316.398487, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 316.489172, + "argv": [ + "hidcmd", + "on" + ], + "ended": 316.761458, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + }, + { + "started": 318.763714, + "argv": [ + "hpmctl", + "1", + "cmd", + "DRST" + ], + "ended": 318.8245208, + "code": 0, + "stdout": "rid 1 cmd 'DRST' (0x44525354): 0x00000000", + "stderr": "" + }, + { + "started": 320.963881, + "argv": [ + "hidcmd", + "off" + ], + "ended": 321.0945191, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 321.201378, + "argv": [ + "hidcmd", + "on" + ], + "ended": 321.5079098, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + }, + { + "started": 323.513095, + "argv": [ + "hpmctl", + "1", + "cmd", + "DRST" + ], + "ended": 323.5814478, + "code": 0, + "stdout": "rid 1 cmd 'DRST' (0x44525354): 0x00000000", + "stderr": "" + }, + { + "started": 325.728066, + "argv": [ + "hidcmd", + "off" + ], + "ended": 325.851420, + "code": 0, + "stdout": "screen_off 0", + "stderr": "" + }, + { + "started": 325.9713202, + "argv": [ + "hidcmd", + "on" + ], + "ended": 326.2464519, + "code": 0, + "stdout": "screen_on 0", + "stderr": "" + }, + { + "started": 328.251004, + "argv": [ + "hpmctl", + "1", + "cmd", + "DRST" + ], + "ended": 328.3188632, + "code": 0, + "stdout": "rid 1 cmd 'DRST' (0x44525354): 0x00000000", + "stderr": "" + } + ], + "display_events": [ + { + "received": 316.279466, + "line": "316.279422 start: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 316.4890769, + "line": "316.488422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 316.489113, + "line": "316.488422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 320.963742, + "line": "320.963422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 320.963765, + "line": "320.963422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 321.200157, + "line": "321.199422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 321.200182, + "line": "321.199422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 325.727902, + "line": "325.727422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 325.7279239, + "line": "325.727422 display 1 []: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + }, + { + "received": 325.971217, + "line": "325.971422 display 2 [REMOVE]: 1:1552 2560x1600@60.0" + }, + { + "received": 325.9712398, + "line": "325.971422 display 1 []: 1:1552 2560x1600@60.0" + }, + { + "received": 330.464015, + "line": "330.463422 display 2 [ADD,MODE]: 1:1552 2560x1600@60.0 | 2:8718 4320x2160@60.0" + } + ], + "trials": [ + { + "index": 1, + "outcome": "recovered_after_DRST", + "seconds": 2.2000279426574707 + }, + { + "index": 2, + "outcome": "recovered_after_DRST", + "seconds": 2.2148070335388184 + }, + { + "index": 3, + "outcome": "recovered_after_DRST", + "seconds": 2.2130110263824463 + } + ], + "result": "passed", + "ended": 330.465476 +} diff --git a/evidence/soak-before-teardown-fix.txt b/evidence/soak-before-teardown-fix.txt @@ -0,0 +1,66 @@ +1943.028422 [hmd] serial REDACTED-DEVICE-SERIAL +1943.136422 [hmd] wake commands accepted; waiting for IMU and video evidence +1943.150422 captured display 2: ok +1943.675422 [display callback] id=2 flags=8 main=true +1943.676422 mode 4320x2160@90 (ui 4320x2160): ok +1943.697422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +1943.707422 render worker main=false +frame 1 drawable 4320x2160 +1943.740422 [display callback] handled after 65.1 ms +1943.755422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1943.755422 headset reports display not ready +1945.006422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 300 drawable 4320x2160 +frame 600 drawable 4320x2160 +1953.139422 health display=2 submitted=847 presented=839 skipped=4 fps=79.95 presentAge=0.00s GPUms=1.47 GPUerrors=0 IMU=9560 lastIMU=0.0s status=2 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 +frame 1500 drawable 4320x2160 +1963.138422 health display=2 submitted=1747 presented=1739 skipped=5 fps=90.00 presentAge=0.00s GPUms=1.52 GPUerrors=0 IMU=19564 lastIMU=0.0s status=2 +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +frame 2400 drawable 4320x2160 +1973.138422 health display=2 submitted=2647 presented=2639 skipped=5 fps=90.00 presentAge=0.00s GPUms=1.56 GPUerrors=0 IMU=29568 lastIMU=0.0s status=2 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 +frame 3300 drawable 4320x2160 +1983.137422 health display=2 submitted=3547 presented=3539 skipped=5 fps=90.01 presentAge=0.00s GPUms=1.60 GPUerrors=0 IMU=39572 lastIMU=0.0s status=2 +frame 3600 drawable 4320x2160 +frame 3900 drawable 4320x2160 +frame 4200 drawable 4320x2160 +1993.138422 health display=2 submitted=4447 presented=4439 skipped=5 fps=89.99 presentAge=0.00s GPUms=1.61 GPUerrors=0 IMU=49576 lastIMU=0.0s status=2 +frame 4500 drawable 4320x2160 +frame 4800 drawable 4320x2160 +frame 5100 drawable 4320x2160 +2003.137422 health display=2 submitted=5347 presented=5339 skipped=5 fps=90.01 presentAge=0.00s GPUms=1.61 GPUerrors=0 IMU=59580 lastIMU=0.0s status=2 +frame 5400 drawable 4320x2160 +frame 5700 drawable 4320x2160 +frame 6000 drawable 4320x2160 +2013.138422 health display=2 submitted=6247 presented=6239 skipped=5 fps=89.99 presentAge=0.00s GPUms=1.61 GPUerrors=0 IMU=69588 lastIMU=0.0s status=2 +frame 6300 drawable 4320x2160 +frame 6600 drawable 4320x2160 +frame 6900 drawable 4320x2160 +2023.138422 health display=2 submitted=7147 presented=7139 skipped=5 fps=90.00 presentAge=0.00s GPUms=1.62 GPUerrors=0 IMU=79592 lastIMU=0.0s status=2 +frame 7200 drawable 4320x2160 +frame 7500 drawable 4320x2160 +frame 7800 drawable 4320x2160 +2033.138422 health display=2 submitted=8047 presented=8039 skipped=5 fps=90.00 presentAge=0.00s GPUms=1.63 GPUerrors=0 IMU=89596 lastIMU=0.0s status=2 +frame 8100 drawable 4320x2160 +frame 8400 drawable 4320x2160 +frame 8700 drawable 4320x2160 +2043.137422 health display=2 submitted=8947 presented=8939 skipped=5 fps=90.01 presentAge=0.00s GPUms=1.63 GPUerrors=0 IMU=99596 lastIMU=0.0s status=2 +frame 9000 drawable 4320x2160 +frame 9300 drawable 4320x2160 +frame 9600 drawable 4320x2160 +2053.137422 health display=2 submitted=9847 presented=9839 skipped=5 fps=89.99 presentAge=0.00s GPUms=1.62 GPUerrors=0 IMU=109604 lastIMU=0.0s status=2 +frame 9900 drawable 4320x2160 +frame 10200 drawable 4320x2160 +frame 10500 drawable 4320x2160 +2063.137422 health display=2 submitted=10747 presented=10739 skipped=5 fps=90.00 presentAge=0.00s GPUms=1.60 GPUerrors=0 IMU=119608 lastIMU=0.0s status=2 +frame 10800 drawable 4320x2160 +frame 11100 drawable 4320x2160 +frame 11400 drawable 4320x2160 +2073.135422 health display=2 submitted=11647 presented=11639 skipped=5 fps=90.02 presentAge=0.00s GPUms=1.59 GPUerrors=0 IMU=129608 lastIMU=0.0s status=2 +frame 11700 drawable 4320x2160 +frame 12000 drawable 4320x2160 +frame 12300 drawable 4320x2160 diff --git a/evidence/soak-main-thread-stall.txt b/evidence/soak-main-thread-stall.txt @@ -0,0 +1,143 @@ +1403.862422 [hmd] serial REDACTED-DEVICE-SERIAL +1404.123422 [hmd] wake commands accepted; waiting for IMU and video evidence +1404.123422 waiting for the headset display... +1404.720422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1404.720422 headset reports display not ready +1406.124422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1406.292422 recovery helper accepted DRST; waiting for display ADD +1407.503422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1407.503422 headset reports display not ready +1408.481422 [display callback] id=2 flags=4378 main=true +1408.482422 [display callback] handled after 0.7 ms +1408.490422 captured display 2: ok +1409.160422 [display callback] id=2 flags=8 main=true +1409.180422 mode 4320x2160@90 (ui 4320x2160): ok +1409.186422 headset display link: maximum 90 fps +1409.186422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1409.187422 headset display link: maximum 90 fps +1409.187422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1409.188422 [display callback] handled after 28.0 ms +1409.188422 headset display link: maximum 90 fps +1409.188422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +frame 1 drawable (4320.0, 2160.0) +frame 300 drawable (4320.0, 2160.0) +1413.405422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +1413.405422 headset reports display not ready +1414.450422 drawable acquisition stalled 1001.5 ms +1414.452422 health display=2 submitted=385 presented=377 skipped=6 fps=34.36 presentAge=1.03s GPUms=1.54 GPUerrors=0 IMU=9052 lastIMU=0.0s status=3 +1424.457422 [display callback] id=2 flags=4922 main=true +1424.459422 [display callback] handled after 1.7 ms +1424.473422 headset display LOST +1424.473422 headset display back after 14 ms +1424.480422 captured display 2: ok +1425.023422 [display callback] id=2 flags=8 main=true +1425.039422 mode 4320x2160@90 (ui 4320x2160): ok +1425.040422 headset display link: maximum 90 fps +1425.040422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1425.040422 headset display link: maximum 90 fps +1425.040422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1425.041422 [display callback] handled after 17.8 ms +1425.041422 headset display link: maximum 90 fps +1425.041422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1425.042422 health display=2 submitted=385 presented=377 skipped=8 fps=0.00 presentAge=11.62s GPUms=1.54 GPUerrors=0 IMU=9212 lastIMU=0.0s status=3 +1425.043422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +1425.043422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1425.043422 headset reports display not ready +frame 600 drawable (4320.0, 2160.0) +1430.735422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1430.735422 headset reports display not ready +frame 900 drawable (4320.0, 2160.0) +1431.710422 drawable acquisition stalled 932.4 ms +1433.203422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +1433.311422 [display callback] id=2 flags=4922 main=true +1433.313422 [display callback] handled after 2.3 ms +1433.314422 headset display LOST +1433.314422 headset display back after 1 ms +1433.317422 captured display 2: ok +1433.860422 [display callback] id=2 flags=8 main=true +1433.870422 mode 4320x2160@90 (ui 4320x2160): ok +1433.871422 headset display link: maximum 90 fps +1433.871422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1433.872422 headset display link: maximum 90 fps +1433.872422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1433.873422 [display callback] handled after 12.5 ms +1433.873422 headset display link: maximum 90 fps +1433.873422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1433.877422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1433.877422 headset reports display not ready +1434.124422 health display=2 submitted=1019 presented=1000 skipped=16 fps=68.60 presentAge=0.01s GPUms=1.72 GPUerrors=0 IMU=17096 lastIMU=0.0s status=8 +1435.201422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 1200 drawable (4320.0, 2160.0) +frame 1500 drawable (4320.0, 2160.0) +frame 1800 drawable (4320.0, 2160.0) +1444.124422 health display=2 submitted=1919 presented=1900 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.78 GPUerrors=0 IMU=27100 lastIMU=0.0s status=9 +frame 2100 drawable (4320.0, 2160.0) +frame 2400 drawable (4320.0, 2160.0) +frame 2700 drawable (4320.0, 2160.0) +1454.124422 health display=2 submitted=2819 presented=2800 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.82 GPUerrors=0 IMU=37104 lastIMU=0.0s status=9 +frame 3000 drawable (4320.0, 2160.0) +frame 3300 drawable (4320.0, 2160.0) +frame 3600 drawable (4320.0, 2160.0) +1464.124422 health display=2 submitted=3719 presented=3700 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.83 GPUerrors=0 IMU=47108 lastIMU=0.0s status=9 +frame 3900 drawable (4320.0, 2160.0) +frame 4200 drawable (4320.0, 2160.0) +frame 4500 drawable (4320.0, 2160.0) +1474.124422 health display=2 submitted=4619 presented=4600 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.84 GPUerrors=0 IMU=57116 lastIMU=0.0s status=9 +frame 4800 drawable (4320.0, 2160.0) +frame 5100 drawable (4320.0, 2160.0) +frame 5400 drawable (4320.0, 2160.0) +1484.123422 health display=2 submitted=5519 presented=5499 skipped=16 fps=89.90 presentAge=0.01s GPUms=1.84 GPUerrors=0 IMU=67120 lastIMU=0.0s status=9 +frame 5700 drawable (4320.0, 2160.0) +frame 6000 drawable (4320.0, 2160.0) +frame 6300 drawable (4320.0, 2160.0) +1494.123422 health display=2 submitted=6419 presented=6399 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.85 GPUerrors=0 IMU=77124 lastIMU=0.0s status=9 +frame 6600 drawable (4320.0, 2160.0) +frame 6900 drawable (4320.0, 2160.0) +frame 7200 drawable (4320.0, 2160.0) +1504.123422 health display=2 submitted=7319 presented=7299 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.85 GPUerrors=0 IMU=87128 lastIMU=0.0s status=9 +frame 7500 drawable (4320.0, 2160.0) +frame 7800 drawable (4320.0, 2160.0) +frame 8100 drawable (4320.0, 2160.0) +1514.123422 health display=2 submitted=8219 presented=8199 skipped=16 fps=90.00 presentAge=0.01s GPUms=1.85 GPUerrors=0 IMU=97132 lastIMU=0.0s status=9 +frame 8400 drawable (4320.0, 2160.0) +frame 8700 drawable (4320.0, 2160.0) +frame 9000 drawable (4320.0, 2160.0) +1524.122422 health display=2 submitted=9119 presented=9099 skipped=16 fps=90.01 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=107136 lastIMU=0.0s status=9 +frame 9300 drawable (4320.0, 2160.0) +frame 9600 drawable (4320.0, 2160.0) +frame 9900 drawable (4320.0, 2160.0) +1534.123422 health display=2 submitted=10019 presented=9999 skipped=16 fps=89.99 presentAge=0.01s GPUms=1.85 GPUerrors=0 IMU=117140 lastIMU=0.0s status=9 +frame 10200 drawable (4320.0, 2160.0) +frame 10500 drawable (4320.0, 2160.0) +frame 10800 drawable (4320.0, 2160.0) +1544.123422 health display=2 submitted=10919 presented=10899 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=127144 lastIMU=0.0s status=9 +frame 11100 drawable (4320.0, 2160.0) +frame 11400 drawable (4320.0, 2160.0) +frame 11700 drawable (4320.0, 2160.0) +1554.123422 health display=2 submitted=11819 presented=11799 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=137148 lastIMU=0.0s status=9 +frame 12000 drawable (4320.0, 2160.0) +frame 12300 drawable (4320.0, 2160.0) +frame 12600 drawable (4320.0, 2160.0) +1564.122422 health display=2 submitted=12719 presented=12699 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=147152 lastIMU=0.0s status=9 +frame 12900 drawable (4320.0, 2160.0) +frame 13200 drawable (4320.0, 2160.0) +frame 13500 drawable (4320.0, 2160.0) +1574.122422 health display=2 submitted=13619 presented=13599 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=157160 lastIMU=0.0s status=9 +frame 13800 drawable (4320.0, 2160.0) +frame 14100 drawable (4320.0, 2160.0) +frame 14400 drawable (4320.0, 2160.0) +1584.122422 health display=2 submitted=14519 presented=14499 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=167164 lastIMU=0.0s status=9 +frame 14700 drawable (4320.0, 2160.0) +frame 15000 drawable (4320.0, 2160.0) +frame 15300 drawable (4320.0, 2160.0) +1594.122422 health display=2 submitted=15419 presented=15399 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=177168 lastIMU=0.0s status=9 +frame 15600 drawable (4320.0, 2160.0) +frame 15900 drawable (4320.0, 2160.0) +frame 16200 drawable (4320.0, 2160.0) +1604.121422 health display=2 submitted=16319 presented=16299 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=187172 lastIMU=0.0s status=9 +frame 16500 drawable (4320.0, 2160.0) +frame 16800 drawable (4320.0, 2160.0) +frame 17100 drawable (4320.0, 2160.0) +1614.122422 health display=2 submitted=17219 presented=17199 skipped=16 fps=90.00 presentAge=0.00s GPUms=1.85 GPUerrors=0 IMU=197176 lastIMU=0.0s status=9 +frame 17400 drawable (4320.0, 2160.0) diff --git a/evidence/startup-render-worker-fixed.json b/evidence/startup-render-worker-fixed.json @@ -0,0 +1,8 @@ +{ + "started": 1865.988883, + "purpose": "dedicated Metal render loop with display-link-managed presentation", + "off": "screen_off 0", + "ended": 1902.2857652, + "exit": -11, + "log": "evidence/startup-render-worker-fixed.txt" +} diff --git a/evidence/startup-render-worker-fixed.txt b/evidence/startup-render-worker-fixed.txt @@ -0,0 +1,44 @@ +1866.994422 [hmd] serial REDACTED-DEVICE-SERIAL +1867.253422 [hmd] wake commands accepted; waiting for IMU and video evidence +1867.255422 waiting for the headset display... +1867.850422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1867.850422 headset reports display not ready +1869.256422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1869.419422 recovery helper accepted DRST; waiting for display ADD +1870.630422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1870.630422 headset reports display not ready +1871.583422 [display callback] id=2 flags=4378 main=true +1871.584422 [display callback] handled after 0.9 ms +1871.592422 captured display 2: ok +1872.191422 [display callback] id=2 flags=8 main=true +1872.193422 mode 4320x2160@90 (ui 4320x2160): ok +1872.196422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +1872.197422 [display callback] handled after 6.1 ms +1872.205422 render worker main=false +frame 1 drawable 4320x2160 +frame 300 drawable 4320x2160 +1876.532422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +1876.532422 headset reports display not ready +1876.618422 [display callback] id=2 flags=4640 main=true +1877.324422 [display callback] id=2 flags=4378 main=true +1877.325422 [display callback] handled after 707.4 ms +1877.356422 headset display LOST +1877.356422 [display callback] handled after 32.0 ms +1877.356422 headset display back after 31 ms +1877.360422 captured display 2: ok +1878.069422 [display callback] id=2 flags=8 main=true +1878.071422 mode 4320x2160@90 (ui 4320x2160): ok +1878.072422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +1878.072422 [display callback] handled after 2.8 ms +1878.073422 health display=2 submitted=393 presented=384 skipped=9 fps=33.51 presentAge=1.52s GPUms=1.42 GPUerrors=0 IMU=9164 lastIMU=0.0s status=3 +1879.393422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 600 drawable 4320x2160 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 +1887.255422 health display=2 submitted=1219 presented=1204 skipped=12 fps=89.30 presentAge=0.01s GPUms=1.44 GPUerrors=0 IMU=18348 lastIMU=0.0s status=4 +frame 1500 drawable 4320x2160 +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +1897.255422 health display=2 submitted=2119 presented=2103 skipped=12 fps=89.90 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=28352 lastIMU=0.0s status=4 +frame 2400 drawable 4320x2160 diff --git a/evidence/startup-render-worker.json b/evidence/startup-render-worker.json @@ -0,0 +1,8 @@ +{ + "started": 1816.180022, + "purpose": "startup and postreset retrain with dedicated Metal render loop", + "off": "screen_off 0", + "ended": 1822.571053, + "exit": -6, + "log": "evidence/startup-render-worker.txt" +} diff --git a/evidence/startup-render-worker.txt b/evidence/startup-render-worker.txt @@ -0,0 +1,45 @@ +1817.192422 [hmd] serial REDACTED-DEVICE-SERIAL +1817.452422 [hmd] wake commands accepted; waiting for IMU and video evidence +1817.452422 waiting for the headset display... +1818.070422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1818.070422 headset reports display not ready +1819.454422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1819.623422 recovery helper accepted DRST; waiting for display ADD +1820.871422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1820.871422 headset reports display not ready +1821.838422 [display callback] id=2 flags=4378 main=true +1821.839422 [display callback] handled after 0.5 ms +1821.846422 captured display 2: ok +1822.500422 [display callback] id=2 flags=8 main=true +1822.505422 mode 4320x2160@90 (ui 4320x2160): ok +1822.511422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +1822.512422 [display callback] handled after 11.9 ms +1822.522422 render worker main=false +frame 1 drawable 4320x2160 +*** Terminating app due to uncaught exception 'CAMetalDrawableInvalidOperation', reason: '-presentAtTime should not be called when using CAMetalDisplayLink.' +*** First throw call stack: +( + 0 CoreFoundation 0x0000000183d53ae0 __exceptionPreprocess + 176 + 1 libobjc.A.dylib 0x0000000183816b90 objc_exception_throw + 88 + 2 CoreFoundation 0x0000000183d539d0 +[NSException exceptionWithName:reason:userInfo:] + 0 + 3 QuartzCore 0x000000018cf89c88 -[CAMetalDrawable presentWithOptions:] + 160 + 4 Metal 0x000000018f181bb8 __45-[_MTLCommandBuffer presentDrawable:options:]_block_invoke + 108 + 5 Metal 0x000000018f016f5c MTLDispatchListApply + 52 + 6 Metal 0x000000018f016ea4 -[_MTLCommandBuffer didScheduleWithStartTime:endTime:error:] + 312 + 7 IOGPU 0x00000001a572cc74 IOGPUNotificationQueueDispatchAvailableCompletionNotifications + 136 + 8 IOGPU 0x00000001a572cd84 __IOGPUNotificationQueueSetDispatchQueue_block_invoke + 64 + 9 libdispatch.dylib 0x0000000183a598a4 _dispatch_client_callout4 + 16 + 10 libdispatch.dylib 0x0000000183a5c110 _dispatch_mach_msg_invoke + 464 + 11 libdispatch.dylib 0x0000000183a481b8 _dispatch_lane_serial_drain + 332 + 12 libdispatch.dylib 0x0000000183a5ce74 _dispatch_mach_invoke + 472 + 13 libdispatch.dylib 0x0000000183a481b8 _dispatch_lane_serial_drain + 332 + 14 libdispatch.dylib 0x0000000183a48e60 _dispatch_lane_invoke + 440 + 15 libdispatch.dylib 0x0000000183a481b8 _dispatch_lane_serial_drain + 332 + 16 libdispatch.dylib 0x0000000183a48e2c _dispatch_lane_invoke + 388 + 17 libdispatch.dylib 0x0000000183a53264 _dispatch_root_queue_drain_deferred_wlh + 292 + 18 libdispatch.dylib 0x0000000183a52ae8 _dispatch_workloop_worker_thread + 540 + 19 libsystem_pthread.dylib 0x0000000183bf3e64 _pthread_wqthread + 292 + 20 libsystem_pthread.dylib 0x0000000183bf2b74 start_wqthread + 8 +) +libc++abi: terminating due to uncaught exception of type NSException diff --git a/evidence/startup-runloop-fix.json b/evidence/startup-runloop-fix.json @@ -0,0 +1,8 @@ +{ + "started": 1171.876446, + "purpose": "stuck startup after run-loop wake fix", + "off": "screen_off 0", + "ended": 1208.191423, + "exit": 0, + "log": "evidence/startup-runloop-fix.txt" +} diff --git a/evidence/startup-runloop-fix.txt b/evidence/startup-runloop-fix.txt @@ -0,0 +1,35 @@ +1172.877422 [hmd] serial REDACTED-DEVICE-SERIAL +1173.137422 [hmd] wake commands accepted; waiting for IMU and video evidence +1173.137422 waiting for the headset display... +1173.734422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1173.734422 headset reports display not ready +1175.139422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1175.296422 recovery helper accepted DRST; waiting for display ADD +1176.512422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1176.512422 headset reports display not ready +1177.473422 captured display 2: ok +1178.154422 mode 4320x2160@90 (ui 4320x2160): ok +1178.158422 headset display link: maximum 90 fps +1178.158422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +frame 1 drawable (4320.0, 2160.0) +frame 300 drawable (4320.0, 2160.0) +1182.414422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +1182.414422 headset reports display not ready +1183.421422 health display=2 submitted=389 presented=381 skipped=7 fps=34.86 presentAge=0.01s GPUms=1.32 GPUerrors=0 IMU=9060 lastIMU=0.0s status=3 +1183.473422 headset display LOST +1183.473422 headset display back after 26 ms +1183.480422 captured display 2: ok +1184.068422 mode 4320x2160@90 (ui 4320x2160): ok +1184.069422 headset display link: maximum 90 fps +1184.069422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1185.393422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 600 drawable (4320.0, 2160.0) +frame 900 drawable (4320.0, 2160.0) +frame 1200 drawable (4320.0, 2160.0) +1193.138422 health display=2 submitted=1206 presented=1196 skipped=7 fps=83.88 presentAge=0.01s GPUms=1.62 GPUerrors=0 IMU=18336 lastIMU=0.0s status=4 +frame 1500 drawable (4320.0, 2160.0) +frame 1800 drawable (4320.0, 2160.0) +frame 2100 drawable (4320.0, 2160.0) +1203.138422 health display=2 submitted=2106 presented=2095 skipped=7 fps=89.90 presentAge=0.01s GPUms=1.75 GPUerrors=0 IMU=28340 lastIMU=0.0s status=4 +frame 2400 drawable (4320.0, 2160.0) diff --git a/evidence/startup-trial-1.txt b/evidence/startup-trial-1.txt @@ -0,0 +1,33 @@ +1054.577422 [hmd] serial REDACTED-DEVICE-SERIAL +1054.837422 [hmd] wake commands accepted; waiting for IMU and video evidence +1054.837422 waiting for the headset display... +1055.434422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1055.434422 headset reports display not ready +1056.839422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1057.002422 recovery helper accepted DRST; waiting for display ADD +1058.218422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1058.218422 headset reports display not ready +1059.180422 captured display 2: ok +1059.818422 mode 4320x2160@90 (ui 4320x2160): ok +1059.840422 headset display link: maximum 90 fps +1059.840422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +frame 1 drawable (4320.0, 2160.0) +frame 300 drawable (4320.0, 2160.0) +1064.120422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +1064.120422 headset reports display not ready +1065.135422 health display=2 submitted=392 presented=384 skipped=7 fps=35.10 presentAge=0.00s GPUms=1.54 GPUerrors=0 IMU=9092 lastIMU=0.0s status=3 +1066.586422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 600 drawable (4320.0, 2160.0) +frame 900 drawable (4320.0, 2160.0) +1074.869422 health display=2 submitted=976 presented=965 skipped=7 fps=59.69 presentAge=0.00s GPUms=1.76 GPUerrors=0 IMU=18840 lastIMU=0.0s status=4 +1074.916422 headset display LOST +1074.916422 headset display back after 27 ms +1074.922422 captured display 2: ok +1075.511422 mode 4320x2160@90 (ui 4320x2160): ok +1075.514422 headset display link: maximum 90 fps +1075.514422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1075.516422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1075.516422 headset reports display not ready +1076.833422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 1200 drawable (4320.0, 2160.0) diff --git a/evidence/startup-trial-2.txt b/evidence/startup-trial-2.txt @@ -0,0 +1,33 @@ +1080.925422 [hmd] serial REDACTED-DEVICE-SERIAL +1081.186422 [hmd] wake commands accepted; waiting for IMU and video evidence +1081.186422 waiting for the headset display... +1081.783422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1081.783422 headset reports display not ready +1083.188422 recovery: display absent after grace period; resetting DP adapter +rid 1 recover DRST: 0x00000000, task result: 0x00, bytes: 64 +1083.358422 recovery helper accepted DRST; waiting for display ADD +1084.603422 [hmd] display ready=false; raw 05 00 01 01 00 00 00 00 00 00 00 +1084.603422 headset reports display not ready +1085.564422 captured display 2: ok +1086.239422 mode 4320x2160@90 (ui 4320x2160): ok +1086.246422 headset display link: maximum 90 fps +1086.246422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +frame 1 drawable (4320.0, 2160.0) +frame 300 drawable (4320.0, 2160.0) +1090.505422 [hmd] display ready=false; raw 05 00 01 01 00 59 00 00 00 07 3b +1090.505422 headset reports display not ready +1091.515422 health display=2 submitted=389 presented=382 skipped=6 fps=34.80 presentAge=0.00s GPUms=1.52 GPUerrors=0 IMU=9108 lastIMU=0.0s status=3 +1092.978422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 600 drawable (4320.0, 2160.0) +frame 900 drawable (4320.0, 2160.0) +1101.212422 health display=2 submitted=971 presented=962 skipped=6 fps=59.81 presentAge=0.00s GPUms=1.76 GPUerrors=0 IMU=18820 lastIMU=0.0s status=4 +1101.254422 headset display LOST +1101.254422 headset display back after 26 ms +1101.260422 captured display 2: ok +1101.790422 mode 4320x2160@90 (ui 4320x2160): ok +1101.791422 headset display link: maximum 90 fps +1101.791422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0) +1101.795422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +1101.795422 headset reports display not ready +1103.123422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +frame 1200 drawable (4320.0, 2160.0) diff --git a/evidence/startup-trials.json b/evidence/startup-trials.json @@ -0,0 +1,38 @@ +[ + { + "trial": 1, + "started": 1053.579293, + "off": { + "code": 0, + "stdout": "screen_off 0" + }, + "ended": 1079.909879, + "exit": 0, + "log": "evidence/startup-trial-1.txt", + "captured": true, + "native90": true, + "recovery_used": true, + "health": [ + "1065.135422 health display=2 submitted=392 presented=384 skipped=7 fps=35.10 presentAge=0.00s GPUms=1.54 GPUerrors=0 IMU=9092 lastIMU=0.0s status=3", + "1074.869422 health display=2 submitted=976 presented=965 skipped=7 fps=59.69 presentAge=0.00s GPUms=1.76 GPUerrors=0 IMU=18840 lastIMU=0.0s status=4" + ] + }, + { + "trial": 2, + "started": 1079.910188, + "off": { + "code": 0, + "stdout": "screen_off 0" + }, + "ended": 1106.260471, + "exit": 0, + "log": "evidence/startup-trial-2.txt", + "captured": true, + "native90": true, + "recovery_used": true, + "health": [ + "1091.515422 health display=2 submitted=389 presented=382 skipped=6 fps=34.80 presentAge=0.00s GPUms=1.52 GPUerrors=0 IMU=9108 lastIMU=0.0s status=3", + "1101.212422 health display=2 submitted=971 presented=962 skipped=6 fps=59.81 presentAge=0.00s GPUms=1.76 GPUerrors=0 IMU=18820 lastIMU=0.0s status=4" + ] + } +] diff --git a/evidence/verified-90hz-build.json b/evidence/verified-90hz-build.json @@ -0,0 +1,17 @@ +{ + "recorded": 3054.196426, + "files": { + "Package.swift": "bf767b1179a5cc7ea8cbab59b95af0c59920702a37345b2d99680666e9feeaf1", + "Sources/VRWorkstation/App.swift": "1ad20f88522431e8b3d91dfe4a66d97c3d1afda30bb4e61954db53b9b22bb818", + "Sources/VRWorkstation/HMD.swift": "95b4381efd0d3b33fd7887f58cb12beff2bbca0afe1f16feeb5f55c6b5a66f82", + "Sources/VRWorkstation/LinkRecovery.swift": "7609b5460dae455f09df57159e0bd60f9f64ac0b305c3abe034b880b65bfb85c", + "Sources/VRWorkstation/MainRunLoop.swift": "82a1dfb108603f4ee4ec1cb132f8feeb3552a6fcbc0324314774e10272a25c6e", + "Sources/VRWorkstation/MetalOutput.swift": "efbe4b6373485f6d4332a95ac8da7e0ff2f0f7d459faf6b6f2a176a94f429fa6", + "Sources/VRWorkstation/Renderer.swift": "56ce6d6ad623f35bec98805abb4b0bb35785adb870f18d005e325fe67c648ce3", + "Sources/VRWorkstation/Scene.swift": "9cded7d1e4ad87688c04f07002e1df6f4dd86f10c9fc92e04266110eb42a0260", + "Sources/VRWorkstation/Shaders.swift": "4d7c3b2bafa45b18077f63deb149d5b17f8ae04fb29122ec613a4d02a2df400f", + "Sources/VRWorkstation/main.swift": "51784e9e6f5085d4aaaa5b6a09e543d65b52f9a6a132a63739a1de5fde487798", + "tools/hpmctl.c": "2ca03d3e7a4256be56961e54030ab1e87f63361ac5a674f08c032c69b27f0eed", + "tools/build.sh": "d54653e9ca4ed5a382387cfd4c5bbe5fee929b0250c04a8aa601a839fa068f7a" + } +} diff --git a/evidence/verified-90hz-soak.json b/evidence/verified-90hz-soak.json @@ -0,0 +1,31 @@ +{ + "process_exit": 0, + "log": "evidence/verified-90hz-soak.txt", + "application_commit": "5806ab0", + "startup_self_healing_removes": [ + 2948.380422 + ], + "startup_returns": [ + 2949.017422 + ], + "settled_interval_seconds": 649.9649999141693, + "settled_presented_frames": 58496, + "settled_presented_fps": 89.99869224915903, + "settled_skipped_delta": 3, + "gpu_errors": 0, + "last_health": { + "display": "2", + "submitted": "59220", + "presented": "59203", + "skipped": "13", + "fps": "90.00", + "presentAge": "0.01s", + "GPUms": "1.68", + "GPUerrors": "0", + "IMU": "658576", + "lastIMU": "0.0s", + "status": "3" + }, + "render_join_timed_out": false, + "recovery_commands": 0 +} diff --git a/evidence/verified-90hz-soak.txt b/evidence/verified-90hz-soak.txt @@ -0,0 +1,287 @@ +2941.591422 [hmd] serial REDACTED-DEVICE-SERIAL +2941.700422 [hmd] wake commands accepted; waiting for IMU and video evidence +2941.713422 captured display 2: ok +2942.250422 [display callback] id=2 flags=8 main=true +2942.262422 mode 4320x2160@90 (ui 4320x2160): ok +2942.278422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2942.289422 render worker main=false +frame 1 drawable 4320x2160 +2942.319422 [display callback] handled after 69.3 ms +2942.680422 [hmd] display ready=true; raw 05 01 01 01 01 59 00 00 00 07 3b +frame 300 drawable 4320x2160 +2948.280422 [hmd] display ready=false; raw 05 00 01 01 00 3b 00 00 00 0a 27 +2948.280422 headset reports display not ready +2948.380422 [display callback] id=2 flags=4640 main=true +2949.017422 [display callback] id=2 flags=4378 main=true +2949.027422 [display callback] handled after 647.3 ms +2949.030422 headset display LOST +2949.030422 [display callback] handled after 13.3 ms +2949.030422 headset display back after 650 ms +2949.034422 captured display 2: ok +2949.703422 [display callback] id=2 flags=8 main=true +2949.705422 mode 4320x2160@90 (ui 4320x2160): ok +2949.706422 rendering on headset (4320.0, 2160.0), drawable (4320.0, 2160.0); dedicated Metal display loop at 90 Hz +2949.707422 [display callback] handled after 3.6 ms +frame 600 drawable 4320x2160 +2951.020422 [hmd] display ready=true; raw 05 01 01 01 01 3b 00 00 00 0a 27 +2951.701422 health display=2 submitted=721 presented=707 skipped=10 fps=67.38 presentAge=0.01s GPUms=1.40 GPUerrors=0 IMU=8340 lastIMU=0.0s status=3 +frame 900 drawable 4320x2160 +frame 1200 drawable 4320x2160 +frame 1500 drawable 4320x2160 +2961.703422 health display=2 submitted=1620 presented=1605 skipped=12 fps=89.79 presentAge=0.01s GPUms=1.42 GPUerrors=0 IMU=18344 lastIMU=0.0s status=3 +frame 1800 drawable 4320x2160 +frame 2100 drawable 4320x2160 +frame 2400 drawable 4320x2160 +2971.702422 health display=2 submitted=2520 presented=2505 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.46 GPUerrors=0 IMU=28348 lastIMU=0.0s status=3 +frame 2700 drawable 4320x2160 +frame 3000 drawable 4320x2160 +frame 3300 drawable 4320x2160 +2981.701422 health display=2 submitted=3420 presented=3405 skipped=12 fps=90.01 presentAge=0.01s GPUms=1.45 GPUerrors=0 IMU=38348 lastIMU=0.0s status=3 +frame 3600 drawable 4320x2160 +frame 3900 drawable 4320x2160 +frame 4200 drawable 4320x2160 +2991.702422 health display=2 submitted=4320 presented=4304 skipped=12 fps=89.89 presentAge=0.01s GPUms=1.44 GPUerrors=0 IMU=48356 lastIMU=0.0s status=3 +frame 4500 drawable 4320x2160 +frame 4800 drawable 4320x2160 +frame 5100 drawable 4320x2160 +3001.702422 health display=2 submitted=5220 presented=5204 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.46 GPUerrors=0 IMU=58360 lastIMU=0.0s status=3 +frame 5400 drawable 4320x2160 +frame 5700 drawable 4320x2160 +frame 6000 drawable 4320x2160 +3011.700422 health display=2 submitted=6120 presented=6104 skipped=12 fps=90.01 presentAge=0.01s GPUms=1.46 GPUerrors=0 IMU=68360 lastIMU=0.0s status=3 +frame 6300 drawable 4320x2160 +frame 6600 drawable 4320x2160 +frame 6900 drawable 4320x2160 +3021.702422 health display=2 submitted=7020 presented=7004 skipped=12 fps=89.98 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=78368 lastIMU=0.0s status=3 +frame 7200 drawable 4320x2160 +frame 7500 drawable 4320x2160 +frame 7800 drawable 4320x2160 +3031.702422 health display=2 submitted=7920 presented=7904 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.48 GPUerrors=0 IMU=88372 lastIMU=0.0s status=3 +frame 8100 drawable 4320x2160 +frame 8400 drawable 4320x2160 +frame 8700 drawable 4320x2160 +3041.702422 health display=2 submitted=8820 presented=8804 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=98376 lastIMU=0.0s status=3 +frame 9000 drawable 4320x2160 +frame 9300 drawable 4320x2160 +frame 9600 drawable 4320x2160 +3051.702422 health display=2 submitted=9720 presented=9704 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.48 GPUerrors=0 IMU=108380 lastIMU=0.0s status=3 +frame 9900 drawable 4320x2160 +frame 10200 drawable 4320x2160 +frame 10500 drawable 4320x2160 +3061.702422 health display=2 submitted=10620 presented=10604 skipped=12 fps=90.00 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=118384 lastIMU=0.0s status=3 +frame 10800 drawable 4320x2160 +frame 11100 drawable 4320x2160 +frame 11400 drawable 4320x2160 +3071.700422 health display=2 submitted=11520 presented=11504 skipped=12 fps=90.02 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=128384 lastIMU=0.0s status=3 +frame 11700 drawable 4320x2160 +frame 12000 drawable 4320x2160 +frame 12300 drawable 4320x2160 +3081.700422 health display=2 submitted=12420 presented=12404 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.47 GPUerrors=0 IMU=138388 lastIMU=0.0s status=3 +frame 12600 drawable 4320x2160 +frame 12900 drawable 4320x2160 +frame 13200 drawable 4320x2160 +3091.700422 health display=2 submitted=13320 presented=13304 skipped=13 fps=89.99 presentAge=0.01s GPUms=1.48 GPUerrors=0 IMU=148396 lastIMU=0.0s status=3 +frame 13500 drawable 4320x2160 +frame 13800 drawable 4320x2160 +frame 14100 drawable 4320x2160 +3101.700422 health display=2 submitted=14220 presented=14204 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.50 GPUerrors=0 IMU=158400 lastIMU=0.0s status=3 +frame 14400 drawable 4320x2160 +frame 14700 drawable 4320x2160 +frame 15000 drawable 4320x2160 +3111.700422 health display=2 submitted=15120 presented=15104 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.52 GPUerrors=0 IMU=168400 lastIMU=0.0s status=3 +frame 15300 drawable 4320x2160 +frame 15600 drawable 4320x2160 +frame 15900 drawable 4320x2160 +3121.700422 health display=2 submitted=16020 presented=16004 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=178404 lastIMU=0.0s status=3 +frame 16200 drawable 4320x2160 +frame 16500 drawable 4320x2160 +frame 16800 drawable 4320x2160 +3131.700422 health display=2 submitted=16920 presented=16904 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.54 GPUerrors=0 IMU=188408 lastIMU=0.0s status=3 +frame 17100 drawable 4320x2160 +frame 17400 drawable 4320x2160 +frame 17700 drawable 4320x2160 +3141.700422 health display=2 submitted=17820 presented=17804 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=198412 lastIMU=0.0s status=3 +frame 18000 drawable 4320x2160 +frame 18300 drawable 4320x2160 +frame 18600 drawable 4320x2160 +3151.700422 health display=2 submitted=18720 presented=18704 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.55 GPUerrors=0 IMU=208416 lastIMU=0.0s status=3 +frame 18900 drawable 4320x2160 +frame 19200 drawable 4320x2160 +frame 19500 drawable 4320x2160 +3161.699422 health display=2 submitted=19620 presented=19604 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=218420 lastIMU=0.0s status=3 +frame 19800 drawable 4320x2160 +frame 20100 drawable 4320x2160 +frame 20400 drawable 4320x2160 +3171.699422 health display=2 submitted=20520 presented=20504 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=228424 lastIMU=0.0s status=3 +frame 20700 drawable 4320x2160 +frame 21000 drawable 4320x2160 +frame 21300 drawable 4320x2160 +3181.699422 health display=2 submitted=21420 presented=21404 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=238428 lastIMU=0.0s status=3 +frame 21600 drawable 4320x2160 +frame 21900 drawable 4320x2160 +frame 22200 drawable 4320x2160 +3191.700422 health display=2 submitted=22320 presented=22304 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=248432 lastIMU=0.0s status=3 +frame 22500 drawable 4320x2160 +frame 22800 drawable 4320x2160 +frame 23100 drawable 4320x2160 +3201.700422 health display=2 submitted=23220 presented=23204 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.56 GPUerrors=0 IMU=258436 lastIMU=0.0s status=3 +frame 23400 drawable 4320x2160 +frame 23700 drawable 4320x2160 +frame 24000 drawable 4320x2160 +3211.699422 health display=2 submitted=24120 presented=24103 skipped=13 fps=89.90 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=268440 lastIMU=0.0s status=3 +frame 24300 drawable 4320x2160 +frame 24600 drawable 4320x2160 +frame 24900 drawable 4320x2160 +3221.699422 health display=2 submitted=25020 presented=25003 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=278444 lastIMU=0.0s status=3 +frame 25200 drawable 4320x2160 +frame 25500 drawable 4320x2160 +frame 25800 drawable 4320x2160 +3231.699422 health display=2 submitted=25920 presented=25903 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.57 GPUerrors=0 IMU=288448 lastIMU=0.0s status=3 +frame 26100 drawable 4320x2160 +frame 26400 drawable 4320x2160 +frame 26700 drawable 4320x2160 +3241.699422 health display=2 submitted=26820 presented=26803 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.58 GPUerrors=0 IMU=298452 lastIMU=0.0s status=3 +frame 27000 drawable 4320x2160 +frame 27300 drawable 4320x2160 +frame 27600 drawable 4320x2160 +3251.698422 health display=2 submitted=27720 presented=27703 skipped=13 fps=90.01 presentAge=0.01s GPUms=1.59 GPUerrors=0 IMU=308456 lastIMU=0.0s status=3 +frame 27900 drawable 4320x2160 +frame 28200 drawable 4320x2160 +frame 28500 drawable 4320x2160 +3261.699422 health display=2 submitted=28620 presented=28603 skipped=13 fps=89.99 presentAge=0.01s GPUms=1.59 GPUerrors=0 IMU=318460 lastIMU=0.0s status=3 +frame 28800 drawable 4320x2160 +frame 29100 drawable 4320x2160 +frame 29400 drawable 4320x2160 +3271.699422 health display=2 submitted=29520 presented=29503 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.59 GPUerrors=0 IMU=328464 lastIMU=0.0s status=3 +frame 29700 drawable 4320x2160 +frame 30000 drawable 4320x2160 +frame 30300 drawable 4320x2160 +3281.699422 health display=2 submitted=30420 presented=30403 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.59 GPUerrors=0 IMU=338468 lastIMU=0.0s status=3 +frame 30600 drawable 4320x2160 +frame 30900 drawable 4320x2160 +frame 31200 drawable 4320x2160 +3291.699422 health display=2 submitted=31320 presented=31303 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.60 GPUerrors=0 IMU=348472 lastIMU=0.0s status=3 +frame 31500 drawable 4320x2160 +frame 31800 drawable 4320x2160 +frame 32100 drawable 4320x2160 +3301.699422 health display=2 submitted=32220 presented=32203 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.59 GPUerrors=0 IMU=358472 lastIMU=0.0s status=3 +frame 32400 drawable 4320x2160 +frame 32700 drawable 4320x2160 +frame 33000 drawable 4320x2160 +3311.698422 health display=2 submitted=33120 presented=33103 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.60 GPUerrors=0 IMU=368476 lastIMU=0.0s status=3 +frame 33300 drawable 4320x2160 +frame 33600 drawable 4320x2160 +frame 33900 drawable 4320x2160 +3321.698422 health display=2 submitted=34020 presented=34003 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.60 GPUerrors=0 IMU=378480 lastIMU=0.0s status=3 +frame 34200 drawable 4320x2160 +frame 34500 drawable 4320x2160 +frame 34800 drawable 4320x2160 +3331.698422 health display=2 submitted=34920 presented=34903 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.60 GPUerrors=0 IMU=388484 lastIMU=0.0s status=3 +frame 35100 drawable 4320x2160 +frame 35400 drawable 4320x2160 +frame 35700 drawable 4320x2160 +3341.698422 health display=2 submitted=35820 presented=35803 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.61 GPUerrors=0 IMU=398488 lastIMU=0.0s status=3 +frame 36000 drawable 4320x2160 +frame 36300 drawable 4320x2160 +frame 36600 drawable 4320x2160 +3351.698422 health display=2 submitted=36720 presented=36703 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.61 GPUerrors=0 IMU=408492 lastIMU=0.0s status=3 +frame 36900 drawable 4320x2160 +frame 37200 drawable 4320x2160 +frame 37500 drawable 4320x2160 +3361.698422 health display=2 submitted=37620 presented=37603 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.62 GPUerrors=0 IMU=418496 lastIMU=0.0s status=3 +frame 37800 drawable 4320x2160 +frame 38100 drawable 4320x2160 +frame 38400 drawable 4320x2160 +3371.698422 health display=2 submitted=38520 presented=38503 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.62 GPUerrors=0 IMU=428500 lastIMU=0.0s status=3 +frame 38700 drawable 4320x2160 +frame 39000 drawable 4320x2160 +frame 39300 drawable 4320x2160 +3381.698422 health display=2 submitted=39420 presented=39403 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.62 GPUerrors=0 IMU=438504 lastIMU=0.0s status=3 +frame 39600 drawable 4320x2160 +frame 39900 drawable 4320x2160 +frame 40200 drawable 4320x2160 +3391.698422 health display=2 submitted=40320 presented=40303 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.63 GPUerrors=0 IMU=448504 lastIMU=0.0s status=3 +frame 40500 drawable 4320x2160 +frame 40800 drawable 4320x2160 +frame 41100 drawable 4320x2160 +3401.698422 health display=2 submitted=41220 presented=41203 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.63 GPUerrors=0 IMU=458508 lastIMU=0.0s status=3 +frame 41400 drawable 4320x2160 +frame 41700 drawable 4320x2160 +frame 42000 drawable 4320x2160 +3411.697422 health display=2 submitted=42120 presented=42103 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.63 GPUerrors=0 IMU=468512 lastIMU=0.0s status=3 +frame 42300 drawable 4320x2160 +frame 42600 drawable 4320x2160 +frame 42900 drawable 4320x2160 +3421.698422 health display=2 submitted=43020 presented=43003 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.64 GPUerrors=0 IMU=478516 lastIMU=0.0s status=3 +frame 43200 drawable 4320x2160 +frame 43500 drawable 4320x2160 +frame 43800 drawable 4320x2160 +3431.697422 health display=2 submitted=43920 presented=43903 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.64 GPUerrors=0 IMU=488520 lastIMU=0.0s status=3 +frame 44100 drawable 4320x2160 +frame 44400 drawable 4320x2160 +frame 44700 drawable 4320x2160 +3441.697422 health display=2 submitted=44820 presented=44803 skipped=13 fps=90.01 presentAge=0.01s GPUms=1.64 GPUerrors=0 IMU=498524 lastIMU=0.0s status=3 +frame 45000 drawable 4320x2160 +frame 45300 drawable 4320x2160 +frame 45600 drawable 4320x2160 +3451.696422 health display=2 submitted=45720 presented=45703 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.64 GPUerrors=0 IMU=508524 lastIMU=0.0s status=3 +frame 45900 drawable 4320x2160 +frame 46200 drawable 4320x2160 +frame 46500 drawable 4320x2160 +3461.697422 health display=2 submitted=46620 presented=46603 skipped=13 fps=89.99 presentAge=0.01s GPUms=1.64 GPUerrors=0 IMU=518532 lastIMU=0.0s status=3 +frame 46800 drawable 4320x2160 +frame 47100 drawable 4320x2160 +frame 47400 drawable 4320x2160 +3471.697422 health display=2 submitted=47520 presented=47503 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.65 GPUerrors=0 IMU=528532 lastIMU=0.0s status=3 +frame 47700 drawable 4320x2160 +frame 48000 drawable 4320x2160 +frame 48300 drawable 4320x2160 +3481.697422 health display=2 submitted=48420 presented=48403 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.65 GPUerrors=0 IMU=538536 lastIMU=0.0s status=3 +frame 48600 drawable 4320x2160 +frame 48900 drawable 4320x2160 +frame 49200 drawable 4320x2160 +3491.697422 health display=2 submitted=49320 presented=49303 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.65 GPUerrors=0 IMU=548540 lastIMU=0.0s status=3 +frame 49500 drawable 4320x2160 +frame 49800 drawable 4320x2160 +frame 50100 drawable 4320x2160 +3501.697422 health display=2 submitted=50220 presented=50203 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=558544 lastIMU=0.0s status=3 +frame 50400 drawable 4320x2160 +frame 50700 drawable 4320x2160 +frame 51000 drawable 4320x2160 +3511.697422 health display=2 submitted=51120 presented=51103 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=568548 lastIMU=0.0s status=3 +frame 51300 drawable 4320x2160 +frame 51600 drawable 4320x2160 +frame 51900 drawable 4320x2160 +3521.694422 health display=2 submitted=52020 presented=52003 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=578552 lastIMU=0.0s status=3 +frame 52200 drawable 4320x2160 +frame 52500 drawable 4320x2160 +frame 52800 drawable 4320x2160 +3531.681422 health display=2 submitted=52920 presented=52903 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=588556 lastIMU=0.0s status=3 +frame 53100 drawable 4320x2160 +frame 53400 drawable 4320x2160 +frame 53700 drawable 4320x2160 +3541.674422 health display=2 submitted=53820 presented=53803 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.66 GPUerrors=0 IMU=598556 lastIMU=0.0s status=3 +frame 54000 drawable 4320x2160 +frame 54300 drawable 4320x2160 +frame 54600 drawable 4320x2160 +3551.670422 health display=2 submitted=54720 presented=54703 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.67 GPUerrors=0 IMU=608560 lastIMU=0.0s status=3 +frame 54900 drawable 4320x2160 +frame 55200 drawable 4320x2160 +frame 55500 drawable 4320x2160 +3561.668422 health display=2 submitted=55620 presented=55603 skipped=13 fps=90.01 presentAge=0.01s GPUms=1.67 GPUerrors=0 IMU=618564 lastIMU=0.0s status=3 +frame 55800 drawable 4320x2160 +frame 56100 drawable 4320x2160 +frame 56400 drawable 4320x2160 +3571.667422 health display=2 submitted=56520 presented=56503 skipped=13 fps=89.99 presentAge=0.01s GPUms=1.67 GPUerrors=0 IMU=628568 lastIMU=0.0s status=3 +frame 56700 drawable 4320x2160 +frame 57000 drawable 4320x2160 +frame 57300 drawable 4320x2160 +3581.666422 health display=2 submitted=57420 presented=57403 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.67 GPUerrors=0 IMU=638572 lastIMU=0.0s status=3 +frame 57600 drawable 4320x2160 +frame 57900 drawable 4320x2160 +frame 58200 drawable 4320x2160 +3591.666422 health display=2 submitted=58320 presented=58303 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.68 GPUerrors=0 IMU=648576 lastIMU=0.0s status=3 +frame 58500 drawable 4320x2160 +frame 58800 drawable 4320x2160 +frame 59100 drawable 4320x2160 +3601.666422 health display=2 submitted=59220 presented=59203 skipped=13 fps=90.00 presentAge=0.01s GPUms=1.68 GPUerrors=0 IMU=658576 lastIMU=0.0s status=3