public AutoPerformanceLevelController(IDevicePerformanceControl perfControl, IPerformanceStatus perfStat, IThermalStatus thermalStat)
        {
            UpdateInterval                   = 5.0f;
            TargetFrameTime                  = -1.0f;
            AllowedCpuActiveTimeRatio        = 0.8f;
            AllowedGpuActiveTimeRatio        = 0.8f;
            GpuLevelBounceAvoidanceThreshold = 10.0f;
            CpuLevelBounceAvoidanceThreshold = 10.0f;
            MinTargetFrameRateHitTime        = 10.0f;
            MaxTemperatureLevel              = 0.9f;

            m_PerfStats    = perfStat;
            m_PerfControl  = perfControl;
            m_ThermalStats = thermalStat;

            perfStat.PerformanceBottleneckChangeEvent += (PerformanceBottleneckChangeEventArgs ev) => OnBottleneckChange(ev);
        }
Example #2
0
        public AutoPerformanceLevelController(IDevicePerformanceControl perfControl, IPerformanceStatus perfStat, IThermalStatus thermalStat, Provider.AdaptivePerformanceSubsystem subsystem)
        {
            UpdateInterval                   = 5.0f;
            TargetFrameTime                  = -1.0f;
            AllowedCpuActiveTimeRatio        = 0.8f;
            AllowedGpuActiveTimeRatio        = 0.9f;
            GpuLevelBounceAvoidanceThreshold = 10.0f;
            CpuLevelBounceAvoidanceThreshold = 10.0f;
            MinTargetFrameRateHitTime        = 10.0f;
            MaxTemperatureLevel              = 0.9f;

            m_PerfStats    = perfStat;
            m_PerfControl  = perfControl;
            m_ThermalStats = thermalStat;

            if (subsystem.Version == m_Version)
            {
                m_MinCPULevel = 1;
            }


            perfStat.PerformanceBottleneckChangeEvent += (PerformanceBottleneckChangeEventArgs ev) => OnBottleneckChange(ev);
            AdaptivePerformanceAnalytics.RegisterFeature(m_featureName, m_Enabled);
        }