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.
Indexer and Quality Scaler
Unity Editor UX/UI
Simulator
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.
Unity Editor UX/UI
When you install the Adaptive Performance Package and the Adaptive Performance Samsung Android package , you can find out that [Adaptive Performance] is added on Project Settings. To use this properly you have to select Providers first.
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.
Simulator
The Simulator has been added in AP 2.0 so we can test operations in different thermal settings as well as the scaler values all without a device.
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.
Indexer and Quality Scaler
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.
Target Current Bottleneck
Lowest Level
Lowest Visual Impact
The Scaler can only operate when the indexer is activated and you can make this setting in the Project Setting.
Built-in Scalers
Here are Built-in Scalers that Adaptive Performance 2.0 provides.
General Render
Adaptive Framerate : automatically control the application’s framerate within the defined min/max ranges.
Adaptive LOD : change the LOD bias based on the thermal and performance load.
Adaptive Resolution : automatically control the screen resolution of the application by the defined scale.
Universal Render Pipeline Scalers
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.
Adaptive Batching : toggle dynamic batching based on thermal and performance load.
Adaptive LUT : change LUT bias of the URP.
Adaptive MSAA : change the Anti Aliasing Quality Bias of URP. This scaler only affects the camera’s post processing subpixel morphological Anti-aliasing(SMAA) quality level.
Adaptive Shadow Cascades : change the Main Light Shadow Cascades Count Bias of the URP
Adaptive Shadow Distance : change the Max Shadow Distance Multiplier of URP
Adaptive Shadow Quality : change the Shadow Quality Bias of the URP
Adaptive Shadow map Resolution : change the Main Light Shadowmap Resolution Multiplier of the URP.
Adaptive Sorting : skip the front-to back sorting of URP.
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.
Custom Scaler
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;
int m_DefaultTextureQuality;
protected override void OnDisabled()
{
QualitySettings.masterTextureLimit = m_DefaultTextureQuality;
}
protected override void OnEnabled()
{
m_DefaultTextureQuality = QualitySettings.masterTextureLimit;
}
protected override void OnLevel()
{
switch (CurrentLevel)
{
case 0:
QualitySettings.masterTextureLimit = 0;
break;
case 1:
QualitySettings.masterTextureLimit = 1;
break;
case 2:
QualitySettings.masterTextureLimit = 2;
break;
}
}
}
Samsung Provider Scaler
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.
What will change with Quality Scaler
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.
We use cookies to improve your experience on our website and to show you relevant
advertising. Manage you settings for our cookies below.
Essential Cookies
These cookies are essential as they enable you to move around the website. This
category cannot be disabled.
Company
Domain
Samsung Electronics
.samsungdeveloperconference.com
Analytical/Performance Cookies
These cookies collect information about how you use our website. for example which
pages you visit most often. All information these cookies collect is used to improve
how the website works.
Company
Domain
LinkedIn
.linkedin.com
Meta (formerly Facebook)
.samsungdeveloperconference.com
Google Inc.
.samsungdeveloperconference.com
Functionality Cookies
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and
tailor the website to provide enhanced features and content for you.
Company
Domain
LinkedIn
.ads.linkedin.com, .linkedin.com
Advertising Cookies
These cookies gather information about your browser habits. They remember that
you've visited our website and share this information with other organizations such
as advertisers.
Company
Domain
LinkedIn
.linkedin.com
Meta (formerly Facebook)
.samsungdeveloperconference.com
Google Inc.
.samsungdeveloperconference.com
Preferences Submitted
You have successfully updated your cookie preferences.