Graphics.PresentAndSync consuming a lot of time

Profiling our game on mobile, Graphics.PresentAndSync → Device.Present consumes 50%-75% of the cycle time and performance is quite poor (between 15 and 30 fps, we’re striving to get 60), both tested on Android and iOS.

VSync is turned off in the quality settings of the project and the targetframerate is set to 60.

There are some elaborate posteffects on the camera (a fullscreen blur and sunshafts, both effects were optimized for mobile), but turning them off doesn’t change almost anything about the consumption of Device.Present

What exactly is happening in Graphics.PresentAndSync → Device.Present and what reasons other than Vsync could cause the long time spent in these routines?

This related post might be of interest:

Other than that, maybe you are simply doing something in rendering that takes a lot of time. From what I have heard, Android and iOS doesn’t have the best bandwidth when it comes to rendering, so full screen post effects can be pretty hard on them.

Try removing/reducing what is rendered until you figure out what has the highest hit on the render time.

I know this is old but…

This was an issue I was just having. I responded above, so I don’t want to include the whole thing here (no need to duplicate), but the long and short of it was that I was using multiple outline components on a few images in my UGUI canvas (in the Level HUD). I used the multiple outlines to make a styled effect. As I understand it, this would create MANY (possibly exponential, i was using 4 outlines per icon and 4 icons…) rendering passes.

I’m not 100% sure on exactly why it would suck so hard on Android specifically, so maybe someone can elaborate. But my lesson learned here is to just draw the damn icon the way i want it outside of unity :stuck_out_tongue:

Hope this helps someone!