SH-3931 WIP Interesting: Add graphs to visualize scene load metrics

fixed some compile errors
made label spacing automatic on stat bars
fixed infinite values coming from stats
master
Richard Linden 2013-03-25 00:18:06 -07:00
parent 68f9f656cd
commit 935dce7d6b
10 changed files with 108 additions and 189 deletions

View File

@ -86,20 +86,17 @@ private:
AccumulatorBuffer(StaticAllocationMarker m)
: mStorageSize(0),
mStorage(NULL),
mNextStorageSlot(0)
{
}
mStorage(NULL)
{}
public:
AccumulatorBuffer(const AccumulatorBuffer& other = *getDefaultBuffer())
: mStorageSize(0),
mStorage(NULL),
mNextStorageSlot(other.mNextStorageSlot)
mStorage(NULL)
{
resize(other.mStorageSize);
for (S32 i = 0; i < mNextStorageSlot; i++)
for (S32 i = 0; i < sNextStorageSlot; i++)
{
mStorage[i] = other.mStorage[i];
}
@ -126,9 +123,8 @@ public:
void addSamples(const AccumulatorBuffer<ACCUMULATOR>& other)
{
llassert(mNextStorageSlot == other.mNextStorageSlot);
for (size_t i = 0; i < mNextStorageSlot; i++)
llassert(mStorageSize >= sNextStorageSlot && other.mStorageSize > sNextStorageSlot);
for (size_t i = 0; i < sNextStorageSlot; i++)
{
mStorage[i].addSamples(other.mStorage[i]);
}
@ -136,7 +132,8 @@ public:
void copyFrom(const AccumulatorBuffer<ACCUMULATOR>& other)
{
for (size_t i = 0; i < mNextStorageSlot; i++)
llassert(mStorageSize >= sNextStorageSlot && other.mStorageSize > sNextStorageSlot);
for (size_t i = 0; i < sNextStorageSlot; i++)
{
mStorage[i] = other.mStorage[i];
}
@ -144,7 +141,8 @@ public:
void reset(const AccumulatorBuffer<ACCUMULATOR>* other = NULL)
{
for (size_t i = 0; i < mNextStorageSlot; i++)
llassert(mStorageSize >= sNextStorageSlot);
for (size_t i = 0; i < sNextStorageSlot; i++)
{
mStorage[i].reset(other ? &other->mStorage[i] : NULL);
}
@ -172,7 +170,7 @@ public:
{
llerrs << "Attempting to declare trace object after program initialization. Trace objects should be statically initialized." << llendl;
}
size_t next_slot = mNextStorageSlot++;
size_t next_slot = sNextStorageSlot++;
if (next_slot >= mStorageSize)
{
resize(mStorageSize + (mStorageSize >> 2));
@ -208,7 +206,7 @@ public:
size_t size() const
{
return mNextStorageSlot;
return sNextStorageSlot;
}
static self_t* getDefaultBuffer()
@ -226,11 +224,15 @@ public:
}
private:
ACCUMULATOR* mStorage;
size_t mStorageSize;
size_t mNextStorageSlot;
ACCUMULATOR* mStorage;
size_t mStorageSize;
static size_t sNextStorageSlot;
};
template<typename ACCUMULATOR> size_t AccumulatorBuffer<ACCUMULATOR>::sNextStorageSlot = 0;
//TODO: replace with decltype when C++11 is enabled
template<typename T>
struct MeanValueType

View File

@ -116,12 +116,12 @@ void RecordingBuffers::mergeBuffers( const RecordingBuffers& other)
void RecordingBuffers::resetBuffers(RecordingBuffers* other)
{
mCountsFloat.write()->reset(other ? other->mCountsFloat : NULL);
mMeasurementsFloat.write()->reset(other ? other->mMeasurementsFloat : NULL);
mCounts.write()->reset(other ? other->mCounts : NULL);
mMeasurements.write()->reset(other ? other->mMeasurements : NULL);
mStackTimers.write()->reset(other ? other->mStackTimers : NULL);
mMemStats.write()->reset(other ? other->mMemStats : NULL);
mCountsFloat.write()->reset(other ? other->mCountsFloat : LLCopyOnWritePointer<AccumulatorBuffer<CountAccumulator<F64> > >());
mMeasurementsFloat.write()->reset(other ? other->mMeasurementsFloat : LLCopyOnWritePointer<AccumulatorBuffer<MeasurementAccumulator<F64> > >());
mCounts.write()->reset(other ? other->mCounts : LLCopyOnWritePointer<AccumulatorBuffer<CountAccumulator<S64> > >());
mMeasurements.write()->reset(other ? other->mMeasurements : LLCopyOnWritePointer<AccumulatorBuffer<MeasurementAccumulator<S64> > >());
mStackTimers.write()->reset(other ? other->mStackTimers : LLCopyOnWritePointer<AccumulatorBuffer<TimeBlockAccumulator> >());
mMemStats.write()->reset(other ? other->mMemStats : LLCopyOnWritePointer<AccumulatorBuffer<MemStatAccumulator> >());
}
///////////////////////////////////////////////////////////////////////

View File

@ -305,7 +305,7 @@ namespace LLTrace
U32 num_periods = mRecordingPeriods.size();
for (S32 i = 0; i < num_periods; i++)
{
min_val = llmin(min_val, mRecordingPeriods[i].getSum(stat));
min_val = llmin(min_val, mRecordingPeriods[(mCurPeriod + i) % num_periods].getSum(stat));
}
return min_val;
}
@ -317,7 +317,7 @@ namespace LLTrace
U32 num_periods = mRecordingPeriods.size();
for (S32 i = 0; i < num_periods; i++)
{
min_val = llmin(min_val, mRecordingPeriods[i].getPerSec(stat));
min_val = llmin(min_val, mRecordingPeriods[(mCurPeriod + i) % num_periods].getPerSec(stat));
}
return min_val;
}
@ -329,7 +329,7 @@ namespace LLTrace
U32 num_periods = mRecordingPeriods.size();
for (S32 i = 0; i < num_periods; i++)
{
max_val = llmax(max_val, mRecordingPeriods[i].getSum(stat));
max_val = llmax(max_val, mRecordingPeriods[(mCurPeriod + i) % num_periods].getSum(stat));
}
return max_val;
}
@ -339,9 +339,9 @@ namespace LLTrace
{
F64 max_val = (std::numeric_limits<F64>::min)();
U32 num_periods = mRecordingPeriods.size();
for (S32 i = 0; i < num_periods; i++)
for (S32 i = 1; i < num_periods; i++)
{
max_val = llmax(max_val, mRecordingPeriods[i].getPerSec(stat));
max_val = llmax(max_val, mRecordingPeriods[(mCurPeriod + i) % num_periods].getPerSec(stat));
}
return max_val;
}
@ -353,9 +353,9 @@ namespace LLTrace
U32 num_periods = mRecordingPeriods.size();
for (S32 i = 0; i < num_periods; i++)
{
if (mRecordingPeriods[i].getDuration() > 0.f)
if (mRecordingPeriods[(mCurPeriod + i) % num_periods].getDuration() > 0.f)
{
mean += mRecordingPeriods[i].getSum(stat);
mean += mRecordingPeriods[(mCurPeriod + i) % num_periods].getSum(stat);
}
}
mean /= num_periods;
@ -371,7 +371,7 @@ namespace LLTrace
{
if (mRecordingPeriods[i].getDuration() > 0.f)
{
mean += mRecordingPeriods[i].getPerSec(stat);
mean += mRecordingPeriods[(mCurPeriod + i) % num_periods].getPerSec(stat);
}
}
mean /= num_periods;

