test: replace render leaf source freezes

This commit is contained in:
Erik 2026-08-18 16:12:50 +02:00
parent 3c492aedc2
commit 5e56045077
3 changed files with 378 additions and 214 deletions

View file

@ -1301,3 +1301,43 @@ Verification:
attributed methods, and reduces direct/total source readers from 44/70 to
41/64. The remaining 64 reconcile to the 22 approved retained
policies/contracts and 42 staged replacements.
## Batch AB render-leaf and frame-handoff source-freeze replacement
Batch AB converts all nine approved `GameWindowRenderLeafCompositionTests`
source readers. No product source changes and no test is removed.
Private presentation, resource preparation, world/private/diagnostic routing,
GPU measurement, and immutable outcome construction now follow compiled typed
calls in their production order. The portal-tunnel check follows the compiled
session transfer/bind/publication path, both local teleport factory targets,
the session-before-frame phase references in `OnLoad`, and the exact frame-root
borrower construction order. `OnRender` now proves its single
`GameFrameGraphSlot.Render` handoff and absence of the five displaced leaf
field reads directly from the built method.
The broad legacy-owner blacklist is narrowed to what it actually protects:
reflected `GameWindow` fields and methods reject the displaced owners, while
compiled composition metadata positively locates paperdoll, frame-resource,
weather, private-presentation, orchestrator, frame-pacing, and mouse-capture
ownership behind their focused types. Shutdown ordering uses the compiled
operation/stage labels. Terrain diagnostics are constructed with the scene
executor but not driven directly by the frame root.
The optional paperdoll contract is stronger than the old source-expression
match: compiled branch destinations prove that either a missing viewport or a
missing inventory frame jumps past `PaperdollFramePresenter` construction.
`CompiledCallGraph` gained a reusable branch-target reader for this kind of
optional-dependency guard.
Verification:
- all nine focused render-leaf methods pass;
- the complete locked Release build covers all 44 projects with zero warnings
and zero errors;
- the no-retry complete hermetic Release gate remains 14,346/14,346 with zero
skips or failures across all 12 test assemblies; and
- the regenerated 1,254-file inventory parses every file, remains at 11,414
attributed methods, and reduces direct/total source readers from 41/64 to
39/55. The remaining 55 reconcile to the 22 approved retained
policies/contracts and 33 staged replacements.