Quick answer: Unity SpriteRenderer tinted via MaterialPropertyBlock breaking 2D batching? SRP Batcher doesn't batch sprites with MPB - use Color property directly.
Tinted 100 sprites via MPB. Frame Debugger: 100 draw calls. Color via SpriteRenderer.color: 1 batch.
Use color property
spriteRenderer.color = newColor;Built-in batching. One draw call for all sprites with shared material.
Or use SpriteRenderer.material
Per-instance material. More memory; batches if materials share the same shader.
Avoid MPB on 2D
MPB is for 3D PBR adjustments. 2D's color property is the right primitive.
“Wrong primitives break batching. Right primitives = free perf.”
Audit 2D rendering for MPB usage. Likely candidates for color migration; batching returns automatically.