Hi,
this is more of a general question, I'm curious how do you go ahead diagnosing behaviour that you can't come up even with any type of explanation and also can't isolate?
In my case, I have a menu located outside my games level, which slides down when you press the menu button. From there, you can then open the level select screen that will make it slide down even more - the level select screen is located above the main menu. The whole thing is a Control node, so if the menu is closed it's rect_position.y = 0, if the main menu is open it is 150, and if the level select is open its 1050.
The menu is opened by an animation player that just has one track moving the rect_position of the control node.
Now, on all my phones and the PCs this behaves normal, with the exception of the Nokia 2.1 (which I use as a minimal target - if my games runs ok on it, I'm fine with the performance. It's a phone from 2018 that was universally critiqued for having bad performance even for its 100$ new price back then). There, I get 60 fps (capped to it) when I start the game. As soon I open the main menu, the fps drop to about 30, and it stays like that, even if I close the menu. Now the weird part: nothing happens if the menu is opened, there is no function that runs or process or physics_process. It's just a container with some buttons...
But the fps stays 30 even if I reload the main scene, I have to restart the game completely to get it back to 60.
I tried disabling visibility of the control node holding the menu when it closes, and then the fps will go to 40 after the menu closes and stay this way.
And now even more strange: I added a debug button to set the menu position to 150 = open the main menu. FPS drops to 30 again. I changed the button to move the menu by 5 pixels every time I press it. After 30 presses the menu is at 150, but no fps drop!!!
Also, when the level select screen is open/moved into view, the fps drops to about 10 (!), despite it just beeing a bunch of buttons (again, nothing special about them, no function runs, no animations, nothing in the background). None of my other phones does that, not even the much older Galaxy S4 from 2013, which can't reach 60 fps in normal play, but barely drop fps when the level select is open (losing 5 fps or so) and going back to normal as soon the menu is closed.
I really have no idea how to deal with that... It's so weird. I checked everything that came to my mind, the profiler only shows me that the time lost is in "Idle Time", the memory usage of my game is <100MB. I'm curious how you all would go diagnosing this behaviour... I'm really out of ideas where to even look.
Edit: just tried to start the game with the menu set to 150 and already open. FPS is at 60, but if I close the menu and open it again, it drops back to 30. This makes even less sense :(