Adaptive Performance Package

We release 1.1.2 to fix the problem @LioMiss1 reported. Thanks for bringing that up.

Hi,I used an empty scene which occupied 100MB of memory. After adding ADP, it became 150MB. What are the main aspects of memory usage by ADP?

It would be around 500kb. Not much more, a little more per Scaler, but not more otherwise.

After your report we tested it again on different Unity Versions, with empty scenes with scenes and content (eg. the samples) on different host environments. We have not found any memory increase more than 1MB when adding AP. Is there any more information or a test sample you can provider?

We released an update for Adaptive Performance version 5.0.2 and the Android Provider version 1.2.1 today. It comes as verified packages in 2023.3+ but also work with 2021.2+.

New in Adaptive Performance 5.0.2

  • Fixed asset save decision which causes the editor to save profiles constantly while the Adaptive Performance settings window is open.
  • Meta file which should not be there since the folder is empty.

New in Google Android 5.0.2

  • Some devices do not report correct thermal headroom numbers. Disabling Adaptive Performance on those devices.
  • (1.2.0) Unity Support Version dropped to 2021

Installation
To install the package(s), please add them manually to the package manifest or install them via the Adaptive Performance Provider settings menu or upgrade in the package manager.
Code (CSharp):

  • “com.unity.adaptiveperformance”: “5.0.2”,
  • “com.unity.adaptiveperformance.google.android”: “1.2.1”,

As always we love to hear your feedback using those new Adaptive Performance versions.

1 Like

@David-Berger May I ask , if the adaptive performance on Android/iOS support Webgl runtime as well or not?

I did try looking for that in the documentation but I couldn’t find any

Adaptive Performance is native only. Are there any specific Webgl APIs you are looking for being supported?

To answer your question: No, there is no specific API, I’m just not sure if the package is useful if we shipping a webgl build just to run on Android/iOS… would be possible to clarify if the package would have any effect on webgl builds that is runs on Mobile phones?

Thanks for your patiences:))

Without specific APIs the answer is no, it won’t activate anything on the OS side and won’t be activated in the app either.

2 Likes

Reply, thank you:)

We released an update for Adaptive Performance version 5.1.0 and the Android Provider version 1.3.1 today. It comes as verified packages in 2023.2+ but also work with 2021.2+.

New in Adaptive Performance 5.1.0

  • New property on IAdaptivePerformanceSettings to enable automated frame rate control based on the device performance mode changes.

New in Google Android 1.3.1

  • Native libraries are automatically excluded from the build if provider is disabled in Adaptive Performance settings.

  • Enabled a new property on IAdaptivePerformanceSettings to automate frame rate control based on the changes in device performance mode.

  • Removed SetGameState call on Adaptive Performance initialization to allow automated SetGameState calls from the Unity Player.

Installation
To install the package(s), please add them manually to the package manifest or install them via the Adaptive Performance Provider settings menu or upgrade in the package manager.
Code (CSharp):

  • “com.unity.adaptiveperformance”: “5.1.0”,
  • “com.unity.adaptiveperformance.google.android”: “1.3.1”,

As always we love to hear your feedback using those new Adaptive Performance versions.

1 Like

Which Unity version is compatible with which package and which provider is a mess I think. We’re currently on 2021.3 LTS.

The first post is says 5.0.0 version of Adaptive Performance is requires Unity 2023.1+
Here it says requires 2021.2 and later
For Samsung it says that it requires at least 2021.2
For Android the table says minimum 2021.3 LTS and Android 11; but the above it requires 2023.1, and Android 12. And also, in the changelog, it says (1.2.0) Unity Support Version dropped to 2021.
And also, “Installing Adaptive Performance” page for Adaptive Performance says that the Android provider is supported for 5.0.0 (and 5.1.0), but not 4.0.0

I am really confused. But, we tried 5.1.0, and it’s not working on build (Android 11, also some Editor errors for Scaler Profile) as summary (also, 4.0.1 with Android provider doesn’t work; or samsung 5.0.0 provider).

Please please please, update the documentations properly. Nearly all Unity package documentations are contains out of date content and they’re misleading.

1 Like

My apologize for the errors on 5.1.0 - we fixed them but have not published the package update yet.

What does not work with “4.0.1 with Android provider doesn’t work; or samsung 5.0.0 provider”?

Generally, there is a official support for the package, which for 5.0.0 is 2023.1 - but official support (by unity if you use the official support channels) does not mean it does not execute (the version supports) on other versions, and the technical limit to that is 2021.2. The limitation for 2021.2 is only due to the profiler addition, if you strip that out of the package (manually) then you can run it on any version of unity which supports packages. This is for the core package and the Samsung provider.

