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.

Related reading