Stage 4 Capture Schema¶
Stage 4 нельзя закрывать набором ad-hoc логов. Нужна схема, по которой animation, FX и rendered frame captures сравниваются между Part 1, Part 2 и современной реализацией.
Goals¶
- сделать captures пригодными для автоматического diff;
- не хранить host-specific пути, временные каталоги и нестабильные handles;
- связывать frame traces, command captures и pixel artifacts общим identity.
Common envelope¶
{
"schema_version": "fparkan-stage4-capture-v1",
"capture_kind": "frame-trace | animation-pose | fx-lifecycle | render-frame",
"game_part": "part1 | part2",
"mission": "MISSIONS/.../data.tma",
"frame_id": 123,
"tick": 123,
"module_hashes": {
"World3D.dll": "sha256...",
"Terrain.dll": "sha256...",
"AniMesh.dll": "sha256...",
"Effect.dll": "sha256..."
},
"tool_version": "codex/manual/fixture version",
"notes": []
}
Capture kinds¶
frame-trace¶
Используется для порядка фаз и внешних вызовов.
Required fields:
events: ordered list of{ phase, symbol, sequence, object_id?, fx_id?, camera_id? }queue_counters: deferred operations, visible objects, emitted FX, UI callbacksrng_state: optional, if recoverable
animation-pose¶
Используется для x87 / portable sampler parity.
Required fields:
clip_idnode_indexsample_timenumeric_profiletranslationrotation_quatscalematrix_hash
fx-lifecycle¶
Используется для create/update/emit/stop parity.
Required fields:
fx_idinstance_idtimeopcode_eventsrng_callsresource_refsemissions
render-frame¶
Связывает backend-neutral snapshot с live Vulkan output.
Required fields:
cameravisible_object_idsdrawspipeline_keysresource_idsvalidationpixel_artifact
Stability rules¶
- Не записывать абсолютные host paths.
- Не записывать raw pointer addresses как identity fields.
frame_idдолжен совпадать между trace, command capture и pixel artifact.- GPU-specific transient handles допустимы только внутри diagnostics fields и не участвуют в canonical equality.
- Любой capture without
module_hashesсчитается informational, а не acceptance-grade.
Acceptance mapping¶
S4-TRACE-*rows читаютframe-traceS4-ANIM-*rows читаютanimation-poseS4-FX-*rows читаютfx-lifecycleS4-VK-*иS4-PIXEL-*rows читаютrender-frame
Эта схема intentionally минимальна. Новые поля можно добавлять, но нельзя
ломать перечисленные identity and parity anchors без смены schema_version.