From b0be6d9b8b8a32c08f5f004fe345a161a35ddd85 Mon Sep 17 00:00:00 2001 From: 4gray Date: Fri, 10 Jul 2026 23:09:09 +0200 Subject: [PATCH] spike(embedded-mpv): scope macOS frame-copy engine to Apple Silicon only Owner decision 2026-07-10: skip Intel Mac measurements and gate the future frame-copy engine on arm64. Intel Macs able to run the app at all are a shrinking 2015-2020 cohort and keep the docked/external/web player paths; the macOS hardware gate closes with the M1 Pro numbers, and remaining hardware risk moves to the Windows/Linux ports. Co-Authored-By: Claude Fable 5 --- spikes/mpv-frame-copy/DESIGN.md | 12 ++++++++++-- spikes/mpv-frame-copy/README.md | 5 +++-- spikes/mpv-frame-copy/RESULTS.md | 12 +++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/spikes/mpv-frame-copy/DESIGN.md b/spikes/mpv-frame-copy/DESIGN.md index 7a4485168..d69e87c15 100644 --- a/spikes/mpv-frame-copy/DESIGN.md +++ b/spikes/mpv-frame-copy/DESIGN.md @@ -97,6 +97,14 @@ scope for v1. - Windows shm: POSIX `shm_open` on macOS/Linux, `CreateFileMapping` named sections on Windows behind the same header layout. +## Platform scope + +macOS: **Apple Silicon (arm64) only** — owner decision 2026-07-10. Support +detection gates on the CPU architecture; Intel Macs keep the existing +docked native path, external players, and web engines. This closes the +macOS hardware gate with the M1 Pro measurements and moves all remaining +hardware risk to Windows/Linux. + ## Platform bring-up order 1. macOS: spike is the implementation seed (CGL headless + PBO ring). @@ -117,8 +125,8 @@ scope for v1. ## Open gates before default-ON -- Intel Mac / Windows iGPU numbers (pending hardware; RESULTS.md has the - repro recipe). +- Windows iGPU numbers (needs the Windows helper port; RESULTS.md has the + repro recipe). Intel Mac gate closed by the arm64-only scope decision. - Latency flash test + per-platform `--audio-delay` calibration. - Battery drain delta vs the native-surface approach. - Windows/Linux helper ports validated on real machines. diff --git a/spikes/mpv-frame-copy/README.md b/spikes/mpv-frame-copy/README.md index a5f96c0a3..224ec6625 100644 --- a/spikes/mpv-frame-copy/README.md +++ b/spikes/mpv-frame-copy/README.md @@ -100,8 +100,9 @@ Measured on M1 Pro (2026-07-10): Still open: -- Intel Mac and mid-range Windows laptop (iGPU) — the actual risk hardware - (pending device; Windows also needs the helper port). +- Mid-range Windows laptop (iGPU) — the actual risk hardware; needs the + Windows helper port first. (Intel Macs: skipped by decision — on macOS + the engine targets Apple Silicon only, see RESULTS.md.) - End-to-end latency flash test (photodiode/screen-capture method) and audio/video sync offset to calibrate `--audio-delay`. - Battery drain delta vs the native-surface approach. diff --git a/spikes/mpv-frame-copy/RESULTS.md b/spikes/mpv-frame-copy/RESULTS.md index 2e80942f2..f71e0c659 100644 --- a/spikes/mpv-frame-copy/RESULTS.md +++ b/spikes/mpv-frame-copy/RESULTS.md @@ -96,10 +96,16 @@ Reference worst-case budget from the analysis doc, for orientation: 33 MB 4K memcpy est. 6–8 ms (measured ≈1.2 ms); end-to-end added latency est. 40–60 ms (measured ≈10 ms produce→uploaded, before compositor). -## Intel Mac — PENDING (device to be sourced) +## Intel Mac — SKIPPED by decision (2026-07-10) -Target scenarios: same three rows as above (hwdec=videotoolbox on Intel -iGPU is the interesting case) + windowed vs fullscreen. +Owner decision: the frame-copy engine targets Apple Silicon (M1+) only on +macOS; support detection must gate on arm64. Rationale: Intel Macs able to +run the app at all (Electron 41 ⇒ macOS 10.15+) are a shrinking 2015–2020 +cohort and keep the existing docked/external/web player paths; the only +Intel device sourced (iMac mid-2011, High Sierra) cannot run the app and +would not have been representative. The macOS hardware gate is therefore +closed by the M1 Pro numbers above; the remaining risk hardware is +Windows/Linux. ## Windows mid-range laptop (iGPU) — PENDING