The Android Provider has also Android version limitations, which means that if you want to use certain features you need to run on a specific Android version since it’s not available before. e.g. Thermal APIs are available from Android 11+, but things like the Session APIs are only available in Android 12+. So if you run Adaptive Performance on Android 11 the thermals will work, but the Session API calls won’t work and that’s independent of the Unity Version. We dropped the support to 2021(.2) for Android Provider, since we figured that it’s easier to support more Unity Versions, but disable specific features if they are not available on that version (e.g. the game mode support) but some limitations like depending on Unity Packages (profiler module) can not be worked around and we can only support starting from whatever Unity version that package uses (2021.2).

1 Like

Thank you for the detailed answer. I really appreciate all your efforts on developing Unity & answering us on here.

Adaptive Performance 4.0.1 is not compatible with Android Provider (Android Provider 1.3.1 directly requires Adaptive Perf 5.1.0; Android Provider 1.2.1 requires 5.0.0).

We tried Adaptive Perf 5.1.0 + Android Prov 1.3.1 + Samsung Prov 5.0.0 on an Android 11 (not Samsung) with Unity 2021.3.40f1 LTS; but Holder.Instance.Active is returning false. This is working for Samsung devices with Adaptive Perf 4.0.1 + Samsung Prov 4.0.2 (we don’t have Samsung right now, can’t test with Adap. Perf. 5+). We’re only using Thermal API at the moment in our project btw. On the Requirements page, device support is saying the min Android version is 12 (maybe just a typo, idk); and the table below says Android 11. We don’t have Android 12 at the office at the moment, so I can’t test it right away.

If you can confirm that Android Provider is working with 2021.3 LTS on Android devices, I can test next week, and give you feedback.

Anyway, my main problem is the versioning and dependency check (I can wait for Android Provider until we update to Unity 6, so it’s OK for me), which is very complicated in my opinion. I believe, at least providers’ versioning should be match with Adaptive Performance package version (just like in AR Foundation) and we should only check the main package for the Unity compatibility (maybe a table :upside_down_face:, or at least min Unity version).

And, btw, will there be an iOS provider in the future? Right now we’re using a little helper from ARKit for Thermal features. And with iOS 18, I think there’ll be more APIs for games.

Correct, AP 4.0 and 5.0 are different.

Yes, Android 11 should work. What device do you use? You can send me a private message to db@unity.com for that info if you don’t want to share it publicly.

It should work, I’ll test on my end as well and will report back if it would not for some reason.

I take that feedback for the versioning. Thanks for that.

I would like to provide a basic provider with at least the thermal info, but we are resource constrained, so it is not planned at the moment to release anything for iOS anytime soon.

1 Like

So sorry for the very late answer =') The device we tested is Redmi Note 8 Pro with Android 11 (11 RP1A.200720.011).

We released an update for Adaptive Performance version 5.1.1 today. It comes as verified packages in 6.0+ but also work with 2021.2+.

Fixes in Adaptive Performance 5.1.1

  • APB-45 Custom Adaptive Performance Scaler is not updated in the Profiler and Simulator when it does not have an overridden name
  • Issues with Scaler profiles not applied during start initialization
  • APB-34 Adaptive Performance reset Application.target framerate to -1
  • APB-36: "NullReferenceException: Object reference not set to an instance of an object“ error is thrown when clicking on the disabled Default Scaler Profile setting
  • APB-40 In ShadowQuality Scaler the MainLightShadowCascadesCountBias being incorrectly adjusted when changing Adaptive Performance Shadow Quality. It adjust ShadowQualityBias now instead.
  • DOCR-4448, DOCR-4715, DOCR-4608 - Documentation fixes.

Installation
To install the package(s), please add them manually to the package manifest or install them via the Adaptive Performance Provider settings menu or upgrade in the package manager.
Code (CSharp):

  • “com.unity.adaptiveperformance”: “5.1.1”,

As always we love to hear your feedback using those new Adaptive Performance versions.

@ TeorikDeli1 We are fixing some bugs on the Android Provider which might help to fix your problem as well and we are planning to release the fixes soon. Stay tuned! Also, thanks for the feedback about versioning. We hope to unify it in the same release. Additionally, with this latest release the Scaler Profile issue should be gone. Please try the 5.1.1 version.

1 Like

That’s great news, thanks! BTW, we upgraded our project to Unity 6; I think Android provider still doesn’t work for us (but never had time to check it properly, it might be a problem on our side, because we disabled/commented out something(s) in the 21 LTS so I am not sure if we’ve fixed in 6). But I’ll give you feedback once we again check the Adaptive Performance implementation.