Help me to optimize my mobile game

Hello game devs
I have a mobile game and the main scene has many sprites in 3D apace which are layed on top of each other,
almost all the sprites share the same material and can be batched togather, but I also have some other objects (again sprites) between those layers and they of course break batching, almost all sprites are semitransparent,
after all I have 10-20 drawcalls, 15 on average, overdraw is high and I have 0 batched draw calls. And the reason I told you my story is due to the performance issues I have.
On some devices it overheats after some time and the device starts to throttle. I have done lots of profiling and it’s obvious for me that this is GPU bound, CPU wastes 70% of the time waiting for GPU to render, GPU runs at 100% , used Adreno profiler. What can you suggest how to solve this problem?
Example device
CPU - Snapdragon 808
GPU - Adreio 418
Thanks in advance ))

  1. Do you got any particle systems? if yes, then try to simplify them, or bake them in to animation.

  2. why do you got a lot overdraw? can you show some samples of what you are trying to achieve?

  3. You can use premultiplied alpha blending. It cost less when talking about calculation of pixel and draw calls.

4)You can use opaque shader on non transparent sprites.

  1. Turn off any anisotropic filtering on every textures if your game is 2d.

  2. Turn off spriterenderer if alpha of color is 0. “render.enable = render.color.a != 0;”

  3. If you got a LOT of overdraw and cant avoid it you can render your part of the scene with most heavy overdraw to render texture with low resolution and then blend it to your fullscreen scene.

8)Do your scene need to update or its static? If its static you can render your scene in to render texture and then use it. And rerender it when only something change.