Some Of My Static Batching Is Being Split Into Separate Batches (Unity)

Some Of My Static Batching Is Being Split Into Separate Batches (Unity)

Symptoms

  • My scene contains a group of static Mesh Renderers and a dynamic/ non-static Mesh Renderer. For some reason, the static Meshes are being split into separate draw calls.

Cause

Unity does a rough front-to-back sort for opaque objects, to increase GPU efficiency. This change can result in more batches (more CPU work).

Resolution

If you know your application is more CPU-bound, then turning this behaviour off might be useful, e.g. “Camera.main.opaqueSortMode = UnityEngine.Rendering.OpaqueSortMode.NoDistanceSort;”

Please note that this sorting is done by the CPU, and only if it will benefit the GPU, for example this is off by default when on PowerVR/Apple GPUs because the geometry already gets sorted front-to-back by the GPU.

Was this article helpful?

Related Articles