Quick answer: Unity SRP Batcher reporting 'not compatible' after a runtime SetBlendMode? Runtime state changes invalidate per-material constant buffer - use material variants instead.
Lit shader; runtime calls material.SetBlendMode for transparency toggle. Frame Debugger: SRP Batcher off for that material.
Use material variants
Author opaque and transparent variants. Switch by swapping the material reference; SRP Batcher remains active.
Or accept the cost
For rare blend mode changes, the batcher dropout is fine. Measure; tune.
Verify in Frame Debugger
Per-renderer batcher state visible. SRP Batcher: !ChangeRender = state mutation; the root cause.
“SRP Batcher trades flexibility for batching. State mutations break the trade.”
Author material variants up front. Runtime state changes look efficient but break batching; variants are the disciplined choice.