Optimized Frame Pacing makes game stutter and reduces FPS on low-end devices

I was messing around and trying “Optimized Frame Pacing” and trying the build on different devices and i found out the following:

It runs good on medium to high end devices.

BUT it runs horribly on low end devices (Samsung A5), it made the game stutter all over the place and the FPS was suffering and unsteady and below 55FPS. (It’s 60FPS with the feature turned off).

  • So i guess “Optimized Frame Pacing” is not ready for production yet?

  • Is this non-readiness coming from Unity or Google?

  • if it’s Unity’s issue, then can we apply it by directly implementing it manually from Google?

I would like to use it in my next project but now i’m reconsidering things.

Side note: it would be very useful to let us turn it off/on during runtime by code.

There are a few known issues with Optimized Frame Pacing.
We have some reports of issues on older devices here ( Optimized Frame Pacing - Freezes/Crashing on Android 6.0 and earlier ) but right now no bug report or a way to reproduce the issues.

There are also known issues with Optimized Frame Pacing on devices with variable refresh rate.
In Unity 2019.4 I would recommend to disable Optimized Frame Pacing.

Would it be helpful to turn the feature on/off during startup with the mechanism described here? Unity - Manual: Extend the default Unity activity. At the moment we don’t have a “command line” switch, but this could be added. It would be much simpler and probably more robust than allowing to switch it at runtime.

@florianpenzkofer On which version do you consider this a useful feature? Are those issues patched out already?

1 Like

@florianpenzkofer is 2020.3.44 stable with “Optimized Frame Pacing” ?

Don’t think so… We still have a problem on 2021.3.16f1

1 Like

Unfortunately sometimes the optimized frame pacing just decides to switch to 40fps when setting a 30fps target. Or 70fps for a 60fps target. Generally this results in the opposite effect and happens to all major Android devices we tested so far (Samsung, OnePlus, Google Pixel). It happens with 2019Lts, 2020Lts and 2021Lts. And it happens often enough to become a deal breaker

1 Like

What alternative could you suggest ?
I am using 3rd person controller for the Player and for some reason when I enable Optimized Frame Pacing the camera movement is really smooth but as I disable it even though the FPS is solid 60 the camera movement feels off and even jittery.

This making me sad at this point

@florianpenzkofer ?

I get even worse results if I disable Optimized Frame Pacing. My screen starts stuttering / flickering when I’m using Android native UI. If I enable Optimized Frame Pacing another device starts to lag a lot and eventually freezes tightly after 5 minutes. Unity is such a Unity… We need a comment from a Unity developer

Video:

Have the same issue. Unity 2021.3.25f
I have two devices with 60hz and 90hz screens. And the game stuttering on one of them depends on Optimized Frame Pacing option. Players say the same.

I set targetFrameRate to 60.

If Optimized Frame Pacing enabled:
60hz phone – stuttering
90hz phone – smooth like a silk

If Optimized Frame Pacing disabled:
60hz phone – smooth like a silk
90hz phone – stuttering

1 Like

Have fixed this issue with overriding the screen refresh rate before starting the game in Android main activity
Disabled the Optimized Frame Pacing and setting the display refresh rate to the minimum supported, but >=60.

Here is the example:
https://stackoverflow.com/questions/71506009/unity-problem-with-android-build-on-120hz-devices/72721278#72721278

Just wanted to add here that on my 60Hz display phone, I was getting stable 20 FPS in my android build. And when I would set Application.targetFrameRate = 60;, I would get 30 FPS instead of 60.

Disabling Optimized frame pacing fixed this and I was finally getting the correct FPS in my builds.

Im using Unity 2021.3.22f1