← back to Quadrille Showroom
Slice3 gate hygiene: annotate headless FPS flag as HEADLESS-SKIPPED + commit real-GPU artifact (scripts/slice3-fps-realgpu-result.json — M2 Max Metal 72fps, gate55_met:true) — one authoritative truth source per /contrarian
229a7b04611c34cf75b8a9b889a023e0194d0f6a · 2026-06-28 20:39:00 -0700 · Steve
Files touched
A scripts/slice3-fps-realgpu-result.jsonM scripts/verify-slice3.mjs
Diff
commit 229a7b04611c34cf75b8a9b889a023e0194d0f6a
Author: Steve <steve@designerwallcoverings.com>
Date: Sun Jun 28 20:39:00 2026 -0700
Slice3 gate hygiene: annotate headless FPS flag as HEADLESS-SKIPPED + commit real-GPU artifact (scripts/slice3-fps-realgpu-result.json — M2 Max Metal 72fps, gate55_met:true) — one authoritative truth source per /contrarian
---
scripts/slice3-fps-realgpu-result.json | 77 ++++++++++++++++++++++++++++++++++
scripts/verify-slice3.mjs | 9 +++-
2 files changed, 85 insertions(+), 1 deletion(-)
diff --git a/scripts/slice3-fps-realgpu-result.json b/scripts/slice3-fps-realgpu-result.json
new file mode 100644
index 0000000..24dfaed
--- /dev/null
+++ b/scripts/slice3-fps-realgpu-result.json
@@ -0,0 +1,77 @@
+{
+ "gl": {
+ "vendor": "Google Inc. (Apple)",
+ "renderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M2 Max, Unspecified Version)",
+ "pixelRatio": 1
+ },
+ "samples": 10,
+ "fpsMin": 72,
+ "fpsMax": 72,
+ "fpsAvg": 72,
+ "gate55_met": true,
+ "drawsMin": 181,
+ "drawsMax": 552,
+ "allSamples": [
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 457,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 457,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 219,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 242,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 181,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 455,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 452,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 552,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 394,
+ "pixelRatio": 1
+ },
+ {
+ "fps": 72,
+ "ms": 13.9,
+ "draws": 497,
+ "pixelRatio": 1
+ }
+ ],
+ "errorCount": 0
+}
diff --git a/scripts/verify-slice3.mjs b/scripts/verify-slice3.mjs
index 2c15010..2c98e2c 100644
--- a/scripts/verify-slice3.mjs
+++ b/scripts/verify-slice3.mjs
@@ -258,7 +258,14 @@ result.VERDICT = {
H_copy_contains_code: result.H_copyText.copyContainsCode,
H_pins_show_codes: result.H_pinsOn.everyPinHasCode,
F_readout_present: result.F_readout.hasEl && !!result.F_readout.perf,
- F_fps_gate_55: result.F_navSweep.gate55_met,
+ // The ≥55 FPS gate is MEANINGLESS under headless SwiftShader (software WebGL caps ~3-7 FPS).
+ // It is measured on a REAL GPU by scripts/verify-slice3-fps-realgpu.mjs; the authoritative
+ // result is committed at scripts/slice3-fps-realgpu-result.json (Apple M2 Max Metal: 72 FPS,
+ // gate55_met:true). Do NOT read F_fps_gate_55 from THIS headless harness as a pass/fail signal.
+ F_fps_gate_55: typeof navigator !== 'undefined' && /SwiftShader|llvmpipe/i.test(result.F_readout?.renderer || '')
+ ? 'HEADLESS-SKIPPED:see-scripts/slice3-fps-realgpu-result.json'
+ : result.F_navSweep.gate55_met,
+ F_fps_gate_55_realgpu_note: 'HEADLESS-SKIPPED:see-scripts/slice3-fps-realgpu-result.json (real-GPU: 72fps, gate55_met:true)',
S1_posDelta0: result.S1_camera.posDelta < 0.01,
S1_yawClamp72: result.S1_camera.yawMaxDeg === 72,
S1_50boards: result.F_timing.boardCount === 50,
← 0979b2b Slice-3 F: FPS.ms.draws HUD readout + off-thread wall-clad d
·
back to Quadrille Showroom
·
auto-save: 2026-06-28T21:16:50 (125 files) — cta/rec/chrome. 18497fa →