Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

Feedback Adaptive Performance Package

Discussion in 'Android' started by David-Berger, Mar 28, 2019.

  1. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    Hi all,

    We announced the Adaptive Performance Package during GDC. Today we release the preview package and would love to hear your feedback.

    Note that this version of Adaptive Performance is compatible with the following versions of the Unity Editor:
    • 2019.1 (recommended)
    • 2018.3
    Adaptive Performance is currently supported on Galaxy S10 devices with Samsung GameSDK 1.6.
    GameSDK 1.6 update will be rolled out starting at the end of March on S10 devices. The update schedule is different in each region. Adaptive Performance logs the version of the SDK:

    Code (CSharp):
    1.  
    2. Adaptive Performance: version=1.6
    3.  
    For detailed information please check out the blog post and the package documentation.

    A quick step-up guide:
    • Unity needs Android Support installed (to build to your Samsung device)
    • Set active platform to be Android in Build Settings Window
    • Enable preview packages via Window->PackageManager->Advanced->Show preview packages
    • Install Adaptive Performance package


    • Build and Deploy to your device and Adaptive Performance starts printing status information to the console.
    Adaptive Performance Talks
    During GDC we gave several talks about adaptive performance. Please see the GDC Vault Samsung talk, which includes Adaptive Performance, here. Alternatively, please see the talk from the Unity Booth on our youtube channel here.



    If you have questions or feedback please post below. For bug reports, please use the Unity built-in bug reporter.

    Enjoy and let us know if you use it for something great, we always love to hear about success stories.

    -db
     
    Cromfeli, hippocoder and castana1962 like this.
  2. castana1962

    castana1962

    Joined:
    Apr 10, 2013
    Posts:
    361
    Hi
    I am very interested in using Adaptive Performance for VR projects, for it, Is it VR Ready?
    Thanks for your time
    Regards
    Alejandro
     
  3. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    Thanks, Alejandro,

    as mentioned in the blog the current preview targets Samsung Galaxy devices and is optimized for the Samsung S10 with more devices of the Samsung Galaxy family to follow. Our goal is to enable as many devices as possible to use Adaptive Performance in the future. The package is open source and you/anyone can take a look at the implementation at any time and add custom provider if necessary. What VR environment are you planning to use?
     
    castana1962 likes this.
  4. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,180
    Looking hot. Very cool feature!

    ...

    I know desktops and consoles aren't the target markets but it seems quite handy to be able to see if the bottleneck is GPU or CPU at runtime for any platform, this information seems like something other platforms could use too?
     
    Peter77 likes this.
  5. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    True! It would be very handy to have that info available during runtime on any platform. In Adaptive Performance, we currently use the GPU frametime exposed by the Samsung GameSDK and compare it with CPU time to implement the feedback for the events (simplified). This is not optimal and can be improved, but that's what we use right now. Depending on information on other platforms this could be implemented similarly. Said that, the package is open source and it's designed to add any data provider you wish, so it should be possible to extend it, even if we don't support the target platform yet.
     
    hippocoder likes this.
  6. castana1962

    castana1962

    Joined:
    Apr 10, 2013
    Posts:
    361
    Hi David
    First thanks to answer me so fast !!!
    On the other hand and answering your question, I am developing VR project for Oculus ( Rift/Go and hopeful Quest soon since that I think that this one will create a VR massive market) and HTC Vive/Valve.
    Since I think that the 3D Environment/Assets used in VR project are Low Poly( low quality), I am looking for some way to improve the VR Quality and its Performance and I would like to build them with DOTS and Adaptive Performance (taking as reference Megacity project).
    To be honest with you, It is very hard for me learn Adaptive Performance and ECS since that there are not many tutorials
    that teach us more deeply about both topics ( I saw some GDC 2019 conferences about them but unfortunate I cannot find them in the Unity Youtube Channel)
    Thanks to let me tell you about my VR projects and sorry for my little English
    Cheers
    Alejandro
     
  7. slime73

    slime73

    Joined:
    May 14, 2017
    Posts:
    27
    Have you looked into integrating it with Unity's existing FrameTiming APIs?
    https://docs.unity3d.com/ScriptReference/FrameTiming.html
    https://docs.unity3d.com/ScriptReference/FrameTimingManager.GetLatestTimings.html
     
  8. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    That's very good use-case, looking at VR and the need for stable framerate makes it a great scenario to add providers to utilize their APIs.

    Many of the tech in DOTs is still in preview and will be improved and get tutorials over time. Talking about Adaptive Performance this is the same, but everything you want to look into is in AdaptivePerformanceController in Megacity which controls the LODs. The main areas you might be interested in are mentioned in the blogpost such as thermal and bottleneck events handlers. The slides of my presentation about Adaptive Performance from GDC are linked in the blogpost as well. Once we have it on youtube, I'll link them here as well.

    For Megacity we have the landing page https://unity.com/megacity which includes several talks from Unite which are quite good to learn about the tech. But as it's still in preview and a lot of APIs and systems still change and get improved, so some talks might be dated.

    I hope that helps to get you started!
     
    castana1962 likes this.
  9. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    The APIs are platform/graphics API dependent but were appropriate we might integrate them. Those APIs have been created for dynamic resolution, which is a feature we would love to integrate into Adaptive Performance as well, probably as high-level Component.
     
  10. castana1962

    castana1962

    Joined:
    Apr 10, 2013
    Posts:
    361
    Hi David
    Thanks for your help and your advice
    Best Regards
    Alejandro
     
  11. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    102
    Very interesting!
    Where's the open source project? I couldn't find it on Unity GitHub. Thanks.
     
  12. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    It's a package, you can simply take the package content from its install location (Library/PackageCache) after installing it and add it to your local project e.g. into the local Package folder in your project root. See also the packages documentation here. Let me know how it goes!
     
  13. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    102
    I wanted the repo to check if anyone is doing something on the iOS side.
     
  14. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    There's no public repo. You can easily integrate an iOS provider yourself. However, iOS currently only exposes thermal events, but no temperature trends or skin temperatures and does not provide the functionality to adjust CPU or GPU frequency.
     
  15. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    715
    Cool concept, but only one single device is supported thanks to a very specific SDK found on that manufacturers devices? What is plan of attack for rolling this feature out to all mobile devices from a variety of manufacturers? As cool as this feature is, it is a bit hard to adopt when there is no guarantee that this will ever fully work on anything other than Galaxy devices..? I love the ideas here though. Being able to tell the CPU and GPU to chill out when in the menu's, and being able to adjust performance on the fly to avoid overheating - all sounds great.

    For now, we'll just tick on 'Sustained Performance' and try out best to hit 60fps even with the lower CPU/GPU power.
     
  16. David-Berger

    David-Berger

    Unity Technologies

    Joined:
    Jul 16, 2014
    Posts:
    654
    We hear you and yes, we believe in adaptive performance and that it would be very valuable on many platforms. However, it requires functionality only OEMs can expose those (or override them) and we want to ensure our API is right for the use-case Unity developer face.