port: transcribe the sweeps' additive blend, and re-run my own menu-looping evidence with it
ui-blend-mode-measured.md names both rotated sweep strips additive in the same row as the frames. Those are ptloop01/ptloop02 here, now in additive_elements for both measured screens. It changes nothing visible: on the menus the port runs the leaf group once and parks it off-screen, and suppressing both sprites at leaf-time 100, 200 and 300 changes 0 pixels each time. It is in the file because it is measured. Refutation attempt on their identification, and it survives with a number of mine. The automatic matcher reports "no match" for those two draws; they rest on one control reproducing heights 1134 and 1303. Rendering the menu at a phase where the sweeps are on screen and suppressing them gives a footprint 884 px wide against their 889.6 -- 0.6 % apart, derived without using their number. The heights differ as they should: my bbox is clipped by the screen, theirs is the full quad extent. The blend was a confound in my own earlier evidence. loop_leaf_why scoped looping to the title partly on a phase sweep of mine that drew the sweeps ALPHA-OVER, so an on-screen sweep was composited wrongly and then scored against the capture. Re- run with additive and looping enabled for the menu, through a scratch export root so the repo was untouched: parked 0.0208 %, phase 150 on-screen 0.0851 % with the sweeps painting 58 027 px, other on-screen phases 0.086-0.122 %. The conclusion held and got stronger -- 3x with the wrong blend, 4-6x with the right one -- so the scoping stays and the correction is what is recorded. Still one capture, and best-match is still weak evidence for an absence. And a reading of the new log that I did not make: it shows both sweeps SUBMITTED on the main menu in every frame group, which is not evidence they animate there. A quad parked off-screen at x=1521 is still a draw call. The log settles the blend and not the visibility, and both questions arrived in the same artefact.
This commit is contained in:
@@ -100,18 +100,55 @@
|
||||
"match' is a weak instrument for an absence. Two weak signals in opposite",
|
||||
"directions is a reason to scope, not to pick.",
|
||||
"",
|
||||
"What settles the menu: a direct capture of it, which the Decoder has offered."
|
||||
"What settles the menu: a direct capture of it, which the Decoder has offered.",
|
||||
"",
|
||||
"🔴 RE-MEASURED 2026-08-31, BECAUSE THE EVIDENCE ABOVE WAS TAKEN WITH THE WRONG",
|
||||
"BLEND. The phase sweep that produced '0.061 % off-screen, 0.183 % mid-screen'",
|
||||
"drew the sweeps ALPHA-OVER. They are additive -- measured off the running game",
|
||||
"the same day (`additive_elements`) -- so an on-screen sweep composited the wrong",
|
||||
"way was being scored against the capture, and 'mid-screen is worse' could have",
|
||||
"been an artefact of my own compositing rather than of the sweeps being absent.",
|
||||
"",
|
||||
"Re-run with additive sweeps and looping switched on for the menu, against",
|
||||
"`live-main-menu.png`:",
|
||||
"",
|
||||
" phase 0 0.0208 % sweeps paint 0 px -- off screen",
|
||||
" phase 150 0.0851 % sweeps paint 58 027 px, bbox 884x720",
|
||||
" phase 300 0.0205 % sweeps paint 0 px -- off screen",
|
||||
" phase 75 / 225 / 375 / 450 / 525: 0.086..0.122 %",
|
||||
" run-once-and-park, which is what the port ships: 0.0208 %",
|
||||
"",
|
||||
"✅ THE CONCLUSION HELD AND GOT STRONGER. The ratio was 3x with the wrong blend",
|
||||
"and is 4-6x with the right one, and the absolute numbers improved everywhere.",
|
||||
"The capture still matches best with the sweeps NOT VISIBLE. So this entry stays",
|
||||
"scoped to the title, and the correction is recorded rather than the scoping",
|
||||
"changed.",
|
||||
"",
|
||||
"⚠️ It is still one capture and 'best match' is still a weak instrument for an",
|
||||
"absence -- that caveat is not repaired by fixing the blend, only cleared of one",
|
||||
"confound.",
|
||||
"",
|
||||
"📌 AND THE NEW DRAW LOG DOES NOT SETTLE IT EITHER, though it looks like it",
|
||||
"should. `docs/re/captures/ui-draws/blend-main-menu-2026-08-31.log` shows both",
|
||||
"sweep strips SUBMITTED on the main menu, in every frame group. That is not",
|
||||
"evidence they animate there: a quad parked off-screen at x=1521 is still a draw",
|
||||
"call. A DRAW IS NOT A VISIBLE ELEMENT, and reading that log as 'the sweeps run",
|
||||
"on the menu' would have contradicted the pixels for no reason."
|
||||
],
|
||||
"loop_leaf_kind": "measured",
|
||||
"additive_elements": {
|
||||
"main_menu": [
|
||||
"pteff12",
|
||||
"ptframe1",
|
||||
"ptframe2"
|
||||
"ptframe2",
|
||||
"ptloop01",
|
||||
"ptloop02"
|
||||
],
|
||||
"extras": [
|
||||
"pteff20",
|
||||
"ptframe3"
|
||||
"ptframe3",
|
||||
"ptloop01",
|
||||
"ptloop02"
|
||||
]
|
||||
},
|
||||
"additive_elements_why": [
|
||||
@@ -136,6 +173,21 @@
|
||||
"menu -- 12 draws additive and 18 alpha-over. The frames and `ptbase` share a",
|
||||
"shader. Only the blend register differs.",
|
||||
"",
|
||||
"`ptloop01` and `ptloop02` are the two ROTATED SWEEP STRIPS, added 2026-08-31.",
|
||||
"`docs/re/structures/ui-blend-mode-measured.md`'s summary table names them",
|
||||
"additive in the same row as the frames, and their control 1 identifies them: the",
|
||||
"NDC->pixel conversion reproduces 1134 and 1303 px, two heights measured by a",
|
||||
"different tool in a different session (`data/title-sweep-drawn-at-rest.txt`), on",
|
||||
"BOTH screens. So this is an identification with an independent check behind it,",
|
||||
"not a name match -- the automatic matcher reports 'no match' for these two.",
|
||||
"",
|
||||
"⚠️ AND IT CHANGES NOTHING VISIBLE TODAY, which is why it is worth writing down.",
|
||||
"On the menus the port runs the leaf group ONCE and parks it off-screen, so these",
|
||||
"two paint no pixels at any pose the port can be put in (checked: suppressing",
|
||||
"both sprites at leaf-time 100, 200 and 300 changes 0 pixels). The entry is here",
|
||||
"because it is measured, not because it does anything. What it DOES do is fix the",
|
||||
"instrument for the menu-looping question -- see `loop_leaf_on_screens_why`.",
|
||||
"",
|
||||
"⚠️ EVERY ID HERE IS A MEASURED DRAW, and the list stops where the measurement",
|
||||
"does. THREE THINGS ARE NOT IN IT:",
|
||||
"",
|
||||
|
||||
@@ -9,7 +9,7 @@ dies, which is what this file is for.
|
||||
|
||||
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
|
||||
|
||||
332 sections. Search this before re-deriving anything.
|
||||
333 sections. Search this before re-deriving anything.
|
||||
|
||||
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
|
||||
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
|
||||
@@ -343,6 +343,7 @@ dies, which is what this file is for.
|
||||
* [Refutation attempt: the Decoder's kind-0 claim survives, checked from my own data](#refutation-attempt-the-decoders-kind-0-claim-survives-checked-from-my-own-data)
|
||||
* [The blend is measured, so the port draws it — main_menu 13.21 → 10.67](#the-blend-is-measured-so-the-port-draws-it--main_menu-1321--1067)
|
||||
* [🔴 Refuted: my "no fully-opaque pixel" sharpener](#refuted-my-no-fully-opaque-pixel-sharpener)
|
||||
* [The sweeps: a measured blend, a corroborated identification, and a confound in my own evidence](#the-sweeps-a-measured-blend-a-corroborated-identification-and-a-confound-in-my-own-evidence)
|
||||
|
||||
<!-- /INDEX -->
|
||||
## P0 — the exporter, 2026-08-28
|
||||
@@ -16173,3 +16174,67 @@ survived — the draw path was the right place to look, and it answered — but
|
||||
reason I gave for looking there was wrong. Recording it because the conclusion
|
||||
being vindicated is exactly the circumstance in which a bad supporting argument
|
||||
survives unexamined.
|
||||
|
||||
## The sweeps: a measured blend, a corroborated identification, and a confound in my own evidence
|
||||
|
||||
### Transcribed: both rotated sweep strips are additive
|
||||
|
||||
`ui-blend-mode-measured.md`'s summary table names them additive in the same row as
|
||||
the frames. They are `ptloop01`/`ptloop02` here, now in `additive_elements` for
|
||||
both measured screens.
|
||||
|
||||
⚠️ **It changes nothing visible today.** On the menus the port runs the leaf group
|
||||
once and parks it off-screen, so both paint zero pixels at every pose the port can
|
||||
be put in — checked by suppressing both sprites at leaf-time 100, 200 and 300:
|
||||
**0 px changed each time**. The entry is there because it is measured, not because
|
||||
it does anything. What it *does* do is repair the instrument below.
|
||||
|
||||
### ✅ Refutation attempt on their identification — survives, with a number of mine
|
||||
|
||||
The automatic name matcher reports **"no match"** for those two draws; they are
|
||||
identified only by the Decoder's control, which reproduces heights **1134** and
|
||||
**1303** from a different tool in a different session. A claim resting on one
|
||||
control is worth attacking.
|
||||
|
||||
It survives, and my own geometry corroborates it independently: rendering the menu
|
||||
at a phase where the sweeps are on screen and suppressing them gives a footprint
|
||||
of **884 × 720**, against the log's **889.6** wide — **0.6 % apart**, and I did not
|
||||
use their number to produce mine. The heights differ (720 against 1134) exactly as
|
||||
they should: my bounding box is clipped by the screen, theirs is the untruncated
|
||||
quad extent.
|
||||
|
||||
### 🔴 And the blend was a confound in my *own* prior evidence
|
||||
|
||||
`loop_leaf_why` scoped leaf-looping to the title partly on a measurement of mine:
|
||||
sweeping the phase against `live-main-menu.png`, the port matched best with the
|
||||
sweeps **off-screen (0.061 %)** and three times worse mid-screen (0.183 %).
|
||||
|
||||
**That sweep drew them alpha-over.** They are additive. So an on-screen sweep was
|
||||
being composited the wrong way and scored against the capture — "mid-screen is
|
||||
worse" could have been an artefact of my own renderer rather than of the sweeps
|
||||
being absent. Re-run with the correct blend and looping switched on for the menu,
|
||||
through a scratch export root so nothing in the repo changed:
|
||||
|
||||
| | diff vs capture | sweeps |
|
||||
|---|---|---|
|
||||
| phase 0 | **0.0208 %** | 0 px — off screen |
|
||||
| phase 150 | 0.0851 % | **58 027 px**, bbox 884×720 |
|
||||
| phase 300 | **0.0205 %** | 0 px — off screen |
|
||||
| phases 75/225/375/450/525 | 0.086–0.122 % | on screen |
|
||||
| run-once-and-park (what ships) | **0.0208 %** | parked |
|
||||
|
||||
✅ **The conclusion held and strengthened** — the ratio was 3× with the wrong blend
|
||||
and is **4–6×** with the right one. The capture still matches best with the sweeps
|
||||
not visible, so the scoping stays and the *correction* is what got recorded.
|
||||
|
||||
⚠️ Still one capture, and "best match" is still a weak instrument for an absence.
|
||||
Fixing the blend cleared one confound; it did not repair that.
|
||||
|
||||
### 📌 A draw is not a visible element
|
||||
|
||||
The new log shows both sweep strips **submitted on the main menu, in every frame
|
||||
group**. It would be easy — and wrong — to read that as "the sweeps animate on the
|
||||
menu", which is exactly the question `loop_leaf_why` left open and would have
|
||||
contradicted the pixels for no reason. **A quad parked off-screen at x=1521 is
|
||||
still a draw call.** The log settles the *blend*; it does not settle *visibility*,
|
||||
and those two came in the same artefact.
|
||||
|
||||
Reference in New Issue
Block a user