Pooling & Memory
These settings control memory allocation for instance storage. Adjusting these affects GPU memory usage and culling granularity.
| Property | Type | Default | Description |
|---|---|---|---|
| Max Pool Refs Per Chunk | int | 128 | Maximum number of pools each chunk can hold. Each pool holds 16 instances, so this limits the max instances per chunk (default: 128 × 16 = 2048). Higher values allow more instances per chunk, meaning fewer chunks to cull but less granular culling. |
| Initial Chunk Count | int | 256 | Starting number of chunk slots. Grows automatically as needed. |
| Initial Pool Capacity | int | 4096 | Starting number of pool slots. Grows automatically as needed. |
| Enable Auto Compaction | bool | false | When enabled, GPU buffers are periodically shrunk when waste exceeds 50%. Can cause frame hitches during compaction. If possible, please use manual compaction instead! |
| Prototype Idle Grace Period | float (0–120) | 30s | Seconds to keep an unused prototype (zero references) alive before auto-purging. Allows fast re-registration during scene transitions. 0 = purge on next frame. |
Tip
If you know your scene's approximate instance count, set the initial chunk and pool capacities high enough to avoid runtime growth. Alternatively, use Gathered Allocations to record peak values automatically.
Important
Upgrading from a pre-16-slot version. Pool size changed from 64 slots to 16 slots per pool, and the pool config fields were renamed. Default effective capacities are unchanged (128 × 16 = 2048 max instances per chunk, matching the old 32 × 64), so most projects need no action. If you had tuned Max Pools Per Chunk above 32, set Max Pool Refs Per Chunk to 4× your old value — otherwise previously converted BRG GameObject Groups may truncate at load (a console warning names the affected chunk; the source data is untouched and recoverable by re-converting). Gathered Allocations data recorded before this change is discarded automatically — re-run gathering.