From fa75abc9293365edbd437566a576a3e2fbf991fa Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Fri, 4 Sep 2026 13:16:07 +0000 Subject: [PATCH] handoff: withdraw linkage-batching; 0x3002 class survives refutation Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Jc4pciRArGHfxGGhEbwp5t --- docs/port/HANDOFF.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/port/HANDOFF.md b/docs/port/HANDOFF.md index 5083b961..afe6bb40 100644 --- a/docs/port/HANDOFF.md +++ b/docs/port/HANDOFF.md @@ -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.