[object Object]

← 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

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 →