After suspending and resuming the packaged game on Android, the framerate is cut in half. I need help diagnosing what is happening.

All my projects packaged and installed on device will run at 60 FPS, but then drop to 30 FPS when I sleep / resume the device. I have a newly created blank project to test, with a level map that has no actors or assets, and it’s still happening.

I have no idea what is going wrong or how to fix it. Does anyone know what it might be?

Device: Pixel 6 Pro, Android 14

I got some insights frames before and after the framerate drop

Before Sleep / Resume:

After:

Any ideas what to look at? I noticed that “EndFlushResourcesRHI” jumps from 11ms to 50ms. No idea if that’s part of the cause.

Apparently this issue had to do with using Vulkan as the shader RHI. I switched to OpenGL and it worked fine. No drop in FPS.

Has anyone successfully created a Vulkan project?

Basically UE5 limit the game to 30fps to keep the experience smooth. I know it is stupid. But it is what it is. Give me your discord account so i help you tomorrow. Then if we find a solution I or you post it here for others.

Late answer, but after digging into this issue a lot, I found a solution (though I’m not proud of it, it works).

The concept is to add a lifecycle application component in your Player Controller and bind it to the “Application Has Reactivated” delegate event. On reactivation, add a delay (0.3 seconds), send a command (Execute Command blueprint) with r.VSync 1, then add another delay (0.3 seconds), and send a command with r.VSync 0.

The delays are important :'(.

I’m sorry, it’s a terrible solution, but at least I get my FPS back.

1 Like