Cluster LOD 0: shared contract -- data format, tiers, settings, module skeleton #743

Closed
opened 2026-10-13 01:57:39 +00:00 by sky_line · 1 comment
Owner

Part of #642. Wave 0 (everything else builds on it).

  • Cluster / page / DAG data format (CPU, disk and GPU), error units and the selection rule.
  • GPU structs the selection, streaming and draw paths share; the cluster module's own descriptor set layout.
  • Runtime tier detection from extensions (floor: compute + multi-draw indirect; mesh shaders; device-generated commands; memory decompression; indirect copies; cluster / partitioned acceleration structures).
  • Settings: the toggle, tolerances, pool and upload budgets, forced tier for testing.
  • Module skeleton with stubbed interfaces, so waves 1-2 can work in parallel without colliding.

Rules for this work (all sub-tickets):

  • Behind RenderVKClusterLOD (default off). With it off, the existing rigged LOD controller (#561 / #613) and every current path are untouched.
  • Newest path first, chosen by extension presence; every slower path is an additive fallback, forceable on the newest card via RenderVKClusterForceTier.
  • Failures never crash: a missing page / failed allocation falls back to the coarser parent cut; no unbounded growth (fixed pools, byte budgets, live/cap/peak stats).
Part of #642. **Wave 0** (everything else builds on it). - Cluster / page / DAG data format (CPU, disk and GPU), error units and the selection rule. - GPU structs the selection, streaming and draw paths share; the cluster module's own descriptor set layout. - Runtime tier detection from extensions (floor: compute + multi-draw indirect; mesh shaders; device-generated commands; memory decompression; indirect copies; cluster / partitioned acceleration structures). - Settings: the toggle, tolerances, pool and upload budgets, forced tier for testing. - Module skeleton with stubbed interfaces, so waves 1-2 can work in parallel without colliding. **Rules for this work (all sub-tickets):** - Behind `RenderVKClusterLOD` (default off). With it off, the existing rigged LOD controller (#561 / #613) and every current path are untouched. - Newest path first, chosen by extension presence; every slower path is an additive fallback, forceable on the newest card via `RenderVKClusterForceTier`. - Failures never crash: a missing page / failed allocation falls back to the coarser parent cut; no unbounded growth (fixed pools, byte budgets, live/cap/peak stats).
sky_line added this to the Slipstream project 2026-10-13 01:57:39 +00:00
Author
Owner

Fixed in 1.4.1 (b76b89a1bc). Reopen if you still see it.

Fixed in 1.4.1 (b76b89a1bc). Reopen if you still see it.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#743
No description provided.