render: extract M2 Mesh resource finalizer

This commit is contained in:
2026-07-18 13:51:08 +04:00
parent c328d86554
commit ddeb708c08
21 changed files with 1147 additions and 150 deletions
+23 -10
View File
@@ -62,7 +62,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
`M03-RND-M2-STATIC-BUILD-RESOURCE-OBSERVER-001`,
`M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-001`,
`M03-RND-M2-NATIVE-ANIMATION-RESOURCE-OBSERVER-001`,
`M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001`
`M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001`,
`M03-RND-M2-MESH-RESOURCE-FINALIZER-001`
- Commands: dedicated scheduler/planner/facade/focus/coordinate/manifest/shutdown
headless verifiers; Godot cold editor parse; coordination, documentation and diff gates.
- Results: scheduler `cases=6 iterations=20000 elapsed_ms=10.216`; planner
@@ -317,6 +318,13 @@ Runtime и Editor используют facade; planner/scheduler тестиру
All 58 autonomous headless regressions passed; internal-access remained `30`,
documentation covered `45` module specifications, coordination retained `34`
historical expired-claim warnings and checkpoint dry-run kept all `7/7` plans.
M2 Mesh resource finalizer passed `cases=31 iterations=1000
elapsed_ms=0.767` with insertion-order status polling, loaded/failed FIFO,
empty-path discard, cached/null/current/stale Mesh outcomes, exact dependency
arguments, raw-read suppression and loader source boundaries. All 59 autonomous
headless regressions passed; internal-access remained `30`, documentation
covered `46` module specifications, coordination retained `34` historical
expired-claim warnings and checkpoint dry-run kept all `7/7` plans.
M02 terrain-query regression
remained green (13 pre-existing expired M00 claim warnings).
- Fidelity comparison: all 16 historical operation limits and drain sites were
@@ -400,14 +408,16 @@ Runtime и Editor используют facade; planner/scheduler тестиру
M2 stale-cache rebuild selection retains the same positive billboard flag/
vertex-count tests, referenced non-identity UV rotation, exclusive
`0.000001` speed threshold, four-stage cap and first-decision-per-path cache
lifetime. Raw loading, material refresh version, M2Builder rebuild/fallback and
Mesh adoption remain loader-owned.
lifetime. Material refresh version and M2Builder rebuild/fallback remain in
the runtime finalizer; static raw loading and Mesh adoption now belong to the
Mesh resource finalizer.
Static M2 mesh pending requests preserve normalized-path dedupe and Dictionary
insertion polling order; loaded/failed transitions preserve completion-order
finalization FIFO and opaque statuses. All three pending-plus-finalize metrics,
both clear sites and shutdown ResourceLoader drain order are unchanged; cache
path selection, I/O, permits and adoption decisions remain loader-owned;
missing outcomes now belong to the prototype cache state.
both clear sites and shutdown ResourceLoader drain order are unchanged. Cache
path selection/request admission and permits remain loader-owned; terminal
I/O and Mesh/missing adoption belong to the Mesh resource finalizer, with
missing outcomes retained by prototype cache state.
Animated M2 pending requests preserve normalized-path dedupe and Dictionary
insertion polling order; loaded/failed transitions preserve completion-order
finalization FIFO and opaque statuses. All three pending-plus-finalize metrics,
@@ -489,6 +499,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
adapters plus synthetic lifecycle and exact-dependency regression fixtures,
cached M2 animation resource finalizer and loader/pipeline/scene-finalizer/
prototype-cache adapters plus synthetic terminal-I/O regression fixtures,
static M2 Mesh resource finalizer and loader/pipeline/extractor/runtime-finalizer/
raw-repository/cache adapters plus synthetic terminal-I/O regression fixtures,
expanded facade/internal-access/coordinate verifiers; work-package claims and this evidence.
- Remaining risks: worker concurrency and stale-result validation remain
streamer-owned; cancellation stops new permits but does not interrupt
@@ -505,8 +517,9 @@ Runtime и Editor используют facade; planner/scheduler тестиру
culling-driven spatial-cell grouping; M2 rebuild classification and static
request/finalize bookkeeping, prepared Mesh cache ownership and first-Mesh
traversal plus refresh/rebuild/fallback, raw native M2 I/O and prototype/
negative cache state are separated, but synchronous native parsing/build and
Mesh adoption remain in the loader call path; cached animation eligibility/
negative cache state are separated; static Mesh terminal polling/adoption is
also separated, but synchronous native parsing/build remains in its
main-thread service call path; cached animation eligibility/
request admission is extracted while terminal ResourceLoader polling remains;
raw
animated-instance materialization is now separated but remains synchronous
@@ -518,8 +531,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
batching still needs culling/performance evidence; typed M2 pending state is
separated and dispatch decisions are explicit; static and cached-animation
observers produce typed per-operation state, including native observation;
animation terminal ResourceLoader drain is extracted, while action execution,
material-prototype lookup, root cleanup and static Mesh finalize drain remain loader-owned;
animation and static Mesh terminal ResourceLoader drains are extracted, while
action execution, material-prototype lookup and root cleanup remain loader-owned;
WMO ResourceLoader/FileAccess I/O, live fallback and group materialization
remain in the loader;
asset-backed WMO placement/portal/material/leak/p95/p99 evidence remains pending;