Forum Discussion

zeroonedeveloper's avatar
4 years ago
Solved

suggestedCpuPerfLevel and suggestedGpuPerfLevel appear to do nothing

Setting OVRManager.suggestedCpuPerfLevel and OVRManager.suggestedGpuPerfLevel to OVRManager.ProcessorPerformanceLevel.Boost has no effect on CPU and GPU levels when observed through the OVRMetrics tool. Both are locked to CPU = 1 and GPU = 1. How do give the app control over these levels to increase or decrease as required by the game?

Using Unity 2019.3.34 and Oculus Integration 39.0.0.0

 

Thanks in advance

4 Replies

  • pro_zac's avatar
    pro_zac
    Meta Employee

    They are "suggested" levels because the power management system can override them to conserve battery or manage overheating. 

     

    "Gets or sets the current suggested CPU performance level, which can be overriden by the Power Management system."

    https://developer.oculus.com/reference/unity/v39/class_o_v_r_manager/#a6ec677bb216ae0ad4e62bff3fd8bdadf

     

    Is your app maxing out the CPU or GPU utilization? If not, the system may just be deeming the higher levels unnecessary. 

    • zeroonedeveloper's avatar
      zeroonedeveloper
      Protege

      Thanks for the quick response pro_zac

       

      I actually have them set to ProcessorPerformanceLevel.PowerSavings and the CPU sits at 0 and GPU 1 most of the time. It's only when loading level blocks (they animate on) does it need the extra grunt. CPU up to 1-2 GPU up to 2-3 for a few seconds. to keep the 72FPS.

      And we can only see this dynamic changing if we set the levels to -1 via ADB.

      If don't do this then the CPU and GPU stay at 1, but the frame rate drops to 56-60 

      You can hardly notice it but it violates Oculus submission.

       

      Why would the Power Management system keep them at 1 1 if the device is not throttling, overheating?