diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/lltracerecording.cpp | 1 | ||||
| -rw-r--r-- | indra/llcommon/llunit.h | 13 | ||||
| -rw-r--r-- | indra/newview/llscenemonitor.cpp | 24 | 
3 files changed, 28 insertions, 10 deletions
| diff --git a/indra/llcommon/lltracerecording.cpp b/indra/llcommon/lltracerecording.cpp index 5d43771cb2..48b5a7c3fa 100644 --- a/indra/llcommon/lltracerecording.cpp +++ b/indra/llcommon/lltracerecording.cpp @@ -41,7 +41,6 @@ namespace LLTrace  Recording::Recording(EPlayState state)   :	mElapsedSeconds(0),  	mInHandOff(false) -  {  	mBuffers = new AccumulatorBufferGroup();  	setPlayState(state); diff --git a/indra/llcommon/llunit.h b/indra/llcommon/llunit.h index 79465715cf..2e09973ef6 100644 --- a/indra/llcommon/llunit.h +++ b/indra/llcommon/llunit.h @@ -139,6 +139,13 @@ protected:  };  template<typename STORAGE_TYPE, typename UNIT_TYPE> +std::ostream& operator <<(std::ostream& s, const LLUnit<STORAGE_TYPE, UNIT_TYPE>& unit) +{ +	s << unit.value() << UNIT_TYPE::getUnitLabel(); +	return s; +} + +template<typename STORAGE_TYPE, typename UNIT_TYPE>  struct LLUnitImplicit : public LLUnit<STORAGE_TYPE, UNIT_TYPE>  {  	typedef LLUnitImplicit<STORAGE_TYPE, UNIT_TYPE> self_t; @@ -162,6 +169,12 @@ struct LLUnitImplicit : public LLUnit<STORAGE_TYPE, UNIT_TYPE>  	}  }; +template<typename STORAGE_TYPE, typename UNIT_TYPE> +std::ostream& operator <<(std::ostream& s, const LLUnitImplicit<STORAGE_TYPE, UNIT_TYPE>& unit) +{ +	s << unit.value() << UNIT_TYPE::getUnitLabel(); +	return s; +}  template<typename S1, typename T1, typename S2, typename T2>  LL_FORCE_INLINE void ll_convert_units(LLUnit<S1, T1> in, LLUnit<S2, T2>& out, ...) diff --git a/indra/newview/llscenemonitor.cpp b/indra/newview/llscenemonitor.cpp index 2f48be12fb..3f4f872174 100644 --- a/indra/newview/llscenemonitor.cpp +++ b/indra/newview/llscenemonitor.cpp @@ -469,8 +469,8 @@ void LLSceneMonitor::fetchQueryResult()  	static LLCachedControl<F32>  scene_load_sample_time(gSavedSettings, "SceneLoadingMonitorSampleTime");  	static LLFrameTimer timer;	 -	F32 elapsed_time = timer.getElapsedTimeF32(); -	if(mDiffState == WAIT_ON_RESULT && elapsed_time > scene_load_sample_time) +	if(mDiffState == WAIT_ON_RESULT  +		&& !LLAppViewer::instance()->quitRequested())  	{  		mDiffState = WAITING_FOR_NEXT_DIFF; @@ -487,14 +487,20 @@ void LLSceneMonitor::fetchQueryResult()  			record(sFramePixelDiff, mDiffResult);  			static LLCachedControl<F32> diff_threshold(gSavedSettings,"SceneLoadingPixelDiffThreshold"); -			if(mDiffResult > diff_threshold()) -			{ -				mSceneLoadRecording.extend(); -				llassert(mSceneLoadRecording.getResults().getLastRecording().getDuration() > scene_load_sample_time); -			} -			else +			F32 elapsed_time = timer.getElapsedTimeF32(); + +			if (elapsed_time > scene_load_sample_time)  			{ -				mSceneLoadRecording.nextPeriod(); +				if(mDiffResult > diff_threshold()) +				{ +					mSceneLoadRecording.extend(); +					llinfos << mSceneLoadRecording.getResults().getLastRecording().getDuration() << llendl; +					llassert_always(mSceneLoadRecording.getResults().getLastRecording().getDuration() > scene_load_sample_time); +				} +				else +				{ +					mSceneLoadRecording.nextPeriod(); +				}  			}  		} | 
