override public PerformanceDataRecord Update() { // GameSDK API is very slow (~4ms per call), so update those numbers once per frame from another thread float timeSinceStartup = Time.time; m_GPUTime.Update(timeSinceStartup); bool tempChanged = m_MainTemperature.Update(timeSinceStartup); lock (m_DataLock) { if (tempChanged) { m_Data.ChangeFlags |= Feature.TemperatureLevel; m_Data.TemperatureLevel = GetTemperatureLevel(); } m_Data.GpuFrameTime = LatestGpuFrameTime(); m_Data.ChangeFlags |= Feature.GpuFrameTime; PerformanceDataRecord result = m_Data; m_Data.ChangeFlags = Feature.None; return(result); } }
override public PerformanceDataRecord Update() { // GameSDK API is very slow (~4ms per call), so update those numbers once per frame from another thread float timeSinceStartup = Time.time; m_GPUTime.Update(timeSinceStartup); bool tempChanged = m_MainTemperature.Update(timeSinceStartup); if (m_PerformanceLevelControlSystemChange) { var temperatureLevel = (float)m_SkinTemp.value; if (temperatureLevel < 5) { m_PerformanceLevelControlSystemChange = false; lock (m_DataLock) { m_Data.PerformanceLevelControlAvailable = true; m_Data.ChangeFlags |= Feature.PerformanceLevelControl; } } } lock (m_DataLock) { if (tempChanged) { m_Data.ChangeFlags |= Feature.TemperatureLevel; m_Data.TemperatureLevel = GetTemperatureLevel(); } m_Data.GpuFrameTime = LatestGpuFrameTime(); m_Data.ChangeFlags |= Feature.GpuFrameTime; PerformanceDataRecord result = m_Data; m_Data.ChangeFlags = Feature.None; return(result); } }