Phase 0: browser X11-overlay inventory + mpv reference cell + tooling installs

Source-level verdict: no browser in the matrix has a code path
to hand NV12 to the X server for plane scanout. Chromium ozone-x11
wires StubOverlayManager (ozone_platform_x11.cc:262); Brave 147 +
chromium-fourier 149 inherit unchanged. Firefox WindowSurfaceX11
is RGB-only. The campaign's load-bearing hypothesis is structurally
weakened — what the X11 cells will measure for browsers is
KWin's per-frame RGB-recomposite cost, not the original
"force-GL-composite of NV12" framing. mpv --vo=xv becomes the
matrix's only direct test of the operator-supplied mechanism.

Matrix updated: 12 cells -> 16 cells (+8 mpv VO sub-points).
revert.log entries 1-5 capture all package + per-user state
mutations from this turn (measurement tools, openbox, XFCE +
xfwm4-no-comp pre-seed, firefox + AUR xtrace, XFCE rotation
+ touchscreen mapping); single SSH-driveable revert chain
returns ohm to its pre-campaign 1169-package state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 11:14:46 +00:00
parent 5d34a957ee
commit d2e11be430
30 changed files with 13176 additions and 35 deletions
+32 -15
View File
@@ -52,21 +52,38 @@ inventory and baseline-anchor work below.
sessions. Operator action: `pacman -S` a non-compositing WM
(recommend openbox) and create/switch to its SDDM session
before without-KWin cells can run.
- [ ] **NEW: Browser X11-overlay-path inventory.** Per
`phase0_findings.md` § "Open questions": determine whether
Brave 147 ozone-x11, chromium-fourier 149 ozone-x11, and
Firefox X11 backends actually request hardware-overlay
presentation for windowed video, or whether they always
internally composite to RGB. Browser-specific source-grep
+ chrome trace inspection.
- [ ] **NEW: Add mpv as a reference X11-overlay client.**
mpv with `--vo=xv` or `--vo=gpu --gpu-context=x11` is a
known-good X11 hardware-overlay path. Adding mpv to the
matrix as a 4th client provides "is the X11 hardware-overlay
path even reachable on this hardware" baseline, separate
from "do browsers use it." If mpv hits Plane 39 NV12 cleanly
but browsers don't, the answer is "X11 path is fast, but
the browsers don't take advantage of it."
- [x] **Browser X11-overlay-path inventory.** Captured
2026-05-03 in
`phase0_evidence/browser_overlay_inventory_2026-05-03.md`
+ acquired-source subtree
`phase0_evidence/chromium_ozone_x11_2026-05-03/` (Chromium
147 from `chromium-builder` LXD CT on boltzmann via the
his subagent). **Decisive verdict at the source level:**
Chromium ozone-x11 instantiates `StubOverlayManager`
(`ozone_platform_x11.cc:262`) — no overlay candidates ever
promoted; Brave 147 + chromium-fourier 149 inherit this
unchanged (their patches don't touch Ozone). Firefox 150
`WindowSurfaceX11{,Image,SHM}` are RGB-only (zero NV12 /
dmabuf / DRI3 / XPresent references in any X11-surface
file). **No browser in the matrix has a code path to
hand NV12 to the X server for plane scanout.** Only mpv
`--vo=xv` does; mpv `--vo=gpu --gpu-context=x11` is the
same GL-composite shape as the browsers. Implication:
campaign's load-bearing hypothesis is structurally
weakened — the X11-vs-Wayland delta the matrix will
measure for browsers is "browser-side GL composite +
X-scanout-of-RGB" vs "browser-side GL composite +
KWin-RGB-recomposite + scanout". mpv-xv becomes the
matrix's only direct test of the original mechanism.
Runtime-engagement probe deferred to Phase 1 first rep
(design sketched in the inventory doc).
- [x] **mpv added as 4th matrix client** 2026-05-03. Two cells
(full SW, libva/v4l2request) × 2 sessions × 2 VOs (`--vo=xv`
and `--vo=gpu --gpu-context=x11`) = 8 reference data points.
README + `phase0_findings.md` § "Experimental matrix"
updated; matrix grew from 12 → 16 cells (+8 mpv VO sub-points).
mpv 0.41.0 already installed via predecessor (see
`phase0_evidence/x11_inventory_2026-05-03/02_x11_paths.txt`).
- [x] Inventory of X11-side measurement instruments. Captured
2026-05-03 in `phase0_evidence/x11_inventory_2026-05-03/`
(raw `04_measurement_instruments.txt` + summary `inventory.md`