Unity3d draw call count differs between platforms

I'm currently doing optimization for my mobile game. In unity editor, my game runs at over 100 fps with 15-25 batches and set pass calls, but once I build my game (Android) and put it on my phone, the number of batches dramatically increases towards 150-200, and set pass calls to 80-120; The fps also drops to about 30-40.

I have read somewhere that the number of draw calls should stay the same between platforms, otherwise what's the meaning of the stats preview window in unity editor?

Thanks in advance.

Answers


The number of draw calls can change based on the platform settings. See the unity docs about Dynamic Batching

In a nutshell, your Player Settings can change the amount of draw calls between platforms. So for example if on Android you have the rendering path set to "Legacy Deferred", and Standalone set to "Forward" then Dynamic Batching will be disabled on Android and not on PC. That could cause a major difference.

Other possibilities include the difference in the Graphics API, and Dynamic or Static batching could even be turned off on one platform and not the other.

Finally, check the Quality Settings. You could be running the editor in "Simple", and on your phone as "Fantastic" for example.

The stats in the editor window only display the information about how the game is running in the editor on your computer with the chosen settings, not how exactly it will run on the device you install it on. In general it is a useful tool for increasing performance because if the stats improve in the editor, they will also improve on whatever device you are using to test.

Hopefully you find this helpful!


Need Your Help

Apache POI, using both XSSF and HSSF

java apache apache-poi xssf hssf

I have a problem with Apache POI project.

HighCharts Not Displaying Correctly

highcharts

First time messing around with HighCharts.js.