SRP Batcher - Increased CPU rendering times

Hey there,

I’m currently working on a mobile app I’m trying to optimize for. I was originally concerned that the models were too high in tri count, so I was exploring what I can do with the SRP Batcher to resolve the issue.

I found when using the SRP Batcher the CPU performance was increased dramatically and the performance was overall worse than having it turned off, static batching off and dynamic batching off.

I am wondering if the SRP Batcher isn’t working well because my buildings are built with a lot of meshes, rather than just one mesh for each building. Resulting in more batches?

I also keep seeing negative saved batches. I tried finding out what that means but I couldn’t find a solid answer. I also have about 1731 batches and 10893 saved when NOT using SRP Batcher, and 12692 batches and -1262 saved when using SRP Batcher.

I have attached some images showing performance using the SRPBatcherProfiler.cs I found in another thread.

I’m really struggling with this so any answers would be extremely helpful!


Hi!
What device model is this?

Pixel 1

SRP batcher is not guaranteed to be faster on all content on every mobile device - it seems in this particular case it’s not.
The scene doesn’t look too expensive to render in the first place.

That’s good to know, but It would also be handy to know why it’s not running well and what I could do to improve it.

In my case I was speculating I was using a lot of meshes and the tri count is high. I feel that reducing the tri count is a given, but does reducing the amount of meshes help at all? The buildings in the scene have been made by reusing a lot of models (See image attached). If I reduced the buildings down to 1 mesh each would that help a lot?

I’ve uploaded some images showing the buildings, and other stats when SRP is turned off and on.

6031007--650870--SRP_Building.PNG
6031007--650873--SRP_OFF.PNG
6031007--650876--SRP_ON.PNG
6031007--650879--SRP_Mesh.PNG

The only way to reliably find out is to try on the target device :slight_smile:
Looking at the number of draw calls, I would first try reducing the number of meshes.