diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 39179112..30d9ef1a 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -776,8 +776,16 @@ shader, all screen-space, none 3D — against a known-good 2.9 MB capture from a earlier session. The 8 000-draw budget was not the limit and the scene *was* rendering. ⚠️ The "cache refuted" claim above is **overstated**: this run used the same complete cache as `tut4` and got 0 crashes vs 11 497, so variance -dominates. **Next (static, no emulator):** compare this capture's shape against -the known-good one to find why the 3D draws never reach `CaptureShipDrawForRE`. 🔴 The resume-refused lead (1 663 on one +dominates. 🔴 **Corrected:** nothing is broken. Ship +geometry is `stride=24 prim=4` with a large vcount (`vcount=10891` for a real +one); this capture has one `prim=4 vcount=6` quad and the 2.9 MB "known-good" +file has **no `prim=4` at all** — it is a **UI** capture (1 303 of 1 582 draws +are `stride=24 prim=13`, the UI sprite shader). The earlier "3D draws" test +counted UI sprite coordinates as 3D. The capture recorded what was on screen, and +the tutorial's opening has **no capital ship**. **What remains** is what the +capture doc always said: play into a real mission and frame a ship side-on — +gameplay driving, not a menu step, and the original was taken on HW Vulkan where +this container has lavapipe. 🔴 The resume-refused lead (1 663 on one thread) is **REFUTED**: that thread did execute, and `KeWaitForSingleObject` / `NtWaitForSingleObjectEx` are `kHighFrequency`, which is unlogged unless `--log_high_frequency_kernel_calls=true` — so a parked thread is invisible and diff --git a/docs/re/title-crash-stl-tree.md b/docs/re/title-crash-stl-tree.md index f33a88ea..fd6baddb 100644 --- a/docs/re/title-crash-stl-tree.md +++ b/docs/re/title-crash-stl-tree.md @@ -441,10 +441,42 @@ So the hook fires, the frame has 3D in it, and none of the 3D reaches the capture. For comparison, the capture this project already has from an earlier session is **2.9 MB**. +### 🔴 Correction: nothing is broken — there was no ship to capture + +The section above frames the empty capture as "the 3D draws never reach +`CaptureShipDrawForRE`". **That framing is wrong**, and the static comparison it +proposed is what showed it. + +**The discriminator for ship geometry is `stride=24 prim=4` with a large +vcount** — `xbg7-mesh.md` records a real one as +`stride=24 vcount=10891 indices=18 prim=4`. Not "positions outside the screen +rectangle", which is what was used above and is a bad test: a UI sprite placed at +(137,308) passes it. + +By the correct test: + +| capture | `prim=4` draws | verdict | +|---|---|---| +| this run, 329 KB | one, `vcount=6` (a full-screen quad) | no ship geometry | +| `uicap`, **2.9 MB** | **none at all** | no ship geometry either | + +So the 2–3 MB files this was being compared against are **UI captures**, not ship +captures: 1 303 of their 1 582 draws are `stride=24 prim=13`, which +[`ui-quad-class-foothold.md`](ui-quad-class-foothold.md) and +[`ui-title-paint-order-capture.md`](ui-title-paint-order-capture.md) both identify +as the UI sprite shader. The "1 300 3D draws" they appeared to contain were UI +sprite coordinates counted by the bad test. + +The capture recorded exactly what was on screen. The tutorial's opening is an +empty starfield, the player's own ship and a HUD — **there is no capital ship in +it**. [`ship-placement-runtime-capture.md`](ship-placement-runtime-capture.md) +states the procedure plainly and always did: *"Play into the mission, frame the +ship side-on, press F10."* + ### Next -Find why. `CaptureShipDrawForRE` is called from one place in -`command_processor.cc`; the question is whether the 3D scene's draws go through -that path at all in this build, or whether they are being deduped away. Comparing -the shape of this file against the known-good 2.9 MB one is the cheap first step, -and does not need the emulator. +Not a code question. A second capital-ship capture needs a **capital ship on +screen**, which means driving real gameplay in a real mission (`STAGE01` via LOAD +GAME) far enough to frame one — a much larger ask than a menu step, and the +original capture was taken interactively on **HW Vulkan** where this container +has lavapipe. That is the honest size of what remains.