TargetFrameRate = 8. Drawcalls approx 30. Phone still overheating!
I created a gui-based app using Unity 5.3.4. In Update(), I only have a few simple if statements to check for keypresses. I force the TargetFrameRate = 8 while awaiting input. During input & animations, I set TargetFrameRate = -1.
As a test, I left my Galaxy S6 idling at 8fps on a page that has 30 draw calls.
The results after 15 minutes :
Phone is hot as hell
Battery down 7% !!! (remember, 30 draw calls @ 8fps)
The profiler shows that 98% of my CPU is spent spent in WaitForTargetFPS (PC) or in Device.Present (Android).
Why the heck is my phone overheating with such a small load and TargetFrameRate set to 8 ???
PS - I'm using fastest settings, with everything turned off. No lights, no shadows, half res textures. V-Sync off.
Thanks!
Because you have it on.
While the CPU is definitely one source of heat, the screen is also a culprit (also it eats battery the most. $$anonymous$$ore so than the CPU)
Do the same test, this time just leave it idling, with the screen on for 15 $$anonymous$$utes, and compare heat and battery. I bet you won't see that much of a difference.
Answer by wankerman · Sep 14, 2016 at 02:18 PM
If you read my post carefully, you will notice that my test was done during idle. When I actually use the app, it starts throttling and battery goes down at a rate of 1% per minute or worse, even on my battery saver option which sets the TargetFrameRate at 30fps.
I think I figured it out. I was using the default shaders on everything, which I assumed were light. I was wrong!
So I changed all my images to use the "$$anonymous$$obile/Particles/Alpha Blended" shader since I need alpha blending via the Canvas Group, and this is supposedly the cheapest built-in shader for that. And for my fonts, I'm using "UI/Unlit/Transparent" which keeps the colors I assign my text.
I also reduced the max sizes of my images to only the sizes that I needed. They were all set to 2048.
So now the phone gets only a little warm, just like any other Unity app/game. And the battery drain must be half what it was.
So to summarize, it was all in the Shaders and in the Texture sizes.