Merge pull request #4381 from secondlife/geenz/frametime-events-per-minute
Add support for frametime events per minute.master
commit
f5d350fb7b
|
|
@ -229,7 +229,11 @@ LLTrace::SampleStatHandle<F64Milliseconds > FRAMETIME_JITTER("frametimejitter",
|
|||
FRAMETIME_JITTER_STDDEV("frametimejitterstddev", "Standard deviation of frametime jitter in a 5 second period."),
|
||||
FRAMETIME_STDDEV("frametimestddev", "Standard deviation of frametime in a 5 second period.");
|
||||
|
||||
LLTrace::SampleStatHandle<U32> FRAMETIME_JITTER_EVENTS("frametimeevents", "Number of frametime events in the session. Applies when jitter exceeds 10% of the previous frame.");
|
||||
LLTrace::SampleStatHandle<U32> FRAMETIME_JITTER_EVENTS("frametimeevents", "Number of frametime events in the session. Applies when jitter exceeds 10% of the previous frame."),
|
||||
FRAMETIME_JITTER_EVENTS_PER_MINUTE("frametimeeventspm", "Average number of frametime events per minute."),
|
||||
FRAMETIME_JITTER_EVENTS_LAST_MINUTE("frametimeeventslastmin", "Number of frametime events in the last minute.");
|
||||
|
||||
LLTrace::SampleStatHandle<F64> NOTRMALIZED_FRAMETIME_JITTER_SESSION("normalizedframetimejitter", "Normalized frametime jitter over the session.");
|
||||
|
||||
LLTrace::EventStatHandle<LLUnit<F64, LLUnits::Meters> > AGENT_POSITION_SNAP("agentpositionsnap", "agent position corrections");
|
||||
|
||||
|
|
@ -309,24 +313,28 @@ void LLViewerStats::updateFrameStats(const F64Seconds time_diff)
|
|||
{
|
||||
if (gFrameCount && mLastTimeDiff > (F64Seconds)0.0)
|
||||
{
|
||||
mTotalTime += time_diff;
|
||||
sample(LLStatViewer::FRAMETIME, time_diff);
|
||||
// old stats that were never really used
|
||||
F64Seconds jit = (F64Seconds)std::fabs((mLastTimeDiff - time_diff));
|
||||
sample(LLStatViewer::FRAMETIME_JITTER, jit);
|
||||
mTotalFrametimeJitter += jit;
|
||||
sample(LLStatViewer::FRAMETIME_JITTER_CUMULATIVE, mTotalFrametimeJitter);
|
||||
sample(LLStatViewer::NOTRMALIZED_FRAMETIME_JITTER_SESSION, mTotalFrametimeJitter / mTotalTime);
|
||||
|
||||
static LLCachedControl<F32> frameTimeEventThreshold(gSavedSettings, "StatsFrametimeEventThreshold", 0.1f);
|
||||
|
||||
if (time_diff - mLastTimeDiff > mLastTimeDiff * frameTimeEventThreshold())
|
||||
{
|
||||
sample(LLStatViewer::FRAMETIME_JITTER_EVENTS, mFrameJitterEvents++);
|
||||
mFrameJitterEventsLastMinute++;
|
||||
}
|
||||
|
||||
mFrameTimes.push_back(time_diff);
|
||||
mFrameTimesJitter.push_back(jit);
|
||||
|
||||
mLastFrameTimeSample += time_diff;
|
||||
mTimeSinceLastEventSample += time_diff;
|
||||
|
||||
static LLCachedControl<S32> frameTimeSampleSeconds(gSavedSettings, "StatsFrametimeSampleSeconds", 5);
|
||||
|
||||
|
|
@ -356,6 +364,17 @@ void LLViewerStats::updateFrameStats(const F64Seconds time_diff)
|
|||
mFrameTimesJitter.clear();
|
||||
mLastFrameTimeSample = F64Seconds(0);
|
||||
}
|
||||
|
||||
if (mTimeSinceLastEventSample >= 60)
|
||||
{
|
||||
mEventMinutes++;
|
||||
// Calculate average events per minute
|
||||
U64 frame_time_events_per_minute = (U64)mFrameJitterEvents / mEventMinutes;
|
||||
sample(LLStatViewer::FRAMETIME_JITTER_EVENTS_PER_MINUTE, frame_time_events_per_minute);
|
||||
sample(LLStatViewer::FRAMETIME_JITTER_EVENTS_LAST_MINUTE, mFrameJitterEventsLastMinute);
|
||||
mFrameJitterEventsLastMinute = 0;
|
||||
mTimeSinceLastEventSample = F64Seconds(0);
|
||||
}
|
||||
}
|
||||
mLastTimeDiff = time_diff;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,8 +278,12 @@ private:
|
|||
F64Seconds mTotalFrametimeJitter;
|
||||
|
||||
U32 mFrameJitterEvents;
|
||||
U32 mFrameJitterEventsLastMinute;
|
||||
U32 mEventMinutes;
|
||||
F64Seconds mTotalTime;
|
||||
|
||||
F64Seconds mLastFrameTimeSample; // used for frame time stats
|
||||
F64Seconds mTimeSinceLastEventSample;
|
||||
std::vector<F64Seconds> mFrameTimes; // used for frame time stats
|
||||
std::vector<F64Seconds> mFrameTimesJitter; // used for frame time jitter stats
|
||||
};
|
||||
|
|
|
|||
|
|
@ -54,38 +54,19 @@
|
|||
label="jitter"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitter"/>
|
||||
<stat_bar name="framet_cumulative"
|
||||
label="jitter cumulative"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitcumulative"/>
|
||||
<stat_bar name="framet_jitter_99th"
|
||||
label="jitter 99th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitter99"/>
|
||||
<stat_bar name="framet_jitter_95th"
|
||||
label="jitter 95th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitter95"/>
|
||||
<stat_bar name="framet_jitter_stddev"
|
||||
label="frametime jitter std dev"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitterstddev"/>
|
||||
<stat_bar name="framet_99th"
|
||||
label="frametime 99th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametime99"/>
|
||||
<stat_bar name="framet_95th"
|
||||
label="frametime 95th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametime95"/>
|
||||
<stat_bar name="framet_stddev"
|
||||
label="frametime std dev"
|
||||
decimal_digits="1"
|
||||
stat="frametimestddev"/>
|
||||
<stat_bar name="framet_events"
|
||||
label="frametime events"
|
||||
decimal_digits="1"
|
||||
stat="frametimeevents"/>
|
||||
<stat_bar name="normalized_cumulative_frametime"
|
||||
label="normalized sess. jitter"
|
||||
decimal_digits="4"
|
||||
stat="normalizedframetimejitter"/>
|
||||
<stat_bar name="frame_events_per_minute"
|
||||
label="frame events/minute"
|
||||
decimal_digits="2"
|
||||
stat="frametimeeventspm"/>
|
||||
<stat_bar name="frame_events_last_minute"
|
||||
label="frame events last min."
|
||||
decimal_digits="0"
|
||||
stat="frametimeeventslastmin"/>
|
||||
|
||||
<stat_bar name="bandwidth"
|
||||
label="UDP Data Received"
|
||||
stat="activemessagedatareceived"
|
||||
|
|
@ -106,6 +87,38 @@
|
|||
<stat_view name="render"
|
||||
label="Render"
|
||||
setting="OpenDebugStatRender">
|
||||
<stat_bar name="framet_cumulative"
|
||||
label="jitter cumulative"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitcumulative"/>
|
||||
<stat_bar name="framet_jitter_99th"
|
||||
label="jitter 99th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitter99"/>
|
||||
<stat_bar name="framet_jitter_95th"
|
||||
label="jitter 95th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitter95"/>
|
||||
<stat_bar name="framet_jitter_stddev"
|
||||
label="frametime jitter std dev"
|
||||
decimal_digits="1"
|
||||
stat="frametimejitterstddev"/>
|
||||
<stat_bar name="framet_99th"
|
||||
label="frametime 99th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametime99"/>
|
||||
<stat_bar name="framet_95th"
|
||||
label="frametime 95th percentile"
|
||||
decimal_digits="1"
|
||||
stat="frametime95"/>
|
||||
<stat_bar name="framet_stddev"
|
||||
label="frametime std dev"
|
||||
decimal_digits="1"
|
||||
stat="frametimestddev"/>
|
||||
<stat_bar name="framet_events"
|
||||
label="frametime events"
|
||||
decimal_digits="0"
|
||||
stat="frametimeevents"/>
|
||||
<stat_bar name="ktrisframe"
|
||||
label="KTris per Frame"
|
||||
unit_label="ktris/fr"
|
||||
|
|
|
|||
Loading…
Reference in New Issue