mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 06:00:51 +00:00
Revert "ifcviewer: GPU LOD0/LOD1 selection in compute cull (step 3c)"
This reverts commit 77cac3ec170b622db6977829f66b62603266a047.
This commit is contained in:
+8
-12
@@ -795,18 +795,14 @@ single giant model / <18 cores CPU BVH trv Phase 3E GPU cull (plann
|
||||
- [x] Event-driven rendering (zero idle CPU/GPU, cull skipped on still frames)
|
||||
- [~] **Phase 3E — GPU-side compute-shader culling** (in progress)
|
||||
- [x] 3a: `IFC_GPU_CULL=1` drives rendering via compute cull (frustum +
|
||||
contribution). Perf regressed — submits one sub-draw per mesh
|
||||
even when `instanceCount=0` (CP overhead from empty commands).
|
||||
- [x] 3b: fwd/rev reflection bucketing — compact shader routes by
|
||||
reflected flag into CCW and CW MDI buckets.
|
||||
- [x] 3c: LOD0/LOD1 selection — compact shader computes per-instance
|
||||
pixel radius and routes to LOD1 bucket when below threshold.
|
||||
Per-mesh `has_lod1` flags SSBO. 4 buckets per mesh (fwd/rev ×
|
||||
LOD0/LOD1), 4M commands total, 2 MDIs per model.
|
||||
contribution, single bucket per mesh). Correctness matches CPU
|
||||
path; perf regressed — we submit one sub-draw per mesh even
|
||||
when `instanceCount=0`. Fix is MDI compaction via
|
||||
`glMultiDrawElementsIndirectCount`, deferred to 3a-followup so
|
||||
we don't pull a GL 4.6 entrypoint loader into this commit.
|
||||
- [ ] 3a-followup: compact non-empty commands, use count-buffer MDI
|
||||
- [ ] 3b: fwd/rev reflection bucketing on GPU
|
||||
- [ ] 3c: LOD0/LOD1 selection on GPU
|
||||
- [ ] 3d: HiZ with same-frame depth pre-pass
|
||||
- [ ] MDI compaction — compact non-empty commands into contiguous
|
||||
buffer, use `glMultiDrawElementsIndirectCount` (GL 4.6 /
|
||||
`ARB_indirect_parameters`). Deferred until all feature buckets
|
||||
land so we can introduce GL 4.6 loading once, cleanly.
|
||||
- [ ] Vulkan/MoltenVK backend for macOS
|
||||
- [ ] Embedded Python scripting console
|
||||
|
||||
Reference in New Issue
Block a user