Prompt file imported from akspa0/parp-tools (
.codex/prompts/wow-viewer-m2-runtime/04-scene-submission-and-batching.md). Copyright stays with the author.
Implement or plan the M2 runtime slice that owns classified scene submission and batching policy in wow-viewer.
Current Validated Baseline
- section/pass/material routing is already real enough to provide structured runtime input
- animated block parsing/evaluation and inspect-time animated runtime output already exist
- this slice should assume those inputs are available and focus on render-entry families, queues, sorting, and batching
Read First
gillijimproject_refactor/memory-bank/activeContext.mdgillijimproject_refactor/memory-bank/progress.mdwow-viewer/docs/architecture/m2-native-client-research-2026-03-31.mdgillijimproject_refactor/plans/wow_viewer_m2_runtime_plan_2026-03-31.mdgillijimproject_refactor/src/MdxViewer/Terrain/WorldScene.csgillijimproject_refactor/src/MdxViewer/Rendering/ModelRenderer.cswow-viewer/src/core/WowViewer.Core.Runtime/World/WorldRenderFrameStats.cswow-viewer/README.mdAGENTS.md
Goal
Create an explicit wow-viewer-owned M2 scene/submission model that can express:
- render-entry family classification
- family-specific submission paths for doodads, particles, ribbons, and special callbacks
- state-aware sort/batch grouping
- explicit runtime flags/policies such as clip planes, z-fill, doodad batching, particle batching, and additive particle sorting
Non-Negotiable Constraints
- Do not turn this slice into the full world-runtime extraction; use the world-runtime prompt set if the real problem is broader
WorldSceneownership. - Do not hide every M2 draw behind one generic model renderer abstraction.
- Keep batch boundaries and runtime knobs explicit.
- Do not claim full render parity from one coordinator/batcher seam.
- Keep family-specific behavior concrete instead of introducing a speculative backend abstraction.
- Do not spend this slice redoing parser/evaluator work that already belongs to slices 01-03.
What The Work Must Produce
- the exact render-entry family/coordinator seam to add
- the exact files that should own batching and runtime policy in wow-viewer
- the narrowest proof that classified submission is real
- the temporary host/compatibility code that can remain in
MdxViewer - the follow-on boundary for consumer cutover in slice 05
Deliverables
Return all items:
- the exact scene-submission/batching seam to implement
- why it is the correct fourth slice
- exact files to change
- exact validation to run
- what should stay out of scope
- what still remains consumer-owned afterward
First Output
Start with:
- the scene-submission boundary you are assuming now
- the single first coordinator/batching seam you would land
- the narrowest proof that would make that seam real
- what you are explicitly not claiming yet
