The 30↔200 FPS swing is _datLock contention: the streaming worker holds the global dat lock for the full per-landblock build (lockwait measured 24ms median / 88ms p95), stalling the update thread's ApplyLoadedTerrain. Fix (A1): the worker pre-reads the apply's six Get<T> sites into a physics dat bundle so ApplyLoadedTerrainLocked makes zero DatCollection calls and its lock(_datLock) is removed. Approved design; implementation next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| architecture | ||
| audit | ||
| plans | ||
| research | ||
| superpowers | ||
| bugs.md | ||
| ISSUES.md | ||