In the 2.0 version released in August 2020 - 12months after Adaptive Performance 1.0 first released-, we focused on what we missed in 1.0.
We improved 3 aspects of content control and enhanced the usability for developers.
In the 1.0 version, developers had to implement a real-time content control module by themselves, but in 2.0 we implemented a Quality Manager System. It provides various Built-in Scalers for developers. We improved the UX/UI of Unity Editor to make it easier for developers to use Adaptive Performance. . There is also a Simulator to help developers test Adaptive Performance easily without connecting devices.
Details of each implementation are as follows.
If you use it on your device, select the Samsung Android Provides as follows.
In the case of the Simulator, you have to select Device Simulator Provider on PC MAC & Linux Standalone settings.
If you are finished selecting Providers, you can use Adaptive Performance simply through the Adaptive Performance in Project Settings.
Auto Performance Mode is a part of the Power Manager which is provided from 1.0. it controls Performance automatically to achieve best performance and reduces battery consumption by changing the CPU/GPU levels. If you check Auto Performance Mode in Settings and activate Indexer Settings, you can set the scalers you want to use with simple checkboxes and scaling bars. In this case, a scaler setting is applied for the entire project. If you want to set it manually for each scene, you can do a more detailed setting by attaching Adaptive Performance Setting to an Object in the Scene.
To use the simulator, you have to download “Device Simulator Package” from the Package Manager. Then, as same as Unity Editor UX / UI above, you can set each scaler at Project Settings > Adaptive Performance > Simulator.
When you are done editing the scaler settings, open the Simulator with Window > General > Device Simulator. Through this simulator, you can check Adaptive Performance operation controlled by the temperature and the bottleneck situation.
The indexer is a quality management system for adaptive performance, it controls the game quality depending on the temperature and the performance status of the device.
The scaler is a tool that controls the quality of a scene based on the values below.
The Scaler can only operate when the indexer is activated and you can make this setting in the Project Setting.
The scalers below require the Universal Render Pipeline(URP) and directly changes the settings in the URP. So they will not have any effect when using any other Render Pipelines.
We provide built in scalers to make it easier for developers to control the quality of the content. Developers can use Built-in scaler easy and safely because they can choose which quality and how much they would control in basic UI.
Developers can make their own custom scaler, too. You can create a new class which inherits AdaptivePerformanceScaler.
Below is an example of TextureQualityScaler.
public class TextureQualityScaler : AdaptivePerformanceScaler
public override ScalerVisualImpact VisualImpact => ScalerVisualImpact.High;
public override ScalerTarget Target => ScalerTarget.GPU;
public override int MaxLevel => 2;
protected override void OnDisabled()
QualitySettings.masterTextureLimit = m_DefaultTextureQuality;
protected override void OnEnabled()
m_DefaultTextureQuality = QualitySettings.masterTextureLimit;
protected override void OnLevel()
QualitySettings.masterTextureLimit = 0;
QualitySettings.masterTextureLimit = 1;
QualitySettings.masterTextureLimit = 2;
When you select Samsung Provider Scaler in the project settings, You can use Adaptive VRR Scaler which is Samsung specific feature related with VRR (Variable Refresh Rate). Currently, the Galaxy S20 supports VRR among the Galaxy devices.
Basically you can use Automatic VRR with VRR supported devices. It can be enabled in the Project Settings and you can save battery consumption with this by setting refresh rate automatically.
In Samsung Provider, when you enable both Automatic VRR and Adaptive Framerate at the same time, it operates as the refresh rate closest to the achievable framerate, meaning the framerate between the min/max value in Automatic VRR and Adaptive Framerate settings. Through this, you can set target frame per scenes and control framerate within the ranges you want. So game users can play without feeling uncomfortable due to VRR adjustment.
You can also check Adaptive VRR’s operation through Adaptive Framerate Samples.
Game developers don’t like quality control of content because it might cause deteriorated game service quality. But Quality Manager 2.0 provides additional options to minimize visual impact through scaler control. Each scaler has visual impact options that are used to retain the quality of a scene when the performance is controlled.
The images below are Unity's Boat Attack Demo, and you can compare how much you see visual impact by LOD levels. If you see enlarged parts, you can find out that there are some missing trees when LOD level 3.
As you can see above, some Scalers have immediately recognizable visual impact, but some scalers barely have any.
Below is an example of Texture Quality Level differences. You might not see any differences with your eyes, but if you see Renderdoc capture, you can find that real texture size are diminished.
As you can see above two examples, visual impacts may vary depending on the type of scaler, but different visual impacts may occur depending on how the range is set in the same scaler.
Therefore, it is recommended that developers properly balance performance and quality by themselves.
※ You can find Supported version of Adaptive Performance 2.0 , more detailed user guide and FAQs as follows.
Detailed User Guide from Unity (Click)
Unity Adaptive Performance FAQs (Click)