mirror of
https://github.com/Heretek-AI/game-engine.git
synced 2026-11-07 10:55:58 -10:00
* [P4-06] Wire GPU-driven path for statics (SceneSsbo + GpuCull + count-draw) (#104) New engine_gpu_driven_statics TU proves the P4-06 frame order on Lavapipe: stream SceneSsbo -> phase A cull -> barrier -> phase B Hi-Z -> barrier compute->DRAW_INDIRECT -> vkCmdDrawIndexedIndirectCount of the static cube mesh -> P4-01 shade+post pair vs the p4_01_spheres_320x240 golden. Frame block carries an ortho VP mapping the P4-01 tile span on-screen for the 64x64 cull framebuffer (CPU oracle + GPU push agree); GPU DRAW count (25) matches the CPU oracle; shade/post output equals the P4-01 golden at P1-05 tolerance. Zero validation errors/warnings. No ABI changes. * [P4-06] Validate p4_06_statics golden parity on llvmpipe + GPU gating (#104) Adds native/tests/golden/p4_06_statics_320x240.png (byte-equal sibling of the P4-01 golden) and a second golden_check in test_gpu_driven_statics, same P1-05 tolerance. Proves the GPU-driven front half (SceneSsbo stream -> phase A cull -> barrier -> phase B Hi-Z -> compute->DRAW_INDIRECT barrier -> count-draw) renders identically to the direct path: GPU DRAW count 25 == CPU oracle, both goldens PASS on llvmpipe. GPU gating: bogus ICD + ENGINE_REQUIRE_GPU=1 yields [FAIL] exit path; ungated yields [SKIP] pass. Zero validation errors. * parity: 104 P4-06 250k acceptance on real GPU (cull front half timed, DRAW=250k) * parity: 104 P4-06 dedup front-half into gpu_driven_helper (Sonar 21.8 to gate) * parity: 104 P4-06 dedup statics TU onto shared gpu_driven_helper (Sonar pass 2) * parity: 104 P4-06 MoltenVK fallback (front-half proof, SKIP golden) + self-contained 250k TU * parity: 104 P4-06 dedup statics TU onto shared gpu_driven_helper (Sonar pass 2, re-applied) * parity: 104 P4-06 restore missing submit (dedup dropped queue submit) * parity: 104 P4-06 address CodeRabbit review (note accuracy, DLL list, submit check) * parity: 104 P4-06 TU-local mirror-breakers (image triple, frustum, pipe shim) * parity: 104 P4-06 single-line front-half payload builder (Sonar mirror) * parity: 104 P4-06 MoltenVK fallback (front-half proof, SKIP golden) * parity: 104 P4-06 route frame lambda through GoldenDeviceCalls * parity: 104 P4-06 shade/post pair via GoldenBuildShadePost * parity: 104 P4-06 dedup handles+submit+alloc onto shared helpers * parity: 104 P4-06 share P4-01-shape handles via GoldenFrameHandles2 * parity: 104 P4-06 frame images via shared GoldenMakeSampler * parity: 104 P4-06 mirror-break free tail + single-block cmd alloc * parity: 104 P4-06 250k TU self-contained + MoltenVK SKIP * parity: 104 P4-06 probe drawIndirectCount (MoltenVK lacks it) * parity: 104 P4-06 notes: green gates + MoltenVK fallback --------- Co-authored-by: hermes-agent <hermes-agent@local> Co-authored-by: vulkan-renderer <vulkan-renderer@local>