Like most people running Dolphin on Android we find out that it runs good but only for about 10 to 20 minutes before thermal throttling kicks in. I desperately needed to stop this from happening and so I did.
! Warning ! Different device types have different thermal limits and you device may not behave properly or heat up too much after these changes are made.
I have made these changes myself on a Xiaomi Mi Mix (Snapdragon 821) without any issues.
The highest temp the CPU got to was 42 degrees Celsius after running Dolphin for 2 hours straight.
There is no need for thermal throttling on this device at all, hardware does a good enough job clearing the heat.
To stop the thermal throttling you need root access.
Use ES File Explorer from the play store and enable root access
Navigate to root and look for Folder system/etc and find file called thermal*******.conf ( File name differs depending on device )
Cut this file from this location and paste it into another directory. I moved it to the sdcard for easy access. This way you can move it back if you do not like the results.
I have not experienced any overheating with this, also the battery doesn't drain like crazy. Performance is greatly improved with speed matching the Snapdragon 835 in a few scenarios.
Oh yeah restart the phone after you move the file so it can register the changes. Clock the cores appropriately with Kernal Auditor to make sure it can run at full blast when it needs to. On demand is way faster than interactive.
As a quick reminder to anyone reading this - thermal throttling exists to protect devices (and you!) from damage! Phones target low temperatures for throttling because you have to hold the very body that is used to dissipate heat! On desktops, it's acceptable for the CPU to hit 90°C (nearly 200°F!) before throttling. That's HOT! Even if your phone's SoC could take it, your hand won't!
But also, a phone processor isn't a desktop processor, and it has a much harder time getting rid of heat. Thermal runaway is much harder to stop on a phone. By disabling thermal throttling you may damage your device and at the very least will invalidate your warranty.
TL : DR - This a bad idea!
(05-29-2017, 08:16 AM)MayImilae Wrote: [ -> ]As a quick reminder to anyone reading this - thermal throttling exists to protect devices (and you!) from damage! Phones target low temperatures for throttling because you have to hold the very body that is used to dissipate heat! On desktops, it's acceptable for the CPU to hit 90°C (nearly 200°F!) before throttling. That's HOT! Even if your phone's SoC could take it, your hand won't!
But also, a phone processor isn't a desktop processor, and it has a much harder time getting rid of heat. Thermal runaway is much harder to stop on a phone. By disabling thermal throttling you may damage your device and at the very least will invalidate your warranty.
TL : DR - This a bad idea!
Your warranty is void just by rooting your device or after 1 year from it's purchase.
By using Kernal Auditor you can choose other Thermal control options other than using this .conf file.
Most phones start their throttling at 35 degrees Celsius which is garbage, these devices shouldn't throttle until 45 - 50 tops.
Most companies simply want it to seem like their phone has amazing battery life and always runs cool so they severely limits the CPU power upon any heat detection.
The reason to have android is to take full control over everything your phone does, this is something else you can control.
(05-29-2017, 08:16 AM)MayImilae Wrote: [ -> ]As a quick reminder to anyone reading this - thermal throttling exists to protect devices (and you!) from damage! Phones target low temperatures for throttling because you have to hold the very body that is used to dissipate heat! On desktops, it's acceptable for the CPU to hit 90°C (nearly 200°F!) before throttling. That's HOT! Even if your phone's SoC could take it, your hand won't!
But also, a phone processor isn't a desktop processor, and it has a much harder time getting rid of heat. Thermal runaway is much harder to stop on a phone. By disabling thermal throttling you may damage your device and at the very least will invalidate your warranty.
TL : DR - This a bad idea!
This is absolutely true in 95% of cases. However, especially with OEM's like Xiaomi, I find they instigate exceedingly conservative throttling parameters for the sake of battery life or to prevent even the slightest instance of heating. Don't get me wrong, modifying DVFS and raising thermal parameters is dangerous no matter what, and should be understood by the user as not supported. However, it does work. Most mobile devices have conservative thermal governing because they are calibrated for the casual user. There is room to safely raise the maximum and not destroy the device. Even beyond that, most devices do have absolute fail safes to prevent that (my OPO for instance has a governor option in its stock software that disables DVFS and maxes out all clocks, however upon passing 95C the device is turned off).
TL

R it's totally dangerous and you should be prepared to break your device if you do this, however in terms of performance it also works very well. So make the trade off you feel comfortable with, and maybe even do some educated research on what your device can realistically handle.
Nintonito Wrote:I find they instigate exceedingly conservative throttling parameters for the sake of battery life or to prevent even the slightest instance of heating. Don't get me wrong, modifying DVFS and raising thermal parameters is dangerous no matter what
But this thread is named "disable thermal throttling" not "adjust thermal throttling!" And the instructions are for just that.
New android (N+) has an option specifically for this. It's called the "sustained performance mode". It is designed to allow apps to opt into a mode that *disables* any unsustainable boost clocks. This is the only answer to thermal throttling (outside of hardware mods - and attaching a fan and heatsink may affect your phone's portability
But I believe it's optional for vendors to implement (though it's part of the VR "daydream" stuff so some kind of implementation may be required for that certification) - and even then it's up to the vendors to decide just what is "sustainable" performance.
I had a go at setting it here:
https://github.com/JonnyH/dolphin/commit/283ef6da68fd1d79dcd6c396e96984bfc073c454
I don't have an android device that implements this properly to test right now, so that might be completely wrong.
(As an "android" dev I would probably recommend enabling that by default, as I don't see *any* use case for an emulator that slows down after 60 seconds...)
(05-29-2017, 09:02 AM)MayImilae Wrote: [ -> ]But this thread is named "disable thermal throttling" not "adjust thermal throttling!" And the instructions are for just that.
It's really not a big deal to remove the thermal throttling.
CPUs are rated for up to 90 C
GPU is the same 90 C
Lion Battery's are rated up to 110 C
Also these chips have their own hardware thermal protection, removing the software side is not a big deal.
My device without any thermal software enabled never gets above 39.5 C for the battery , 42 C for the CPU and 55 C for the GPU.
(05-29-2017, 09:19 AM)JonnyH Wrote: [ -> ]New android (N+) has an option specifically for this. It's called the "sustained performance mode". It is designed to allow apps to opt into a mode that *disables* any unsustainable boost clocks. This is the only answer to thermal throttling (outside of hardware mods - and attaching a fan and heatsink may affect your phone's portability 
But I believe it's optional for vendors to implement (though it's part of the VR "daydream" stuff so some kind of implementation may be required for that certification) - and even then it's up to the vendors to decide just what is "sustainable" performance.
I had a go at setting it here: https://github.com/JonnyH/dolphin/commit/283ef6da68fd1d79dcd6c396e96984bfc073c454
I don't have an android device that implements this properly to test right now, so that might be completely wrong.
(As an "android" dev I would probably recommend enabling that by default, as I don't see *any* use case for an emulator that slows down after 60 seconds...)
Can you share a build for test?
Benchmarks usually test two parts: Peak performance within a minute, and battery life on "max utilization". So some device already start to throttle after a minute regardless of the thermal, just to fullify the second test. Bad luck, no benchmark checks the battery efficientcy, eg how many frames in total can be rendered.