I’ve been doing some contract work on the side for the GearVR platform. One of my jobs was to troubleshoot why a Samsung Galaxy S6 was overheating within 5 minutes. I looked at the scene and shader complexity and it looked really good. The CPU usage was pretty light weight as well, though there was a bit of stuff going on in the tick function. We managed to clean up the tick functions a bit and got the phones to last for up to 15 minutes before overheating. I thought it was a one-off problem.
Today I finished building another GearVR app for another client. They also had Samsung Galaxy S6’s. I ran the app on those phones and within about 8 minutes, they also started overheating. We have six phones, all exactly the same. What’s weird is that some phones would overheat within 5 minutes, and others wouldn’t overheat at all, and they’re all running the exact same app. I don’t get it. I can’t get a consistent performance benchmark on the same hardware platform on the same app.
Anyone else experienced with dealing with overheating issues? What are the contributing factors? How are you handling it?
The problem is that when Oculus reviews an app for release to the GearVR store, they test in the S6 and look for overheating. If your phone overheats too quickly, they kick it back. Aside from trying to optimize the CPU/GPU usage, I don’t know what else to do. I can’t assume that people are going to be actively cooling their S6 phones…
I’m facing same problems.
I’ve played a lot of GearVR games from Oculus store , overheating comes very soon if I don’t use a fan or thers is no wind.
Talking about S7, it’s worse , same game scene , it runs on 60fps/second on S6 but on S7 it runs under 40fps/second.
I think maybe there is hardware problemes on S6 and S7.
I had infrequent overheating issues which happened within 5 minutes on some Samsung S6’s, but not other S6’s. It’s weird how the phones can run the exact same app but one phone overheats and the other doesn’t.
For what it’s worth, we got a bunch of S8’s and tested the same app and it runs flawlessly. The phone doesn’t even get warm.
You are going to want to look into modifying your render target resolution on the S6 to improve thermals. I had a lot of trouble meeting the minimum 45 minute runtime required by Oculus, at native resolutions.
4.16 has improvements to r.screenpercentage. Now it’s possible to set the resolution at runtime. Previously it was only possible via ini.
You can either set the resolution in device profiles, or write a custom script to manage resolutions after initialization. I wrote a blueprint which progressively lowers the render target as the phone heats up. For the first ten minutes the phone will run at 95%, then it’ll start to drop off.
Lowering the resolution will allow you to lower the cpu/gpu power levels also. My script runs CPU 0, GPU 1 - until the phone resolution hits below 92%. Anything lower than that and it will drop to 0,0. Make sure to monitor your temperatures closely. The thermal thresholds for the overheating dialog changes based on the power state. Power level 0,0 can reach 39C before the app closes. 0,1 is 38C. 0,2 is 37C. 0,3 is 36C. Those last few degrees can make the difference. On the S7 Kismet runs at 37C for 10 minutes or more. And those are the max temps. If your app heats the phone too quickly, it’ll shut off even sooner.
Try to target the lowest power level possible.
Also, definitely look into blueprint nativization. Our mobile port of Kismet wasn’t able to take advantage of nativization, but the CPU is responsible for a large portion of the thermal output. Optimize the heck out of anything that runs heavy script, and you will see good returns.
Overheating happens on every Galaxy device I have at my desk, except for my S8. In Kismet’s current configuration, the phone will actually cool down a certain degree.
It’s though work now, but mobile devices are going to get really good soon. Good luck!
If Samsung S8 become a good VR mobile device, there is no overheating, no performence problemes anymore.
When we make a GearVR game , what should we do with the old devices like S6,S7,NOTE5 ?
Can ignore those old devices and focus on S8, or we have to take care all the Samsung mobile phones ?
I hate to necro this post but wnated to ask you more about this blueprint. I have only been able to change res on androids in device profiles and it wacks out all of my widgets. Im not quite ready to go on a re-anchor adventure for thousands of components in widgets everywhere. Any chance you could elaborate how you can change what you described in blueprint? I still get hot device on my test galaxy s23 ultra. Any help appreciated!