handoff: withdraw linkage-batching; 0x3002 class survives refutation

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jc4pciRArGHfxGGhEbwp5t
This commit is contained in:
sylph-decoder
2026-09-04 13:16:07 +00:00
parent 9d695debae
commit fa75abc929

View File

@@ -6422,3 +6422,30 @@ that is worth checking.
draw: they are **linked**, not merely on the same texture page. Testable on the
`pgloading` chain; I have no loading-screen capture, so it is named rather than
claimed.
## 🔴 Withdraw the linkage-batching idea — it is blend state (`9d695de`)
`docs/re/batching-is-blend-not-linkage.md`. I suggested last message that the two
sweeps share one draw because they are **linked**, and asked you to watch for a
loading-screen capture to test it. **Withdrawn — don't spend a capture on it.**
A linked pair was already in every capture (`ptbtn00 → ptbtn00f`), and it is
**never** batched:
| | `ptbtn00f` drawn alone | batched |
|---|---|---|
| `f6b` | 899 draws | **0** |
| `f6` | 1441 draws | **0** |
The constraint is **blend state**: `ptbtn00f` is additive, its linked partner
alpha-over, and two blend states cannot share a draw. The sweeps batch because
both are additive on one page.
⚠️ Necessary, not sufficient — `8154`/alpha-over appears as *two separate* draws
in one frame (2108 of them in `f6b`). This removes a wrong cause; it is not a
batching rule.
**Your `0x3002`/`0x3003` menu-item reading survived a refutation attempt.**
Disc-wide: 970 elements, 91 name-stems, **958 (98.8 %) contain "btn"**. The only
12 exceptions are `psselect_slot` and `psselect_slot_blank` — save-slot rows,
which are menu items. The class is uniformly menu-row-shaped.