At GDC 2019, Unity announced Adaptive Performance at their keynote, and now the preview version of AP, and the Megacity mobile sample are available for developers.
Adaptive Performance provides developers a better way to manage thermals and game performance on a device in real time, allowing proactive adjustments and quality settings for the game without overtaxing the device. This results in a predictable frame rate and a decrease in thermal build up for longer play times and more enjoyable player experiences. The concept is very similar to Qualcomm's Power SDK.
This week Unity posted on their blog about Adaptive Performance, referencing the GDC talk they did as well:
So what are the benefits?
Unity discusses the benefits in the Blog, starting with a look at the frame rate with and without Adaptive Performance on a Samsung Galaxy S10.
Red is the Megacity demo before; blue is after.
Read the full blog post for more information, but Unity does provide the basic framework they used with Adaptive Performance to smooth the framerate, get better performance, and lower power consumption, including sample code for how to use Adaptive Performance:
QuoteIn the sample implementation of Adaptive Performance in Megacity, we used three different ways to smooth the frame rate:
- By starting at moderate CPU and GPU levels, and increasing them gradually to eliminate bottlenecks, we were able to keep energy consumption low.
- If we saw that the device was getting close to throttling, we could tune quality settings to reduce thermal load – and we decided to lower the LOD levels.
- We also decreased the target frame rate once we were close to throttling.
- When the target frame rate is reached and temperature is in decline, we increase LOD levels, raise target frame rate, and decrease CPU and GPU levels again.
These capabilities enable your game to achieve a smoother performance over time. By keeping a close eye on a device’s thermal trends, you can adjust performance settings on the fly to avoid throttling altogether.