Table of Contents

Important Tips


Practical advice for getting the best performance and memory usage out of BRG Instanced Renderer.

Add Prototype Extra Data to Your Prefabs

Add a BRG Prototype Extra Data component to every prefab you render through BRG — even if you don't change any of its settings.

Prefabs that have the component get their tight cull bounds computed in the editor and saved into the prefab. Prefabs without it have to measure those bounds during prototype registration instead, which costs time on load and requires the mesh to have Read/Write enabled.

The bake runs automatically when the prefab is imported, and the resulting values are committed with the prefab — they're only a few floats per LOD.

Size Your Initial Allocations

GPU buffers grow automatically when capacity is exceeded, but resizing involves copying all buffer data and causes a one-time hitch. To avoid this:

  1. Enable Record Allocations in the Config
  2. Play your scene and exercise worst-case scenarios
  3. Click Copy to Initial Sizes to use the recorded peaks as starting values

This eliminates runtime buffer growth entirely.

Gathered Allocations

Understand Pool Utilization

Instances are stored in fixed-size pools of 16 slots each. A pool is allocated as a whole block — if a pool only holds 1 instance, the other 15 slots are wasted GPU memory.

You can monitor pool utilization in the System Window under Chunk System > Pool Utilization.

What Causes Low Utilization

  • Sparse chunks — A chunk with very few instances still allocates at least one full pool. If you have many chunks each holding only a handful of instances, you waste a pool per chunk.
  • Removing instances over time — As instances are removed, pools become partially empty but stay allocated.

How to Improve Utilization

Use an appropriate chunk size for your instance density. Smaller chunks improve culling precision but create more chunks, each requiring at least one pool. If chunks end up with only a few instances each, most of each pool is wasted. In practice, saving GPU memory with fewer, well-filled chunks matters more than having highly precise culling. Match chunk size to your placement density so chunks stay well-filled.

Chunk Size Matters

For BRG Terrain Registerer, chunk size controls culling granularity:

  • Smaller chunks = more precise culling, but more chunks to process and potentially lower pool utilization.
  • Larger chunks = fewer chunks, better pool utilization, but less precise culling.

The default tree chunk size (256m) and detail chunk size (32m) work well for most terrains.

Snap Crossfade on Load

When instances already exist in the world (e.g. scene load, save restore), crossfade animations should be skipped so everything doesn't fade in at once: