Adaptive Performance Package

hello,

what is difference between “com.unity.mobile.adaptiveperformance” and “com.unity.adaptiveperformance” ? mobile and other platforms??

or we can using “com.unity.mobile.adaptiveperformance” on all platforms?

Hey, thanks for the question,

TLDR; com.unity.mobile.adaptiveperformance is a deprecated preview package and you want to use com.unity.adaptiveperformance now and depending on platforms, a specific platform provider such as com.unity.adaptiveperformance.samsung.android.

We have a note in the first post to explain the transition, but I’ll extend it to make it more clear by adding the bundle id name changes. You want to uninstall all previous packages (com.unity.mobile.adaptiveperformance) and install the new packages (com.unity.adaptiveperformance.samsung.android and com.unity.adaptiveperformance). Please let me know if that helps. Here’s the note:

Note: If you have installed a preview version of Adaptive Performance before 0.2.0-preview.1 you will need to manually uninstall the Adaptive Performance package (com.unity.mobile.adaptiveperformance) before installing the latest version through the Adaptive Performance Samsung (Android) package (com.unity.adaptiveperformance.samsung.android and com.unity.adaptiveperformance) as we had to make updates to the API and package structure which made it impossible to auto-update the package due to namespace changes (from com.unity.mobile.adaptiveperformance to com.unity.adaptiveperformance).

nice :]
so … its possible to using this new on all platforms?? awesome …

and have to rewrite like this?

using UnityEngine.AdaptivePerformance;

public class blablabla : MonoBehaviour
{
    IAdaptivePerformance performance;

    void Start()
    {
        performance = Holder.Instance;
        performance.ThermalStatus.ThermalEvent += OnThermalEvent;
    }

    void OnThermalEvent(ThermalMetrics item)
    {
        switch (item.WarningLevel)
        {
            case WarningLevel.NoWarning:
                BLABLABLA;
                break;
            case WarningLevel.ThrottlingImminent:
                BLABLABLA;
                break;
            case WarningLevel.Throttling:
                BLABLABLA;
                break;
        }
    }
}

The code is correct. That’s the changes you will need. I attached the AdaptivePerformanceController.cs used in Megacity demo project and updated to 1.0.0 package APIs.

The Adaptive Performance package (com.unity.adaptiveperformance) can run on any platform, but currently, there is only a Samsung provider available (com.unity.adaptiveperformance.samsung.android). But we are looking into offering additional provider packages in future.

Hope this helps!

4892684–472892–AdaptivePerformanceController.cs (6.97 KB)

1 Like

Thank you David!

Hello David,
is Adaptive Performance now working on all Samsung Devices?
we mostly work with samsung tabs and would try it in our next project.

thank you, for your time

Currently, it’s only supported on Samsung S10, but stay for more news soon.

Call of Duty Mobile & Adaptive Performance
During Unite Copenhagen 2019 Samsung presented Call of Duty Mobile optimizations using Adaptive Performance to increase the stability of the game on Samsung devices. The recording is available now and you can watch it here:

https://www.youtube.com/watch?v=r-kICWS-XWI

Please be advised that a new version of Adaptive Performance (1.0.1) and the Samsung Provider (1.0.1) have been released. These versions are required if you are using Unity 2020.1a6+ or 2019.3b6+, if you are using older version of Unity, it’s not required to update to the newest package. If you are using an earlier version of 2019.3 beta or 2020.1 alpha you should not update to 1.0.1 as it will not work.

We released 2.0.0-preview.1 of Adaptive Performance today, which brings the Device Simulator extension for Adaptive Performance to simulate thermal and bottleneck events in the editor using the new device simulator so you can test your implementation already in the editor without deploying to the device!

Simulate throttling events, thermal level and trends:

Simulate bottleneck events, auto control mode and CPU/GPU levels.

Installation:

  • Open Unity Package Manager
  • Enable “Show preview packages” in the Advanced menu.
  • Update or Install Adaptive Performance package to 2.0.0-preview.1
  • Install the Device Simulator package (preview)
  • The Simulator view will show the Adaptive Performance section as soon as the preview is installed and the Simulator view is opened.

Note: Currently the simulation only works in Play Mode and states will not be saved. Being able to set the values before going into play mode will come in an later version.

