re: scored against the runtime, relaxing the cap is monotone -- the regressions are collisions

Against the 46 capture-named Stage_S02 buffers: 0.28 gives 29 exact anchors,
0.42 gives 31 with 0 lost and 2 fewer unclaimed. The 18 cross-container
consistency regressions are a different phenomenon: the decisive one is the
32-vertex buffer at 0x24ce5f4, unclaimed at 0.28 and claimed by BOTH f303_body_l
and e302_barrel_l at 0.42 -- a collision from greedy per-resource selection, not
a mis-placement. So the cap and the selection must change together.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 03:06:15 +00:00
parent b58f42e46d
commit 1815490d01

View File

@@ -813,6 +813,35 @@ ships' LODs (`f105_bdy_01_m`, `f105_bdy_03_m`, `e106_wep_02_01_l`, …). Either
break model genuinely mirrors those buffers or our decoder is handing a whole
address range to one composite. Not resolved here.
**9. The cap, scored against ground truth — and what it reveals about the
selection.** Re-running the sweep against the 46 capture-named `Stage_S02`
buffers (the oracle section 7 lacked):
| cap | exact anchors | claimed by several | unclaimed | vs 0.28 |
|---|---|---|---|---|
| **0.28** | 29 | 4 | 12 | — |
| 0.35 | 30 | 3 | 12 | +1 exact, 0 lost |
| 0.42 | **31** | 4 | **10** | +2 exact, **0 lost** |
| 0.45 | 31 | 4 | 10 | +2 exact, 0 lost |
So against the runtime, relaxing is **monotone**: two more buffers get exactly
the right resource and **no previously-correct anchor is lost**. That is the
opposite reading from the cross-container consistency metric, which showed 18
regressions — and the two measures can be reconciled by looking at what those 18
actually are.
Of the 18, only two touch a drawn buffer, and one is decisive: the 32-vertex
buffer at `0x24ce5f4` is **unclaimed at 0.28** and at 0.42 is claimed by **both**
`f303_body_l` and `e302_barrel_l`, two 32-vertex resources. That is not a
mis-placement — it is a **collision**. The looser cap admits the true block *and*
lets a second resource grab it, because selection is per-resource and greedy.
**Conclusion: the cap and the selection have to move together.** Relaxing alone
buys real anchors and pays in collisions; distinct assignment alone (section 5)
fixes the twins but cannot reach blocks the validator still rejects. The pair of
changes is the fix; either alone is a half-measure, which is why neither has been
made yet.
Not settled: `e106_brg_01_b_02``e106_brg_01_l` (51 verts). A second 51-vertex
`vbase` exists in the logs but is **not** from this container, and the container
holds three near-identical 51-vertex runs, so the pair has no oracle yet.