View File

@ -52,7 +52,6 @@ LLStatBar::LLStatBar(const Params& p)
mMeasurementFloatp(LLTrace::MeasurementStatHandle<>::getInstance(p.stat)),
mMeasurementIntp(LLTrace::MeasurementStatHandle<S64>::getInstance(p.stat)),
mTickSpacing(p.tick_spacing),
mLabelSpacing(p.label_spacing),
mPrecision(p.precision),
mUpdatesPerSec(p.update_rate),
mUnitScale(p.unit_scale),
@ -68,26 +67,32 @@ LLStatBar::LLStatBar(const Params& p)
BOOL LLStatBar::handleMouseDown(S32 x, S32 y, MASK mask)
{
if (mDisplayBar)
BOOL handled = LLView::handleMouseDown(x, y, mask);
if (!handled)
{
if (mDisplayHistory)
if (mDisplayBar)
{
mDisplayBar = FALSE;
mDisplayHistory = FALSE;
if (mDisplayHistory || mOrientation == HORIZONTAL)
{
mDisplayBar = FALSE;
mDisplayHistory = FALSE;
}
else
{
mDisplayHistory = TRUE;
}
}
else
{
mDisplayHistory = TRUE;
mDisplayBar = TRUE;
if (mOrientation == HORIZONTAL)
{
mDisplayHistory = TRUE;
}
}
LLView* parent = getParent();
parent->reshape(parent->getRect().getWidth(), parent->getRect().getHeight(), FALSE);
}
else
{
mDisplayBar = TRUE;
}
LLView* parent = getParent();
parent->reshape(parent->getRect().getWidth(), parent->getRect().getHeight(), FALSE);
return TRUE;
}
@ -200,10 +205,10 @@ void LLStatBar::draw()
if (mScaleRange && num_samples)
{
F32 cur_max = mLabelSpacing;
while(max > cur_max)
F32 cur_max = mTickSpacing;
while(max > cur_max && mMaxBar > cur_max)
{
cur_max += mLabelSpacing;
cur_max += mTickSpacing;
}
mCurMaxBar = LLSmoothInterpolation::lerp(mCurMaxBar, cur_max, 0.05f);
}
@ -254,42 +259,51 @@ void LLStatBar::draw()
// Draw the tick marks.
LLGLSUIDefault gls_ui;
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
for (F32 tick_value = mMinBar + mLabelSpacing; tick_value <= mCurMaxBar; tick_value += mTickSpacing)
S32 last_tick = 0;
S32 last_label = 0;
const S32 MIN_TICK_SPACING = mOrientation == HORIZONTAL ? 20 : 30;
const S32 MIN_LABEL_SPACING = mOrientation == HORIZONTAL ? 40 : 60;
for (F32 tick_value = mMinBar + mTickSpacing; tick_value <= mCurMaxBar; tick_value += mTickSpacing)
{
const S32 begin = llfloor((tick_value - mMinBar)*value_scale);
const S32 end = begin + tick_width;
if (mOrientation == HORIZONTAL)
if (begin - last_tick < MIN_TICK_SPACING)
{
gl_rect_2d(bar_left, end, bar_right - tick_length/2, begin, LLColor4(1.f, 1.f, 1.f, 0.1f));
continue;
}
else
{
gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length/2, LLColor4(1.f, 1.f, 1.f, 0.1f));
}
}
last_tick = begin;
// Draw the tick labels (and big ticks).
for (F32 tick_value = mMinBar + mLabelSpacing; tick_value <= mCurMaxBar; tick_value += mLabelSpacing)
{
const S32 begin = llfloor((tick_value - mMinBar)*value_scale);
const S32 end = begin + tick_width;
tick_label = llformat( value_format.c_str(), tick_value);
// draw labels for the tick marks
if (mOrientation == HORIZONTAL)
{
gl_rect_2d(bar_left, end, bar_right - tick_length, begin, LLColor4(1.f, 1.f, 1.f, 0.25f));
LLFontGL::getFontMonospace()->renderUTF8(tick_label, 0, bar_right, begin,
LLColor4(1.f, 1.f, 1.f, 0.5f),
LLFontGL::LEFT, LLFontGL::VCENTER);
if (begin - last_label > MIN_LABEL_SPACING)
{
gl_rect_2d(bar_left, end, bar_right - tick_length, begin, LLColor4(1.f, 1.f, 1.f, 0.25f));
LLFontGL::getFontMonospace()->renderUTF8(tick_label, 0, bar_right, begin,
LLColor4(1.f, 1.f, 1.f, 0.5f),
LLFontGL::LEFT, LLFontGL::VCENTER);
last_label = begin;
}
else
{
gl_rect_2d(bar_left, end, bar_right - tick_length/2, begin, LLColor4(1.f, 1.f, 1.f, 0.1f));
}
}
else
{
gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length, LLColor4(1.f, 1.f, 1.f, 0.25f));
LLFontGL::getFontMonospace()->renderUTF8(tick_label, 0, begin - 1, bar_bottom - tick_length,
LLColor4(1.f, 1.f, 1.f, 0.5f),
LLFontGL::RIGHT, LLFontGL::TOP);
if (begin - last_label > MIN_LABEL_SPACING)
{
gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length, LLColor4(1.f, 1.f, 1.f, 0.25f));
LLFontGL::getFontMonospace()->renderUTF8(tick_label, 0, begin - 1, bar_bottom - tick_length,
LLColor4(1.f, 1.f, 1.f, 0.5f),
LLFontGL::RIGHT, LLFontGL::TOP);
last_label = begin;
}
else
{
gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length/2, LLColor4(1.f, 1.f, 1.f, 0.1f));
}
}
}
@ -457,12 +471,11 @@ void LLStatBar::setStat(const std::string& stat_name)
}
void LLStatBar::setRange(F32 bar_min, F32 bar_max, F32 tick_spacing, F32 label_spacing)
void LLStatBar::setRange(F32 bar_min, F32 bar_max, F32 tick_spacing)
{
mMinBar = bar_min;
mMaxBar = bar_max;
mTickSpacing = tick_spacing;
mLabelSpacing = label_spacing;
}
LLRect LLStatBar::getRequiredRect()
@ -473,14 +486,7 @@ LLRect LLStatBar::getRequiredRect()
{
if (mDisplayHistory)
{
if (mOrientation == HORIZONTAL)
{
rect.mTop = mMaxHeight;
}
else
{
rect.mTop = 35 + llmin(mMaxHeight, llmin(mNumFrames, (S32)LLTrace::get_frame_recording().getNumPeriods()));
}
rect.mTop = mMaxHeight;
}
else
{
@ -493,3 +499,4 @@ LLRect LLStatBar::getRequiredRect()
}
return rect;
}

