diff options
| author | Richard Linden <none@none> | 2013-04-10 21:51:56 -0700 | 
|---|---|---|
| committer | Richard Linden <none@none> | 2013-04-10 21:51:56 -0700 | 
| commit | 07ca6fce7c9cffe1b8f215f25bb826fedf57a5b7 (patch) | |
| tree | cf59632a10c72da7a377b461a414c90069f0f746 /indra | |
| parent | 164273afbb8131c5961266b7cb2c1e1d7973ea0b (diff) | |
SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
removed PeriodicRecording::getTotalRecording as it was showing up at the top on the profiler
renamed getPrevRecordingPeriod, etc. to getPrevRecording
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/llfasttimer.cpp | 13 | ||||
| -rw-r--r-- | indra/llcommon/lltracerecording.cpp | 55 | ||||
| -rw-r--r-- | indra/llcommon/lltracerecording.h | 21 | ||||
| -rw-r--r-- | indra/llui/llstatbar.cpp | 37 | ||||
| -rw-r--r-- | indra/llui/llstatgraph.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llagentcamera.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfasttimerview.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llfloaterabout.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llhudnametag.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 2 | 
12 files changed, 65 insertions, 100 deletions
| diff --git a/indra/llcommon/llfasttimer.cpp b/indra/llcommon/llfasttimer.cpp index fbffe133f1..a7adcc6729 100644 --- a/indra/llcommon/llfasttimer.cpp +++ b/indra/llcommon/llfasttimer.cpp @@ -176,11 +176,14 @@ TimeBlockTreeNode& TimeBlock::getTreeNode() const  	TimeBlockTreeNode* nodep = LLTrace::get_thread_recorder()->getTimeBlockTreeNode(getIndex());  	llassert(nodep);  	return *nodep; -	} +} + +static LLFastTimer::DeclareTimer FTM_PROCESS_TIMES("Process FastTimer Times");  //static  void TimeBlock::processTimes()  { +	LLFastTimer _(FTM_PROCESS_TIMES);  	get_clock_count(); // good place to calculate clock frequency  	U64 cur_time = getCPUClockCount64(); @@ -329,12 +332,12 @@ void TimeBlock::logStats()  			{  				TimeBlock& timer = *it;  				LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording(); -				sd[timer.getName()]["Time"] = (LLSD::Real) (frame_recording.getLastRecordingPeriod().getSum(timer).value());	 -				sd[timer.getName()]["Calls"] = (LLSD::Integer) (frame_recording.getLastRecordingPeriod().getSum(timer.callCount())); +				sd[timer.getName()]["Time"] = (LLSD::Real) (frame_recording.getLastRecording().getSum(timer).value());	 +				sd[timer.getName()]["Calls"] = (LLSD::Integer) (frame_recording.getLastRecording().getSum(timer.callCount()));  				// computing total time here because getting the root timer's getCountHistory  				// doesn't work correctly on the first frame -				total_time += frame_recording.getLastRecordingPeriod().getSum(timer); +				total_time += frame_recording.getLastRecording().getSum(timer);  			}  		} @@ -353,7 +356,7 @@ void TimeBlock::logStats()  void TimeBlock::dumpCurTimes()  {  	LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording(); -	LLTrace::Recording& last_frame_recording = frame_recording.getLastRecordingPeriod(); +	LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();  	// walk over timers in depth order and output timings  	for(timer_tree_dfs_iterator_t it = begin_timer_tree(TimeBlock::getRootTimeBlock()); diff --git a/indra/llcommon/lltracerecording.cpp b/indra/llcommon/lltracerecording.cpp index f78b7942a7..21156b4d61 100644 --- a/indra/llcommon/lltracerecording.cpp +++ b/indra/llcommon/lltracerecording.cpp @@ -360,8 +360,7 @@ U32 Recording::getSampleCount( const TraceType<MeasurementAccumulator<S64> >& st  PeriodicRecording::PeriodicRecording( U32 num_periods, EPlayState state)   :	mAutoResize(num_periods == 0), -	mCurPeriod(0), -	mTotalValid(false) +	mCurPeriod(0)  {  	if (num_periods)  	{ @@ -373,7 +372,7 @@ PeriodicRecording::PeriodicRecording( U32 num_periods, EPlayState state)  void PeriodicRecording::nextPeriod()  {  	EPlayState play_state = getPlayState(); -	Recording& old_recording = getCurRecordingPeriod(); +	Recording& old_recording = getCurRecording();  	if (mAutoResize)  	{  		mRecordingPeriods.push_back(Recording()); @@ -382,87 +381,59 @@ void PeriodicRecording::nextPeriod()  	mCurPeriod = (num_periods > 0)   				? (mCurPeriod + 1) % num_periods   				: mCurPeriod + 1; -	old_recording.splitTo(getCurRecordingPeriod()); +	old_recording.splitTo(getCurRecording());  	switch(play_state)  	{  	case STOPPED: -		getCurRecordingPeriod().stop(); +		getCurRecording().stop();  		break;  	case PAUSED: -		getCurRecordingPeriod().pause(); +		getCurRecording().pause();  		break;  	case STARTED:  		break;  	} -	// new period, need to recalculate total -	mTotalValid = false; -} - -Recording& PeriodicRecording::getTotalRecording() -{ -	if (!mTotalValid) -	{ -		mTotalRecording.reset(); -		U32 num_periods = mRecordingPeriods.size(); - -		if (num_periods) -		{ -			for (S32 i = mCurPeriod + 1; i < mCurPeriod + num_periods; i++) -			{ -				mTotalRecording.appendRecording(mRecordingPeriods[i % num_periods]); -			} -		} -		else -		{ -			for (S32 i = 0; i < mCurPeriod; i++) -			{ -				mTotalRecording.appendRecording(mRecordingPeriods[i]); -			} -		} -	} -	mTotalValid = true; -	return mTotalRecording;  }  void PeriodicRecording::start()  { -	getCurRecordingPeriod().start(); +	getCurRecording().start();  }  void PeriodicRecording::stop()  { -	getCurRecordingPeriod().stop(); +	getCurRecording().stop();  }  void PeriodicRecording::pause()  { -	getCurRecordingPeriod().pause(); +	getCurRecording().pause();  }  void PeriodicRecording::resume()  { -	getCurRecordingPeriod().resume(); +	getCurRecording().resume();  }  void PeriodicRecording::restart()  { -	getCurRecordingPeriod().restart(); +	getCurRecording().restart();  }  void PeriodicRecording::reset()  { -	getCurRecordingPeriod().reset(); +	getCurRecording().reset();  }  void PeriodicRecording::splitTo(PeriodicRecording& other)  { -	getCurRecordingPeriod().splitTo(other.getCurRecordingPeriod()); +	getCurRecording().splitTo(other.getCurRecording());  }  void PeriodicRecording::splitFrom(PeriodicRecording& other)  { -	getCurRecordingPeriod().splitFrom(other.getCurRecordingPeriod()); +	getCurRecording().splitFrom(other.getCurRecording());  } diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h index b96d0666e5..0a3e9e5a0b 100644 --- a/indra/llcommon/lltracerecording.h +++ b/indra/llcommon/lltracerecording.h @@ -254,50 +254,48 @@ namespace LLTrace  		void nextPeriod();  		U32 getNumPeriods() { return mRecordingPeriods.size(); } -		Recording& getLastRecordingPeriod() +		Recording& getLastRecording()  		{  			U32 num_periods = mRecordingPeriods.size();  			return mRecordingPeriods[(mCurPeriod + num_periods - 1) % num_periods];  		} -		const Recording& getLastRecordingPeriod() const +		const Recording& getLastRecording() const  		{ -			return getPrevRecordingPeriod(1); +			return getPrevRecording(1);  		} -		Recording& getCurRecordingPeriod() +		Recording& getCurRecording()  		{  			return mRecordingPeriods[mCurPeriod];  		} -		const Recording& getCurRecordingPeriod() const +		const Recording& getCurRecording() const  		{  			return mRecordingPeriods[mCurPeriod];  		} -		Recording& getPrevRecordingPeriod(U32 offset) +		Recording& getPrevRecording(U32 offset)  		{  			U32 num_periods = mRecordingPeriods.size();  			offset = llclamp(offset, 0u, num_periods - 1);  			return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods];  		} -		const Recording& getPrevRecordingPeriod(U32 offset) const +		const Recording& getPrevRecording(U32 offset) const  		{  			U32 num_periods = mRecordingPeriods.size();  			offset = llclamp(offset, 0u, num_periods - 1);  			return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods];  		} -		Recording snapshotCurRecordingPeriod() const +		Recording snapshotCurRecording() const  		{ -			Recording recording_copy(getCurRecordingPeriod()); +			Recording recording_copy(getCurRecording());  			recording_copy.stop();  			return recording_copy;  		} -		Recording& getTotalRecording(); -  		template <typename T>  		typename T::value_t getPeriodMin(const TraceType<T>& stat) const  		{ @@ -391,7 +389,6 @@ namespace LLTrace  	private:  		std::vector<Recording>	mRecordingPeriods;  		Recording	mTotalRecording; -		bool		mTotalValid;  		const bool	mAutoResize;  		S32			mCurPeriod;  	}; diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp index d9f3d14ef0..46eea368e5 100644 --- a/indra/llui/llstatbar.cpp +++ b/indra/llui/llstatbar.cpp @@ -103,12 +103,11 @@ void LLStatBar::draw()  		max = 0.f,  		mean = 0.f; -	S32 num_samples = 0;  	LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();  	if (mCountFloatp)  	{ -		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecordingPeriod();  +		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();   		if (mPerSec)  		{ @@ -116,7 +115,6 @@ void LLStatBar::draw()  			min = frame_recording.getPeriodMinPerSec(*mCountFloatp);  			max = frame_recording.getPeriodMaxPerSec(*mCountFloatp);  			mean = frame_recording.getPeriodMeanPerSec(*mCountFloatp); -			num_samples = frame_recording.getTotalRecording().getSampleCount(*mCountFloatp);  		}  		else  		{ @@ -124,12 +122,11 @@ void LLStatBar::draw()  			min = frame_recording.getPeriodMin(*mCountFloatp);  			max = frame_recording.getPeriodMax(*mCountFloatp);  			mean = frame_recording.getPeriodMean(*mCountFloatp); -			num_samples = frame_recording.getTotalRecording().getSampleCount(*mCountFloatp);  		}  	}  	else if (mCountIntp)  	{ -		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecordingPeriod();  +		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();   		if (mPerSec)  		{ @@ -137,7 +134,6 @@ void LLStatBar::draw()  			min = frame_recording.getPeriodMinPerSec(*mCountIntp);  			max = frame_recording.getPeriodMaxPerSec(*mCountIntp);  			mean = frame_recording.getPeriodMeanPerSec(*mCountIntp); -			num_samples = frame_recording.getTotalRecording().getSampleCount(*mCountIntp);  		}  		else  		{ @@ -145,26 +141,25 @@ void LLStatBar::draw()  			min = frame_recording.getPeriodMin(*mCountIntp);  			max = frame_recording.getPeriodMax(*mCountIntp);  			mean = frame_recording.getPeriodMean(*mCountIntp); -			num_samples = frame_recording.getTotalRecording().getSampleCount(*mCountIntp);  		}  	}  	else if (mMeasurementFloatp)  	{ -		LLTrace::Recording& recording = frame_recording.getTotalRecording(); -		current = recording.getLastValue(*mMeasurementFloatp); -		min = recording.getMin(*mMeasurementFloatp); -		max = recording.getMax(*mMeasurementFloatp); -		mean = recording.getMean(*mMeasurementFloatp); -		num_samples = frame_recording.getTotalRecording().getSampleCount(*mMeasurementFloatp); +		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();  + +		current = last_frame_recording.getLastValue(*mMeasurementFloatp); +		min = frame_recording.getPeriodMin(*mMeasurementFloatp); +		max = frame_recording.getPeriodMax(*mMeasurementFloatp); +		mean = frame_recording.getPeriodMean(*mMeasurementFloatp);  	}  	else if (mMeasurementIntp)  	{ -		LLTrace::Recording& recording = frame_recording.getTotalRecording(); -		current = recording.getLastValue(*mMeasurementIntp); -		min = recording.getMin(*mMeasurementIntp); -		max = recording.getMax(*mMeasurementIntp); -		mean = recording.getMean(*mMeasurementIntp); -		num_samples = frame_recording.getTotalRecording().getSampleCount(*mMeasurementIntp); +		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();  + +		current = last_frame_recording.getLastValue(*mMeasurementIntp); +		min = frame_recording.getPeriodMin(*mMeasurementIntp); +		max = frame_recording.getPeriodMax(*mMeasurementIntp); +		mean = frame_recording.getPeriodMean(*mMeasurementIntp);  	}  	current *= mUnitScale; @@ -203,7 +198,7 @@ void LLStatBar::draw()  	const S32 tick_length = 4;  	const S32 tick_width = 1; -	if (mScaleRange && num_samples) +	if (mScaleRange && min < max)  	{  		F32 cur_max = mTickSpacing;  		while(max > cur_max && mMaxBar > cur_max) @@ -352,7 +347,7 @@ void LLStatBar::draw()  			for (i = 1; i <= max_frame; i++)  			{  				F32 offset = ((F32)i / (F32)mNumFrames) * span; -				LLTrace::Recording& recording = frame_recording.getPrevRecordingPeriod(i); +				LLTrace::Recording& recording = frame_recording.getPrevRecording(i);  				if (mPerSec)  				{  					if (mCountFloatp) diff --git a/indra/llui/llstatgraph.cpp b/indra/llui/llstatgraph.cpp index bdb378c9c5..af01e66095 100644 --- a/indra/llui/llstatgraph.cpp +++ b/indra/llui/llstatgraph.cpp @@ -66,7 +66,7 @@ void LLStatGraph::draw()  	range = mMax - mMin;  	if (mNewStatFloatp)  	{ -		LLTrace::Recording& recording = LLTrace::get_frame_recording().getLastRecordingPeriod(); +		LLTrace::Recording& recording = LLTrace::get_frame_recording().getLastRecording();  		if (mPerSec)  		{ @@ -79,7 +79,7 @@ void LLStatGraph::draw()  	}  	else if (mNewStatIntp)  	{ -		LLTrace::Recording& recording = LLTrace::get_frame_recording().getLastRecordingPeriod(); +		LLTrace::Recording& recording = LLTrace::get_frame_recording().getLastRecording();  		if (mPerSec)  		{ diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 420220d21a..7c9fbccd7f 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -1082,7 +1082,7 @@ void LLAgentCamera::updateLookAt(const S32 mouse_x, const S32 mouse_y)  	LLQuaternion av_inv_rot = ~gAgentAvatarp->mRoot.getWorldRotation();  	LLVector3 root_at = LLVector3::x_axis * gAgentAvatarp->mRoot.getWorldRotation(); -	if 	(LLTrace::get_frame_recording().getLastRecordingPeriod().getLastValue(*gViewerWindow->getMouseVelocityStat()) < 0.01f +	if 	(LLTrace::get_frame_recording().getLastRecording().getLastValue(*gViewerWindow->getMouseVelocityStat()) < 0.01f  		&& (root_at * last_at_axis > 0.95f))  	{  		LLVector3 vel = gAgentAvatarp->getVelocity(); diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index 80d845c70e..45ffe56ac1 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -333,7 +333,7 @@ static std::string get_tooltip(TimeBlock& timer, S32 history_index, PeriodicReco  	}  	else  	{ -		tooltip = llformat("%s (%d ms, %d calls)", timer.getName().c_str(), (S32)LLUnit<LLUnits::Milliseconds, F64>(frame_recording.getPrevRecordingPeriod(history_index).getSum(timer)).value(), (S32)frame_recording.getPrevRecordingPeriod(history_index).getSum(timer.callCount())); +		tooltip = llformat("%s (%d ms, %d calls)", timer.getName().c_str(), (S32)LLUnit<LLUnits::Milliseconds, F64>(frame_recording.getPrevRecording(history_index).getSum(timer)).value(), (S32)frame_recording.getPrevRecording(history_index).getSum(timer.callCount()));  	}  	return tooltip;  } @@ -417,7 +417,7 @@ void LLFastTimerView::draw()  	printLineStats();  	LLView::draw(); -	mAllTimeMax = llmax(mAllTimeMax, mRecording->getLastRecordingPeriod().getSum(FTM_FRAME)); +	mAllTimeMax = llmax(mAllTimeMax, mRecording->getLastRecording().getSum(FTM_FRAME));  	mHoverID = NULL;  	mHoverBarIndex = -1;  } @@ -984,7 +984,7 @@ void LLFastTimerView::printLineStats()  			LLUnit<LLUnits::Seconds, F32> ticks;  			if (mPrintStats > 0)  			{ -				ticks = mRecording->getPrevRecordingPeriod(mPrintStats).getSum(*idp); +				ticks = mRecording->getPrevRecording(mPrintStats).getSum(*idp);  			}  			else  			{ @@ -1096,8 +1096,8 @@ void LLFastTimerView::drawLineGraph()  			j > 0;  			j--)  		{ -			LLUnit<LLUnits::Seconds, F32> time = llmax(mRecording->getPrevRecordingPeriod(j).getSum(*idp), LLUnit<LLUnits::Seconds, F64>(0.000001)); -			U32 calls = mRecording->getPrevRecordingPeriod(j).getSum(idp->callCount()); +			LLUnit<LLUnits::Seconds, F32> time = llmax(mRecording->getPrevRecording(j).getSum(*idp), LLUnit<LLUnits::Seconds, F64>(0.000001)); +			U32 calls = mRecording->getPrevRecording(j).getSum(idp->callCount());  			if (alpha == 1.f)  			{  @@ -1197,8 +1197,8 @@ void LLFastTimerView::drawLegend( S32 y )  			if (mHoverBarIndex > 0 && mHoverID)  			{  				S32 hidx = mScrollIndex + mHoverBarIndex; -				ms = mRecording->getPrevRecordingPeriod(hidx).getSum(*idp); -				calls = mRecording->getPrevRecordingPeriod(hidx).getSum(idp->callCount()); +				ms = mRecording->getPrevRecording(hidx).getSum(*idp); +				calls = mRecording->getPrevRecording(hidx).getSum(idp->callCount());  			}  			else  			{ @@ -1455,7 +1455,7 @@ S32 LLFastTimerView::updateTimerBarWidths(LLTrace::TimeBlock* time_block, std::v  	LLFastTimer _(FTM_UPDATE_TIMER_BAR_WIDTHS);  	F32 self_time_frame_fraction = history_index == -1  		? (mRecording->getPeriodMean(time_block->selfTime()) / mTotalTimeDisplay)  -		: (mRecording->getPrevRecordingPeriod(history_index).getSum(time_block->selfTime()) / mTotalTimeDisplay); +		: (mRecording->getPrevRecording(history_index).getSum(time_block->selfTime()) / mTotalTimeDisplay);  	S32 self_time_width = llround(self_time_frame_fraction * (F32)mBarRect.getWidth());  	S32 full_width = self_time_width; diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 58701ca3c9..93502daac7 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -296,7 +296,7 @@ LLSD LLFloaterAbout::getInfo()  	if (gPacketsIn > 0)  	{ -		LLTrace::Recording cur_frame = LLTrace::get_frame_recording().snapshotCurRecordingPeriod(); +		LLTrace::Recording cur_frame = LLTrace::get_frame_recording().snapshotCurRecording();  		info["PACKETS_LOST"] = cur_frame.getSum(LLStatViewer::PACKETS_LOST);  		info["PACKETS_IN"] = F32(gPacketsIn);  		info["PACKETS_PCT"] = 100.f*info["PACKETS_LOST"].asReal() / info["PACKETS_IN"].asReal(); diff --git a/indra/newview/llhudnametag.cpp b/indra/newview/llhudnametag.cpp index 3ac11f906b..cdfe776589 100644 --- a/indra/newview/llhudnametag.cpp +++ b/indra/newview/llhudnametag.cpp @@ -901,7 +901,7 @@ void LLHUDNameTag::updateAll()  	}  	LLTrace::CountStatHandle<>* camera_vel_stat = LLViewerCamera::getVelocityStat(); -	F32 camera_vel = LLTrace::get_frame_recording().getLastRecordingPeriod().getPerSec(*camera_vel_stat); +	F32 camera_vel = LLTrace::get_frame_recording().getLastRecording().getPerSec(*camera_vel_stat);  	if (camera_vel > MAX_STABLE_CAMERA_VELOCITY)  	{  		return; diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index fa4eb73180..13a005dcbf 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -348,11 +348,12 @@ void update_statistics()  		sample(LLStatViewer::SIM_PING, LLTrace::Seconds(10));  	} -	add(LLStatViewer::FPS, 1); -	if (LLTrace::get_frame_recording().getTotalRecording().getSampleCount(LLStatViewer::FPS)) +	if (LLViewerStats::instance().getRecording().getSum(LLStatViewer::FPS))  	{ -		sample(LLStatViewer::FPS_SAMPLE, LLTrace::get_frame_recording().getTotalRecording().getPerSec(LLStatViewer::FPS)); +		sample(LLStatViewer::FPS_SAMPLE, LLTrace::get_frame_recording().getPeriodMeanPerSec(LLStatViewer::FPS));  	} +	add(LLStatViewer::FPS, 1); +  	F32 layer_bits = (F32)(gVLManager.getLandBits() + gVLManager.getWindBits() + gVLManager.getCloudBits());  	add(LLStatViewer::LAYERS_KBIT, LLTrace::Bits(layer_bits));  	add(LLStatViewer::OBJECT_KBIT, gObjectData); diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 0066c09720..1bb4041bbd 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -617,9 +617,7 @@ void LLViewerTextureList::updateImages(F32 max_time)  	}  	cleared = FALSE; -	LLTrace::Recording& recording = LLTrace::get_frame_recording().getTotalRecording(); - -	LLAppViewer::getTextureFetch()->setTextureBandwidth(recording.getPerSec(LLStatViewer::TEXTURE_KBIT).value()); +	LLAppViewer::getTextureFetch()->setTextureBandwidth(LLTrace::get_frame_recording().getPeriodMeanPerSec(LLStatViewer::TEXTURE_KBIT).value());  	{  		using namespace LLStatViewer; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 26ceaf512a..1b5148e560 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -9816,7 +9816,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  	{  		LLTrace::CountStatHandle<>* velocity_stat = LLViewerCamera::getVelocityStat();  		F32 fade_amt = gFrameIntervalSeconds.value()  -			* llmax(LLTrace::get_frame_recording().getLastRecordingPeriod().getSum(*velocity_stat) / LLTrace::get_frame_recording().getLastRecordingPeriod().getDuration().value(), 1.0); +			* llmax(LLTrace::get_frame_recording().getLastRecording().getSum(*velocity_stat) / LLTrace::get_frame_recording().getLastRecording().getDuration().value(), 1.0);  		//update shadow targets  		for (U32 i = 0; i < 2; i++) | 
