I tried 2 different method:
1. Spawn 5k same units with MeshRenderer and same material that support gpu instancing.
2. Draw 5k same units with the same material with DrawMeshInstanced.
----------
Results on modern android devices, pc and editor:
1. 60fps
2. 180fps (3 times faster)
----------
Results on device with Adreno 506 (OpenGL ES 3.2 and Snapdragon 625)
1. 15fps
2. 14fps (Slower! Why?)
----------
I have no idea what cause it. Fps drops, when it should be 3 times faster. Profiler says only that in first case it spends all the time on Camera.Render. And in the second case on GFx.WaitForPresent. Vsync is turned off.
Logically first method has huge overhead, cause MeshRenderer has a lot of work to do, to be rendered, but on some devices it magically better that simple DrawMeshInstanced.
So, my questions is: what's going on, any idea?)
↧