Quick answer: Unity material using InstanceID property breaking SRP Batcher? InstanceID is per-instance; SRP Batcher requires per-material CBuffer - use ManualBatch flag or restructure.

Stylized water shader uses INSTANCE_ID. Frame Debugger: SRP Batcher off.

Remove InstanceID

If per-instance variation isn't critical, drop. Batcher reclaimed.

Or use GPU Instancing

InstanceID via DOTS_INSTANCING_ON; different batching path.

Audit batcher compatibility

Frame Debugger lists Reason for each non-batched material. InstanceID = one cause.

“SRP Batcher and InstanceID conflict. Choose one.”

If batching matters, audit shaders for InstanceID. Each is a candidate for refactor.

Related reading