View File

@ -43,7 +43,6 @@ public:
Optional<F32> bar_min,
bar_max,
tick_spacing,
label_spacing,
update_rate,
unit_scale;
@ -66,7 +65,6 @@ public:
bar_min("bar_min", 0.0f),
bar_max("bar_max", 50.0f),
tick_spacing("tick_spacing", 10.0f),
label_spacing("label_spacing", 10.0f),
precision("precision", 0),
update_rate("update_rate", 5.0f),
unit_scale("unit_scale", 1.f),
@ -90,7 +88,7 @@ public:
void setStat(const std::string& stat_name);
void setRange(F32 bar_min, F32 bar_max, F32 tick_spacing, F32 label_spacing);
void setRange(F32 bar_min, F32 bar_max, F32 tick_spacing);
void getRange(F32& bar_min, F32& bar_max) { bar_min = mMinBar; bar_max = mMaxBar; }
/*virtual*/ LLRect getRequiredRect(); // Return the height of this object, given the set options.

View File

@ -85,7 +85,7 @@ void LLFloaterJoystick::draw()
if (llabs(value) > maxbar)
{
F32 range = llabs(value);
mAxisStatsBar[i]->setRange(-range, range, range * 0.25f, range * 0.5f);
mAxisStatsBar[i]->setRange(-range, range, range * 0.25f);
}
}
}
@ -106,7 +106,7 @@ BOOL LLFloaterJoystick::postBuild()
if (mAxisStatsBar[i])
{
mAxisStatsBar[i]->setStat(stat_name);
mAxisStatsBar[i]->setRange(-range, range, range * 0.25f, range * 0.5f);
mAxisStatsBar[i]->setRange(-range, range, range * 0.25f);
}
}

