mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-11 18:16:40 +00:00
db884047e1
Opening a fresh .ifc streams geometry to the GPU, then bakes the .ifcview cache. That bake — reorder + per-chunk zstd (level 19) — ran synchronously in SceneLoader::onStreamerFinished, which is a QueuedConnection slot on the main thread, so it froze the UI right as the progress bar hit 100% (≈15s of zstd for a 130 MB-geometry model). - Move the compress + writeSidecar onto a background thread. The geometry is already resident and the sidecar is only a cache for the next open, so the viewport is interactive the instant streaming finishes; the write is joined before the next write and in the destructor. - Parallelise the per-chunk zstd across hardware_concurrency threads (compress all chunks, then write serially to keep contiguous offsets) so the background write also finishes quickly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>