There’s more planned for the simulator, so please stay tuned and as always, we would love to hear your feedback! Happy developing!

Edit: Corrected the package version

1 Like

Hi all,
we have a new presentation available and overworked the first post to reflect all changes better. Hope you enjoy the talk!

Call of Duty Mobile & Adaptive Performance
During Samsung Developer Conference 2019 Samsung and Unity presented Call of Duty Mobile optimizations using Adaptive Performance to increase the stability of the game on Samsung devices.

1.1.0-preview.3 is available now which fixes UI issues in the Device Simulator extension and fixes a bug which would not show CPU/GPU timings in the Simulator when you go into play mode.

Also a little vide on how Thermal Throttling Simulation works in the Editor
5220077--520259--ezgif-6-9531830706ab.gif

We recently release Adaptive Performance 1.1.0-preview.4 and removed the device simulator extension as it requires breaking changes which can not be introduced to 1.x.x but it comes with additional fixes.

We also release Adaptive Performance 2.0.0-preview.1 which adds the device simulator extension.

This should help to update the verified packages in future without introducing API breaking changes.

What does this mean for support?

Adaptive Performance Packages:

  • 1.x.x supports Unity 2019 LTS as verified package
  • 2.x.x supports Unity 2020 LTS (planned) as verified package

We release Adaptive Performance 1.1.0 today which brings fixes and improvements. It will be verified with one of the next 2019.3 releases but is available for upgrade today!

1 Like

We released Adaptive Performance 2.0.0 Preview 2 today which comes with optimizations to the device simulator extension.

Give it a try and let us know if it increases your workflow of testing Adaptive Performance in the Editor! :sunglasses:

We released Adaptive Performance Samsung Android 1.1.2 today which comes with very important bugfixes and updates. It is compatible with Adaptive Performance 1.1.0.

Please update to this package if you target the new Samsung Galaxy S20 devices.

  • Update to GameSDK 3.1

  • Bugfix which avoid onRefreshRateChanged() crash on S20 during Motion smoothness change (60Hz ↔ 120Hz) (while app is in background)

  • Improvement with GameSDK 3.1 SetFrequLevel callback for temperature mitigation to avoid overheating when no additional scale factors are used. This replaces SetLevelWithScene in GameSDK 3.1

We released Adaptive Performance Samsung Android 1.1.3 today which comes with very important bugfixes and updates. It is compatible with Adaptive Performance 1.1.0.

Please update to this package if you target the new Samsung Galaxy S20 devices.

  • Bugfix - which avoids that callbacks in GameSDK 3.1, such as Listener.onHighTempWarning(), are not called when onRefreshRateChanged() is not implemented. This is only present on devices supporting VRR
  • Improvement - with GameSDK 3.1 it’s not necessary to (un)register listeners during OnPause and OnResume as it’s handled in the GameSDK

We released Adaptive Performance Samsung Android 1.1.4 today which comes with a critical fix which removes GameSDK 3.1 support. It support GameSDK 1.5, 1.6, 2.0 and 3.0. It is compatible with Adaptive Performance 1.1.0.

Please update to this package if you target the new Samsung Galaxy S20 devices or any Galaxy Device with GameSDK 3.1 support such as Galaxy devices receiving Android 10 (Q) updates.

  • Removed Game SDK 3.1 initialization due to issues in GameSDK 3.1. Any other GameSDK version is still supported.

We released Adaptive Performance 2.0.0 Preview 4 today which comes with VRR (Variable Refresh Rate) support.

Currently Supported Devices:

  • Galaxy S20 with GameSDK 3.2 (April update)

Unity Editor:

  • Unity 2020.2.0a7+
  • Unity 2020.1.0b5+
  • Unity 2019.3.11f1+

As always, give it a try and let us know if it helps you to adapt your game to variable refresh rates on Samsung Galaxy Devices!

We released Adaptive Performance and Samsung Android 1.1.6 today which comes with changes in the GameSDK 3.2 support. Please read the changelog for details.

  • GameSDK 3.2 uses a wider range of temperature levels and maximum temperature level is changed to level 10.
  • GameSDK 3.2 has a different behaviour when setting frequency levels and warning level 2 (throttling) is reached and you are always in control of the CPU/GPU level.