View File

@ -728,7 +728,8 @@ void LLWorld::updateNetStats()
add(LLStatViewer::PACKETS_LOST, packets_lost);
if (packets_in)
{
sample(LLStatViewer::PACKETS_LOST_PERCENT, 100.f * ((F32)packets_lost/(F32)packets_in));
F32 packet_loss = 100.f * ((F32)packets_lost/(F32)packets_in);
sample(LLStatViewer::PACKETS_LOST_PERCENT, packet_loss);
}
mLastPacketsIn = gMessageSystem->mPacketsIn;

View File

@ -8,7 +8,8 @@
save_visibility="true"
title="SCENE LOAD STATISTICS"
width="260">
<button top="20"
<button follows="top|left"
top="20"
bottom="60"
left="10"
width="100"
@ -41,7 +42,6 @@
stat="FramePixelDifference"
bar_max="100"
tick_spacing="10"
label_spacing="20"
unit_scale="100"
precision="0"/>
<stat_bar name="bandwidth"
@ -51,7 +51,6 @@
stat="kbitstat"
bar_max="5000"
tick_spacing="500"
label_spacing="1000"
precision="0"/>
<stat_bar name="packet_loss"
label="Packet Loss"
@ -60,7 +59,6 @@
stat="packetslostpercentstat"
bar_max="5"
tick_spacing="0.5"
label_spacing="1"
precision="3"
show_bar="false"
show_mean="true"/>
@ -81,7 +79,6 @@
stat="numobjectsstat"
bar_max="50000"
tick_spacing="5000"
label_spacing="10000"
precision="0"
show_bar="false"/>
<stat_bar name="newobjs"
@ -91,7 +88,6 @@
stat="numnewobjectsstat"
bar_max="2000"
tick_spacing="200"
label_spacing="400"
show_bar="false"/>
<stat_bar name="object_cache_hits"
label="Object Cache Hit Rate"
@ -100,7 +96,6 @@
bar_max="100"
unit_label="%"
tick_spacing="20"
label_spacing="20"
show_history="true"
show_bar="false"/>
</stat_view>
@ -115,7 +110,6 @@
bar_max="100.f"
unit_label="%"
tick_spacing="20"
label_spacing="20"
show_history="true"
show_bar="false"/>
<stat_bar name="texture_cache_read_latency"
@ -125,7 +119,6 @@
stat="texture_cache_read_latency"
bar_max="1000.f"
tick_spacing="100"
label_spacing="200"
show_history="true"
show_bar="false"/>
<stat_bar name="numimagesstat"
@ -134,7 +127,6 @@
stat="numimagesstat"
bar_max="8000.f"
tick_spacing="2000.f"
label_spacing="4000.f"
show_bar="false"/>
<stat_bar name="numrawimagesstat"
label="Raw Count"
@ -142,7 +134,6 @@
stat="numrawimagesstat"
bar_max="8000.f"
tick_spacing="2000.f"
label_spacing="4000.f"
show_bar="false"/>
</stat_view>
<!--Network Stats-->
@ -157,7 +148,6 @@
unit_label="/sec"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="packetsoutstat"
@ -167,7 +157,6 @@
unit_label="/sec"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="objectkbitstat"
@ -177,7 +166,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="texturekbitstat"
@ -187,7 +175,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="assetkbitstat"
@ -197,7 +184,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="layerskbitstat"
@ -207,7 +193,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="actualinkbitstat"
@ -217,7 +202,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="actualoutkbitstat"
@ -227,7 +211,6 @@
unit_label="kbps"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"/>
<stat_bar name="vfspendingoperations"
@ -250,7 +233,6 @@
precision="0"
bar_max="30000.f"
tick_spacing="5000.f"
label_spacing="10000.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simactiveobjects"
@ -260,7 +242,6 @@
precision="0"
bar_max="5000.f"
tick_spacing="750.f"
label_spacing="1250.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simactivescripts"
@ -270,7 +251,6 @@
precision="0"
bar_max="15000.f"
tick_spacing="1875.f"
label_spacing="3750.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="siminpps"
@ -281,7 +261,6 @@
precision="0"
bar_max="2000.f"
tick_spacing="250.f"
label_spacing="1000.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simoutpps"
@ -292,7 +271,6 @@
precision="0"
bar_max="2000.f"
tick_spacing="250.f"
label_spacing="1000.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simpendingdownloads"
@ -302,7 +280,6 @@
precision="0"
bar_max="800.f"
tick_spacing="100.f"
label_spacing="200.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simpendinguploads"
@ -312,7 +289,6 @@
precision="0"
bar_max="100.f"
tick_spacing="25.f"
label_spacing="50.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simtotalunackedbytes"
@ -323,7 +299,6 @@
precision="1"
bar_max="100000.f"
tick_spacing="25000.f"
label_spacing="50000.f"
show_bar="false"
show_mean="false"/>
<stat_view name="simperf"
@ -337,7 +312,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simnetmsec"
@ -348,7 +322,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsimphysicsmsec"
@ -359,7 +332,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsimothermsec"
@ -370,7 +342,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simagentmsec"
@ -381,7 +352,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simimagesmsec"
@ -392,7 +362,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simscriptmsec"
@ -403,7 +372,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsparemsec"
@ -414,7 +382,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<!--2nd level time blocks under 'Details' second-->
@ -429,7 +396,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsimphysicsshapeupdatemsec"
@ -440,7 +406,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsimphysicsothermsec"
@ -451,7 +416,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simsleepmsec"
@ -462,7 +426,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
<stat_bar name="simpumpiomsec"
@ -473,7 +436,6 @@
precision="3"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false"/>
</stat_view>

