Empty project cannot reach stable 30FPS on Android 14

Hi,
We recently noticed that even an empty project cannot reach stable 30 FPS on Android anymore. Unity 2022.3 LTS + Android 14

The reason is that WaitForTargetFPS takes more time than it should thus some frames take 31ms and others take 35-40ms (even in an empty project without any script or objects in the scene! also no matter if we use built-in or urp)

Optimized frame pacing makes no difference (and it shouldn’t be necessary on an empty scene anyway)

We are talking about high end phones here. We also reported a bug to unity (however you don’t need to do anything as it can be instantly reproduced when you look into the profiler of an empty project)

IN-65938

Has anyone else experienced this since the latest Android Update to Android 14?

What does the profiler say?
Did you setup URP further, like removing desktop SSAO from the URP renderer?

This is with built-in pipeline (see screenshots)

We are experiencing this stutter also in our main project where we run a highly optimized URP setup, the profiler clearly shows that CPU + GPU have a lot of headroom, the only problem is the v-sync / WaitForTargetFPS


That actually shows very smooth gameplay?
Vsync is the big part, which is something you want on mobile to spare battery and heat.
You can manually set the framerate higher than 30 if needed.

If it truely is unstable, measure it and send a screenshot of the peak in frametime

The screenshot even shows a frame with a frametime of 34.97ms - that is approximetly 28.5FPS - you can see constant spikes that are over the target of 33.33ms (30FPS).

Very smooth gameplay only exists when the graph shows basically a flat line on the top (and that should honestly be no problem in an empty scene)

It’s not perfectly smooth no, if this actually is a bug let us know what the report comes back with.
I personally profile with a lot more frames, so then it looks flat

I think in reality no one is going to notice these inconsistencies, but that’s my personal expectations

1 Like

Have you tried setting the Application.targetFrameRate to 60+?

Yes with 60+ it’s much more smooth, but we want to limit our games to 30 due to battery usage

Will changing it to 31 make the frame rate more stable?

Someone’s test :

I tested with different target framerates (29, 30, 31, 59, 60, 61, 120, -1) but every graph has the same awkward spikes.

1 Like