Semphore.WaitForSignal uses 70%

So i’m making a really small/simple game in unity 2D but for some reason, the framerate is really low and almost unplayable (on new phones) for the Samsung a51 im getting around 40 FPS and when I play on an S10 I get around 50 fps. and when I look and the profiler (when im playing on phone) Semphore.WaitForSignal uses 70% of the CPU. I think this is the main problem for the low framerates. can anyone confirm nor deny this for me and if it is the problem how can I fix it?

Here is a screenshot of my profiler while playing on mobile (A51) on a peak

and here s a screenshot of my profiler while playing on mobile (A51) Not on a peak

Hi
Please check out the CPU Usage Profiler Module’s manual section on common samples for more details on this sample, and in particular it’s parent sample WaitForTargetFPS. Also worth reading up on is the details on Application.targetFrameRate and how that behaves on mobile.

So to me this looks like you are missing an earlier vBlank and therefore have to wait for the next one. Timeline view might be the better view to understanding this. Also, our recent Blogpost about Time.deltaTime fixes has a good explanation for how Unity’s frame pipeline works but you might want to check out this Unite Now introduction to Profiling before that.