My game's FPS drops to 30 - 8 FPS on any 64 bit Android device but is at 59 - 60 FPS on an even lesser 32 bit Android device.
I've tried unchecking Development Build on Build settings and I've tried disabling debug calls on my game by using:
void Update ()
{
#if UNITY_EDITOR
if(!Debug.unityLogger.logEnabled)
Debug.unityLogger.logEnabled = true;
#else
if(Debug.unityLogger.logEnabled)
Debug.unityLogger.logEnabled = false;
#endif
}
But there wasn't any change. And I tried setting all Stack Trace Log type to None(Edit > Project Settings > Player). Also no change.
PS: I used that update call because there are other imported assets that call the Debug class and I wouldn't want to mess around with their classes.
EDIT: As you can see in the screenshots below, the device that runs the game at less than 30 FPS(every 64 bit device) has Gfx.WaitForPresentOnGfxThread take 71.6% of the frames and RenderPipelineManager.DoRenderLoop_Internal() takes up 51.1%. While the device that ran the game at 60FPS(every 32 bit device) has RenderPipelineManager.DoRenderLoop_Internal() take up the most frames with 35.7% of the frame. How should I fix the frame rate drop on the 64 bit device?
EDIT: The 32 bit Android device is an Infinix Hot 4, 2GB RAM, 1.3GHz quad-core MediaTek MT6580 CPU, OpenGLES2, Android 7.0, 1280x720. - This reaches a maximum of 62FPS(Average 59FPS).
The 64 bit Android devices are:
- Cubot X19 - 4GB RAM, [8 core CPU: 4x 2.3 GHz ARM Cortex-A53, 4x 1.65 GHz ARM Cortex-A53], OpenGLES3, Vulkan supported, Android 9.0, 2160x1080. - This reaches a maximum of 30 FPS(Average 25FPS).
- Qubo P19 - 3GB RAM, 1.5GHz Quad-Core MT6739WA CPU, OpenGLES2, OpenGLES3 supported, Android 9.0, 1280x640. - This reaches a maximum of 25FPS(Average 19FPS).
I'm using Unity 2019.3.1f for my project.