Goal
Move high-cardinality visibility and draw-command compaction to GPU compute after CPU visibility and MDI are efficient and measurable.
Depends on
Phases 0-2: metrics, stable pooled/indirect rendering, and safe asynchronous resource lifetime.
Parallel workstreams
Data contract and fallback
Compute visibility
Optional occlusion
Relevant code
modules/world-lod/src/lod_renderer.zig
modules/engine-rhi/
modules/engine-graphics/src/vulkan/
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/depth_pyramid.comp
Acceptance criteria
- The environment/config GPU-culling option performs real GPU culling rather than warning and falling back.
- GPU output matches CPU reference visibility in validation mode.
- Terrain and water are rendered from compact indirect command streams.
- Compute/barrier cost is reported separately and improves CPU frame time at large horizons.
- Small workloads automatically retain the cheaper CPU path.
- No hierarchy holes, transition popping, indirect-buffer overflows, or one-frame stale draws.
Risks
Synchronization/barrier errors, indirect-count feature portability, delayed occlusion visibility, and atomic compaction contention. Mesh shaders are explicitly out of scope until conventional compute + MDI is proven insufficient.
Goal
Move high-cardinality visibility and draw-command compaction to GPU compute after CPU visibility and MDI are efficient and measurable.
Depends on
Phases 0-2: metrics, stable pooled/indirect rendering, and safe asynchronous resource lifetime.
Parallel workstreams
Data contract and fallback
Compute visibility
Optional occlusion
Relevant code
modules/world-lod/src/lod_renderer.zigmodules/engine-rhi/modules/engine-graphics/src/vulkan/assets/shaders/vulkan/culling.compassets/shaders/vulkan/depth_pyramid.compAcceptance criteria
Risks
Synchronization/barrier errors, indirect-count feature portability, delayed occlusion visibility, and atomic compaction contention. Mesh shaders are explicitly out of scope until conventional compute + MDI is proven insufficient.