Look: if your render thread is burning cycles because you keep issuing the same draw call pattern all frame long, you do not need another batching pep talk.
You need control. That's what BatchRendererGroup (BRG) is: you stop praying Unity guesses your intent and you decide exactly what goes from CPU to GPU, and when.
But here's the brutal reality check: BRG is not "free FPS." It's a weapon. Use it on the right target: static or static-like repeated content. If the thing is moving/rotating/changing every frame, you will spend your life rebuilding data and you'll hate it.
Do this first (before code):
- Make sure you're on SRP and the SRP Batcher is enabled.
- In Graphics settings, keep all BRG shader variants (yes, build times/package size can grow).
- If you're on URP, consider disabling Strip Unused Variants in URP Global Settings.
- Enable Allow 'unsafe' code (BRG wants pointers if you want performance without dumb copies).
Proof it scales: in the module demo, the scene keeps the batch count stable even when the instance count jumps. Don't trust vibes. Open Stats and the Frame Debugger and look at what actually gets submitted.

Your fastest win: pick one repeated prefab family that barely changes (props, crates, buildings). Build the draw commands and GPU buffer once when the level loads. Then, on the culling callback, you only change visibility (visible instances) and ranges (which commands execute). That's the whole game.
Do not re-upload the buffer every frame. That's how you torch memory bandwidth and turn BRG into a self-inflicted wound.

Tradeoffs you need to know up front: you're now responsible for metadata/buffer layout, visibility rules, and (if you want it) culling. And sorting has sharp edges: a single instanced draw call does not guarantee a deterministic per-instance order. If you need correct ordering in the big picture, you structure it with multiple draw commands and let Unity sort those among the rest of the scene.
CEO/Producer translation: this is how you cut render-thread cost on repeated content without turning your scene into a zoo of GameObjects.
This is only the preview. The members-only module below is the complete step-by-step build: the full video lessons, the code template, the mind map, and the "here's how you actually drive visibility/sorting/culling without blowing up perf" workflow.
Join the membership to unlock the full BRG module and stop shipping rendering "hope" as a strategy.
In this module:
- 1. BRG - Fundamentals
- 2. BRG - Practice Time
- 3. Sorting for Efficient Overdraw
- 4. Example - Ixion
- 5. Example - Helldivers 2
- 6. Exercises
Join to unlock the full module, audio, and resources.