docs: the splash .prm measured -- and its paint order is a sequence, not depth

ui-prm-primitives recorded that where a .prm paints on a screen without a
measured order is unsolved. For the developer splash it is now measured.

Every frame opens with two full-screen draws before any sprite. The
second is untextured in all 212 frames with a constant vertex colour of
FF000000 -- opaque black -- matching palogo_eff0.prm's declaration
exactly: kind 0x10, pivot (640,360) -> 1280x720, one keyframe, a = 255.
So the splash backdrop is an opaque black full-screen quad from the
bundle itself, painted behind every sprite, which is why a splash render
needs --black rather than the default backdrop.

Not a general rule, and said so: the measured main-menu order puts
pteff02.prm at position 4 and pteff00.prm LAST, the latter being the
screen-transition fade.

And a correction to an existing row. measured_paint_order returns
[0, 2, 4, 6, 1, 3, 5] for the splash, described as "the .prm, then all
three glows, then the three logos". But the glows and the logos never
appear in the same frame -- 0 overlapping frames in 235 -- and two
elements that never co-occur have no observable relative depth. Between
those halves the vector records the order they were SEEN IN, not a
front-to-back relationship.

That does not make the render wrong, and element 0 is a real depth
observation since the .prm co-occurs with everything. But the type of the
claim matters: reading the vector as depth invites compositing all seven
elements at once, which is exactly what does not reproduce the screen.

METHOD: two things that never co-occur have no observable relative order;
when recording an order, note which pairs actually appeared together.
This commit is contained in:
Sylpheed RE agent
2026-08-29 05:06:37 +00:00
parent 7988f52ce7
commit 2532c056be
4 changed files with 80 additions and 0 deletions

View File

@@ -386,6 +386,21 @@ authored version can be deleted.
that settles, and it is not a timeline. that settles, and it is not a timeline.
[`structures/ui-group-start-time.md`](../re/structures/ui-group-start-time.md) [`structures/ui-group-start-time.md`](../re/structures/ui-group-start-time.md)
* ✅ **The splash's backdrop is an opaque black `.prm` from the bundle, painted
first.** Measured: every frame opens with the clear and then an **untextured
1280×720 quad, vertex colour `FF000000` in all 212 frames** — matching
`palogo_eff0.prm`'s declaration (`kind 0x10`, pivot 640×360, one keyframe,
`a=255`). That is why a splash render needs `--black` rather than the default
backdrop. ⚠️ Not a general rule: the main menu's measured order puts one `.prm`
at position 4 and the other **last** (the transition fade).
⚠️ **And the splash's recorded paint order `[0,2,4,6,1,3,5]` is a temporal
sequence, not a depth order.** Its glows and logos never share a frame, so
their relative depth was never observable — the vector records the order they
were *seen in*. Element 0 (the `.prm`) is a genuine depth observation because it
co-occurs with everything. **Do not read the rest as depth and composite all
seven at once** — that is precisely what fails to reproduce the screen.
[`structures/ui-prm-primitives.md`](../re/structures/ui-prm-primitives.md)
* **Menu order is geometric.** Buttons sorted top-to-bottom by resting Y. This is * **Menu order is geometric.** Buttons sorted top-to-bottom by resting Y. This is
✅ correct for a vertical menu and is **not** a decoded neighbour graph — the ✅ correct for a vertical menu and is **not** a decoded neighbour graph — the
disc's real navigation structure is unknown, and `opt ` is *not* a focus link disc's real navigation structure is unknown, and `opt ` is *not* a focus link

View File