View File

@ -31,18 +31,17 @@
<stat_view
name="basic"
label="Basic"
follows="left|top|right"
show_label="true"
setting="OpenDebugStatBasic">
<stat_bar
name="fps"
orientation="horizontal"
label="FPS"
unit_label="fps"
stat="fpsstat"
bar_min="0"
bar_max="60"
tick_spacing="6"
label_spacing="12"
precision="1"
show_bar="true"
show_history="true">
@ -55,7 +54,6 @@
bar_min="0"
bar_max="5000"
tick_spacing="500"
label_spacing="1000"
precision="0"
show_bar="true"
show_history="false">
@ -68,7 +66,6 @@
bar_min="0"
bar_max="5"
tick_spacing="0.5"
label_spacing="1"
precision="3"
show_bar="false"
show_mean="true">
@ -81,7 +78,6 @@
bar_min="0"
bar_max="5000"
tick_spacing="500"
label_spacing="1000"
precision="0"
show_bar="false"
show_mean="false">
@ -91,11 +87,13 @@
<stat_view
name="advanced"
label="Advanced"
follows="left|top|right"
show_label="true"
setting="OpenDebugStatAdvanced">
<stat_view
name="render"
label="Render"
follows="left|top|right"
show_label="true"
setting="OpenDebugStatRender">
<stat_bar
@ -107,7 +105,6 @@
bar_min="0"
bar_max="10000"
tick_spacing="1000"
label_spacing="2000"
precision="0"
show_per_sec="false"
show_bar="false">
@ -121,7 +118,6 @@
bar_min="0"
bar_max="200000"
tick_spacing="25000"
label_spacing="50000"
precision="0"
show_bar="false">
</stat_bar>
@ -133,7 +129,6 @@
bar_min="0"
bar_max="50000"
tick_spacing="5000"
label_spacing="10000"
precision="0"
show_bar="false">
</stat_bar>
@ -145,7 +140,6 @@
bar_min="0"
bar_max="2000"
tick_spacing="200"
label_spacing="400"
show_bar="false">
</stat_bar>
<stat_bar
@ -156,7 +150,6 @@
bar_max="100"
unit_label="%"
tick_spacing="20"
label_spacing="20"
show_history="true"
show_bar="false">
</stat_bar>
@ -165,6 +158,7 @@
<stat_view
name="texture"
label="Texture"
follows="left|top|right"
show_label="true">
<stat_bar
name="texture_cache_hits"
@ -174,7 +168,6 @@
bar_max="100.f"
unit_label="%"
tick_spacing="20"
label_spacing="20"
show_history="true"
show_bar="false">
</stat_bar>
@ -186,7 +179,6 @@
bar_min="0.f"
bar_max="1000.f"
tick_spacing="100"
label_spacing="200"
show_history="true"
show_bar="false">
</stat_bar>
@ -197,7 +189,6 @@
bar_min="0.f"
bar_max="8000.f"
tick_spacing="2000.f"
label_spacing="4000.f"
show_bar="false">
</stat_bar>
@ -208,7 +199,6 @@
bar_min="0.f"
bar_max="8000.f"
tick_spacing="2000.f"
label_spacing="4000.f"
show_bar="false">
</stat_bar>
@ -221,7 +211,6 @@
bar_min="0.f"
bar_max="400.f"
tick_spacing="100.f"
label_spacing="200.f"
precision="1"
show_bar="false">
</stat_bar>
@ -235,7 +224,6 @@
bar_min="0.f"
bar_max="400.f"
tick_spacing="100.f"
label_spacing="200.f"
precision="3"
show_bar="false">
</stat_bar>
@ -249,7 +237,6 @@
bar_min="0.f"
bar_max="400.f"
tick_spacing="100.f"
label_spacing="200.f"
precision="3"
show_bar="false">
</stat_bar>
@ -263,7 +250,6 @@
bar_min="0.f"
bar_max="400.f"
tick_spacing="100.f"
label_spacing="200.f"
precision="3"
show_bar="false">
</stat_bar>
@ -272,6 +258,7 @@
<stat_view
name="network"
label="Network"
follows="left|top|right"
show_label="true"
setting="OpenDebugStatNet">
<stat_bar
@ -282,7 +269,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false">
</stat_bar>
@ -295,7 +281,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false" >
</stat_bar>
@ -308,7 +293,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false" >
</stat_bar>
@ -321,7 +305,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false" >
</stat_bar>
@ -334,7 +317,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false" >
</stat_bar>
@ -347,7 +329,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false" >
</stat_bar>
@ -360,7 +341,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"
show_history="false" >
@ -374,7 +354,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
precision="1"
show_bar="false"
show_history="false">
@ -393,6 +372,7 @@
<stat_view
name="sim"
label="Simulator"
follows="left|top|right"
show_label="true"
setting="OpenDebugStatSim">
<stat_bar
@ -403,7 +383,6 @@
bar_min="0.f"
bar_max="1.f"
tick_spacing="0.16666f"
label_spacing="0.33333f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -416,7 +395,6 @@
bar_min="0.f"
bar_max="45.f"
tick_spacing="7.5f"
label_spacing="15.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -429,7 +407,6 @@
bar_min="0.f"
bar_max="45.f"
tick_spacing="7.5.f"
label_spacing="15.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -437,6 +414,7 @@
<stat_view
name="physicsdetail"
label="Physics Details"
follows="left|top|right"
show_label="true">
<stat_bar
name="physicspinnedtasks"
@ -446,7 +424,6 @@
bar_min="0.f"
bar_max="500.f"
tick_spacing="50.f"
label_spacing="100.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -459,7 +436,6 @@
bar_min="0.f"
bar_max="500.f"
tick_spacing="50.f"
label_spacing="100.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -473,7 +449,6 @@
bar_min="0.f"
bar_max="1024.f"
tick_spacing="128.f"
label_spacing="256.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -487,7 +462,6 @@
bar_min="0.f"
bar_max="100.f"
tick_spacing="25.f"
label_spacing="50.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -500,7 +474,6 @@
bar_min="0.f"
bar_max="80.f"
tick_spacing="10.f"
label_spacing="40.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -513,7 +486,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="5.f"
label_spacing="10.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -526,7 +498,6 @@
bar_min="0.f"
bar_max="30000.f"
tick_spacing="5000.f"
label_spacing="10000.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -539,7 +510,6 @@
bar_min="0.f"
bar_max="5000.f"
tick_spacing="750.f"
label_spacing="1250.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -552,7 +522,6 @@
bar_min="0.f"
bar_max="15000.f"
tick_spacing="1875.f"
label_spacing="3750.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -564,7 +533,6 @@
bar_min="0"
bar_max="100"
tick_spacing="10"
label_spacing="20"
precision="3"
show_bar="false"
show_mean="true">
@ -579,7 +547,6 @@
bar_min="0.f"
bar_max="5000.f"
tick_spacing="750.f"
label_spacing="1250.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -587,6 +554,7 @@
<stat_view
name="simpathfinding"
label="Pathfinding"
follows="left|top|right"
show_label="true">
<stat_bar
name="simsimaistepmsec"
@ -597,7 +565,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -610,7 +577,6 @@
bar_min="0"
bar_max="45"
tick_spacing="4"
label_spacing="8"
show_bar="false">
</stat_bar>
<stat_bar
@ -621,7 +587,6 @@
bar_min="0"
bar_max="100"
tick_spacing="10"
label_spacing="20"
precision="1"
show_bar="false"
show_mean="true">
@ -637,7 +602,6 @@
bar_min="0.f"
bar_max="2000.f"
tick_spacing="250.f"
label_spacing="1000.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -651,7 +615,6 @@
bar_min="0.f"
bar_max="2000.f"
tick_spacing="250.f"
label_spacing="1000.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -664,7 +627,6 @@
bar_min="0.f"
bar_max="800.f"
tick_spacing="100.f"
label_spacing="200.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -677,7 +639,6 @@
bar_min="0.f"
bar_max="100.f"
tick_spacing="25.f"
label_spacing="50.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -691,7 +652,6 @@
bar_min="0.f"
bar_max="100000.f"
tick_spacing="25000.f"
label_spacing="50000.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -699,6 +659,7 @@
<stat_view
name="simperf"
label="Time (ms)"
follows="left|top|right"
show_label="true">
<stat_bar
name="simframemsec"
@ -709,7 +670,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -723,7 +683,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -737,7 +696,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -751,7 +709,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -765,7 +722,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -779,7 +735,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -793,7 +748,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -807,7 +761,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -815,6 +768,7 @@
<stat_view
name="timedetails"
label="Time Details (ms)"
follows="left|top|right"
show_label="true">
<stat_bar
name="simsimphysicsstepmsec"
@ -825,7 +779,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -838,7 +791,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -851,7 +803,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -864,7 +815,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>
@ -877,7 +827,6 @@
bar_min="0.f"
bar_max="40.f"
tick_spacing="10.f"
label_spacing="20.f"
show_bar="false"
show_mean="false" >
</stat_bar>

View File

@ -39,7 +39,7 @@
namespace LLStatViewer
{
LLTrace::Measurement<> FPS_SAMPLE("fpssample");
LLTrace::<> FPS_SAMPLE("fpssample");
}
void LLVOAvatar::getNearbyRezzedStats(std::vector<S32>& counts)