render: extract cached M2 animation resource observer
This commit is contained in:
@@ -59,7 +59,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
|
||||
`M03-RND-M2-BUILD-QUEUE-001`,
|
||||
`M03-RND-M2-BUILD-DISPATCH-PLANNER-001`,
|
||||
`M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001`,
|
||||
`M03-RND-M2-STATIC-BUILD-RESOURCE-OBSERVER-001`
|
||||
`M03-RND-M2-STATIC-BUILD-RESOURCE-OBSERVER-001`,
|
||||
`M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-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
|
||||
@@ -283,6 +284,13 @@ Runtime и Editor используют facade; planner/scheduler тестиру
|
||||
Merge `a043c79` passed post-merge observer (`64.202ms`), snapshot, dispatch,
|
||||
Mesh pipeline/cache, prototype cache, shutdown, facade, internal-access `30`,
|
||||
manifest `7/7`, documentation `42`, coordination and checkpoint dry-run `7/7`.
|
||||
M2 cached animation resource observer passed `cases=33 iterations=20000
|
||||
elapsed_ms=61.745` with cached-prototype identity, static/pending/missing
|
||||
lifecycle, stripped case-insensitive allow/deny precedence, exact historical
|
||||
GLB path order and generated GLB animation/primitive/schema safety fixtures.
|
||||
All 56 autonomous headless regressions passed; internal-access remained `30`,
|
||||
documentation covered `43` module specifications and checkpoint dry-run kept
|
||||
all `7/7` plans. Coordination passed with `34` historical expired-claim warnings.
|
||||
M02 terrain-query regression
|
||||
remained green (13 pre-existing expired M00 claim warnings).
|
||||
- Fidelity comparison: all 16 historical operation limits and drain sites were
|
||||
@@ -320,6 +328,11 @@ Runtime и Editor используют facade; planner/scheduler тестиру
|
||||
One build operation now carries the exact normalized path, optional animated
|
||||
prototype, pending-animation state, optional static Mesh and missing outcome in
|
||||
a typed snapshot; releasing it never frees either borrowed engine resource.
|
||||
Cached animated lookup now preserves cached/static/pending priority, empty-
|
||||
allowlist rejection, denylist precedence, normalized/lowercase/basename path
|
||||
order, animation presence, primitive cap, accepted empty/`pivot_prefix_v1`
|
||||
schema rules and request/static-only transitions. Native GryphonRoost remains
|
||||
first and loader-owned, so selection and visible behavior are unchanged.
|
||||
WMO cache-key normalization, positive MODF identity with tile/index fallback
|
||||
and world position/Euler/unclamped-scale transforms are unchanged across
|
||||
lightweight render, cached-scene and live-prototype paths.
|
||||
@@ -438,6 +451,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
|
||||
stateless M2 build dispatch planner and loader resource-observation/action adapter,
|
||||
typed M2 build resource snapshot and loader/dispatch/materializer adapters,
|
||||
static M2 build resource observer and loader/cache/pipeline/snapshot adapters,
|
||||
cached M2 animation resource observer and loader/prototype/pipeline/snapshot
|
||||
adapters plus generated GLB metadata 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
|
||||
@@ -454,18 +469,19 @@ 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 parsing, ResourceLoader,
|
||||
animation request state and Mesh adoption remain in the loader call path; raw
|
||||
negative cache state are separated, but synchronous native parsing/build and
|
||||
Mesh adoption remain in the loader call path; cached animation eligibility/
|
||||
request admission is extracted while terminal ResourceLoader polling remains;
|
||||
raw
|
||||
animated-instance materialization is now separated but remains synchronous
|
||||
main-thread work; asset-backed traversal/visual/leak/p95/p99 evidence is pending;
|
||||
static MultiMesh materialization is also separated but remains synchronous;
|
||||
headless timing does not measure transform upload GPU cost and spatial-cell
|
||||
batching still needs culling/performance evidence; typed M2 pending state is
|
||||
separated and dispatch decisions are explicit, while resource observation/
|
||||
requests, action execution and root cleanup remain in loader; resource state is
|
||||
typed per operation but its producing service is not yet extracted;
|
||||
static lookup/request production is extracted, while animated observation and
|
||||
both ResourceLoader finalize drains remain loader-owned;
|
||||
separated and dispatch decisions are explicit; static and cached-animation
|
||||
observers produce typed per-operation state, while native observation, action
|
||||
execution and root cleanup remain in loader; both ResourceLoader finalize
|
||||
drains 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;
|
||||
|
||||
Reference in New Issue
Block a user