@@ -826,3 +826,11 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
four-entry enumeration showed none exists, and the question closed statically. four-entry enumeration showed none exists, and the question closed statically.
A hypothesis that predicts an artefact can be killed by looking for the A hypothesis that predicts an artefact can be killed by looking for the
artefact, which is often far cheaper than measuring the behaviour. artefact, which is often far cheaper than measuring the behaviour.
* **Two things that never co-occur have no observable relative order.** A
"measured paint order" recorded from a running game looks like depth
information throughout, but between elements that never share a frame it can
only be the sequence they were *seen in*. The splash's vector mixes both kinds
— element 0 is real depth (it co-occurs with everything), the glow/logo split
is not — and the difference matters, because reading it as depth invites
compositing every element at once. When recording an order, note which pairs
actually appeared together.

View File

@@ -595,3 +595,9 @@ neighbourhood, not just the line.
glows — so whichever was active, a subset of its elements was drawn at a time. glows — so whichever was active, a subset of its elements was drawn at a time.
Selective activation is reinstated on evidence. Selective activation is reinstated on evidence.
[`ui-group-start-time.md`](structures/ui-group-start-time.md) [`ui-group-start-time.md`](structures/ui-group-start-time.md)
* "the splash's `measured_paint_order` records a front-to-back depth order" →
**mis-typed.** Its glows and logos never share a frame (0 overlap in 235), so
their relative depth was never observable — between those halves the vector
records the *temporal* order they were seen in. Element 0 (`palogo_eff0.prm`)
is a genuine depth observation, because it co-occurs with everything.
[`ui-prm-primitives.md`](structures/ui-prm-primitives.md)

View File

@@ -174,3 +174,54 @@ have never been measured, so they are not in the table.
***The 8 non-full-screen ones**, including two with a zero dimension. ***The 8 non-full-screen ones**, including two with a zero dimension.
* 🟡 `kind = 0x3010` (38 elements) is `0x10` plus `0x3000`, the button-record * 🟡 `kind = 0x3010` (38 elements) is `0x10` plus `0x3000`, the button-record
bits — a primitive that is part of a button. Unexamined. bits — a primitive that is part of a button. Unexamined.
---
## ✅ Measured on the splash: the `.prm` paints FIRST, full-screen, opaque black
**2026-08-29.** This page recorded that where a `.prm` paints "on a screen
without a measured order is unsolved". For the developer splash it is now
measured, from the 235-frame draw capture.
Every frame begins with two full-screen draws before any sprite:
```
f120: [1280x720] [1280x720] [499x241] …
^clear ^this one
```
The second is **untextured** in all **212** frames, with a constant vertex colour
of **`FF000000`** — opaque black. That matches `palogo_eff0.prm`'s declaration
exactly:
| declared | observed |
|---|---|
| `kind = 0x10` (the primitive marker) | untextured draw |
| pivot (640,360) → **1280×720** | 1280×720 quad |
| **one** keyframe, `a = 255` | constant across 212 frames |
| — | vertex colour `FF000000` |
So the splash's backdrop is an **opaque black full-screen quad from the bundle
itself**, painted behind every sprite — not a clear colour, which is why our
splash renders need `--black` to match.
⚠️ **Not a general rule.** The measured *main menu* order puts `pteff02.prm` at
position 4 and `pteff00.prm` **last** — that one is the screen-transition fade.
A `.prm` paints where its screen's order says; the splash's happens to be first.
## ⚠️ And the splash's "measured paint order" is a SEQUENCE, not a depth order
`measured_paint_order` returns `[0, 2, 4, 6, 1, 3, 5]` for the splash, commented
*"the full-screen `.prm`, then all three glows, then the three logos"*.
The draw capture shows the glows and the logos **never appear in the same frame**
— 0 overlapping frames in 235 ([group start time](ui-group-start-time.md)). Two
elements that never co-occur have **no observable relative depth**. What that
vector records between its glow half and its logo half is the *temporal* order
they were seen in, not a front-to-back relationship.
🟡 This does not make the render wrong — compositing them in that order is
harmless, and the ✅ for element 0 (the `.prm` first) *is* a real depth
observation, since it co-occurs with everything. But the type of the claim
matters for a consumer: **treating the vector as depth invites compositing all
seven elements at once, which is exactly what does not reproduce the screen.**