D424 - The flip queue is a counter that completes on submit, and it unblocked the whole suite

measured - 2026-08-31

With the sandbox and the payload shape sorted, the current obSCEne ran to 29 of 38 sections and then faulted in the video section: sceVideoOutSubmitFlip, sceVideoOutSetFlipRate and sceVideoOutGetFlipStatus were declared but not in video::implementations(), so a flip was submitted, its completion polled, and the placeholder read into a fault - the classic "renders one frame then freezes" the crate's own header warns about.

The model is the honest one for a headless run: a flip completes the instant it is submitted. There is no scanout and no vertical blank here, so nothing picks a queued flip up later; the port's completed-flip count advances on submit, and GetFlipStatus writes that count at offset 0 - the one field with a citable position (obSCEne assembles a uint64 from status[0..8], and the count is the documented head of SceVideoOutFlipStatus). The rest of the structure is left unwritten: no lawful source here gives its offsets, and a guessed layout is the invention principle 3 forbids. A guest polling for the count to move past what it was sees it move, and proceeds.

What it bought, measured on the spot: the run went from 158 unique tests over 29 sections to the whole 543 over all 38, reaching OBS|end - the first complete obSCEne run inside orbistoun. That is the thing the stale corpus (D419), the sandbox (D422/D423) and the payload shape were all in the way of: a full suite that a hardware report can now be diffed against test-for-test. Under the default stub-everything resolver orbistoun answers 515 pass / 10 partial / 4 fail / 14 skip; those 4 fails and 10 partials are the real fidelity gaps, now legible because the run finishes.

SubmitFlip advancing the count immediately is the assumption most worth flagging: a title that submits many flips fast and reads a pending count (a field this does not model) would see a different shape. Nothing measured does yet; when one does, the pending count is where this grows.