summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llcommon/lltrace.h44
-rw-r--r--indra/llcommon/lltracerecording.h95
-rw-r--r--indra/llcommon/llunit.h34
-rw-r--r--indra/llui/llstatbar.cpp3
-rw-r--r--indra/llui/llstatbar.h2
-rw-r--r--indra/llui/llstatgraph.h10
-rwxr-xr-xindra/newview/llagent.cpp2
-rw-r--r--indra/newview/llappviewer.cpp5
-rw-r--r--indra/newview/llappviewer.h3
-rw-r--r--indra/newview/llcompilequeue.cpp2
-rw-r--r--indra/newview/llfloaterjoystick.cpp2
-rw-r--r--indra/newview/llfloaterregioninfo.cpp2
-rw-r--r--indra/newview/llfloatersnapshot.cpp1
-rw-r--r--indra/newview/llgesturemgr.cpp2
-rw-r--r--indra/newview/lllandmarklist.cpp1
-rw-r--r--indra/newview/llnearbychatbar.cpp1
-rw-r--r--indra/newview/llpanelface.cpp1
-rw-r--r--indra/newview/llpanelpermissions.cpp1
-rw-r--r--indra/newview/llpreviewgesture.cpp2
-rw-r--r--indra/newview/llpreviewnotecard.cpp2
-rw-r--r--indra/newview/llpreviewscript.cpp6
-rw-r--r--indra/newview/llselectmgr.cpp1
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp1
-rw-r--r--indra/newview/llspatialpartition.cpp4
-rwxr-xr-xindra/newview/llstartup.cpp1
-rw-r--r--indra/newview/lltexlayer.cpp1
-rwxr-xr-xindra/newview/lltextureview.cpp6
-rw-r--r--indra/newview/lltooldraganddrop.cpp3
-rw-r--r--indra/newview/lltoolplacer.cpp1
-rwxr-xr-xindra/newview/llviewerassetstats.cpp27
-rwxr-xr-xindra/newview/llviewerassetstats.h7
-rw-r--r--indra/newview/llviewerdisplay.cpp4
-rw-r--r--indra/newview/llviewerjoystick.cpp6
-rw-r--r--indra/newview/llviewermenufile.cpp9
-rwxr-xr-xindra/newview/llviewermessage.cpp155
-rw-r--r--indra/newview/llviewerobject.cpp1
-rw-r--r--indra/newview/llviewerobjectlist.cpp4
-rwxr-xr-xindra/newview/llviewerstats.cpp95
-rwxr-xr-xindra/newview/llviewerstats.h8
-rw-r--r--indra/newview/llviewertexturelist.cpp6
-rwxr-xr-xindra/newview/llviewerwindow.cpp12
-rwxr-xr-xindra/newview/llvoavatar.cpp4
-rwxr-xr-xindra/newview/llvoavatarself.cpp13
-rw-r--r--indra/newview/llwearablelist.cpp1
-rw-r--r--indra/newview/pipeline.cpp16
-rwxr-xr-xindra/newview/tests/llviewerassetstats_test.cpp13
46 files changed, 255 insertions, 365 deletions
diff --git a/indra/llcommon/lltrace.h b/indra/llcommon/lltrace.h
index 1c6726605a..2a479b31d7 100644
--- a/indra/llcommon/lltrace.h
+++ b/indra/llcommon/lltrace.h
@@ -192,10 +192,12 @@ namespace LLTrace
template<typename ACCUMULATOR>
class LL_COMMON_API TraceType
+ : public LLInstanceTracker<TraceType<ACCUMULATOR>, std::string>
{
public:
TraceType(const char* name, const char* description = NULL)
- : mName(name),
+ : LLInstanceTracker(name),
+ mName(name),
mDescription(description ? description : "")
{
mAccumulatorIndex = AccumulatorBuffer<ACCUMULATOR>::getDefaultBuffer().reserveSlot();
@@ -355,18 +357,17 @@ namespace LLTrace
U32 mNumSamples;
};
+ typedef TraceType<MeasurementAccumulator<F64> > measurement_common_t;
+
template <typename T = F64, typename IS_UNIT = void>
class LL_COMMON_API Measurement
- : public TraceType<MeasurementAccumulator<T> >,
- public LLInstanceTracker<Measurement<T, IS_UNIT>, std::string>
+ : public TraceType<MeasurementAccumulator<T> >
{
public:
typedef T storage_t;
- typedef T base_unit_t;
Measurement(const char* name, const char* description = NULL)
- : TraceType(name),
- LLInstanceTracker(name)
+ : TraceType(name, description)
{}
void sample(T value)
@@ -376,37 +377,37 @@ namespace LLTrace
};
template <typename T>
- class LL_COMMON_API Measurement <T, typename T::is_unit_t>
- : public Measurement<typename T::storage_t>
+ class LL_COMMON_API Measurement <T, typename T::is_unit_tag_t>
+ : public TraceType<MeasurementAccumulator<typename T::storage_t> >
{
public:
typedef typename T::storage_t storage_t;
- typedef typename T::base_unit_t base_unit_t;
typedef Measurement<typename T::storage_t> base_measurement_t;
Measurement(const char* name, const char* description = NULL)
- : Measurement<typename T::storage_t>(name, description)
+ : TraceType(name, description)
{}
template<typename UNIT_T>
void sample(UNIT_T value)
{
- base_measurement_t::sample(((T)value).value());
+ T converted_value;
+ converted_value.assignFrom(value);
+ getPrimaryAccumulator().sample(converted_value.value());
}
};
+ typedef TraceType<CountAccumulator<F64> > count_common_t;
+
template <typename T = F64, typename IS_UNIT = void>
class LL_COMMON_API Count
- : public TraceType<CountAccumulator<T> >,
- public LLInstanceTracker<Count<T>, std::string>
+ : public TraceType<CountAccumulator<T> >
{
public:
typedef T storage_t;
- typedef T base_unit_t;
Count(const char* name, const char* description = NULL)
- : TraceType(name),
- LLInstanceTracker(name)
+ : TraceType(name)
{}
void add(T value)
@@ -416,22 +417,23 @@ namespace LLTrace
};
template <typename T>
- class LL_COMMON_API Count <T, typename T::is_unit_t>
- : public Count<typename T::storage_t>
+ class LL_COMMON_API Count <T, typename T::is_unit_tag_t>
+ : public TraceType<CountAccumulator<typename T::storage_t> >
{
public:
typedef typename T::storage_t storage_t;
- typedef typename T::base_unit_t base_unit_t;
typedef Count<typename T::storage_t> base_count_t;
Count(const char* name, const char* description = NULL)
- : Count<typename T::storage_t>(name)
+ : TraceType(name)
{}
template<typename UNIT_T>
void add(UNIT_T value)
{
- base_count_t::add(((T)value).value());
+ T converted_value;
+ converted_value.assignFrom(value);
+ getPrimaryAccumulator().add(converted_value.value());
}
};
diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h
index 5e7b0752c6..25f4f5c721 100644
--- a/indra/llcommon/lltracerecording.h
+++ b/indra/llcommon/lltracerecording.h
@@ -112,64 +112,121 @@ namespace LLTrace
void update();
// Count accessors
+ template <typename T>
+ T getSum(const TraceType<CountAccumulator<T> >& stat) const
+ {
+ return (T)stat.getAccumulator(mCounts).getSum();
+ }
+
template <typename T, typename IS_UNIT>
- typename Count<T, IS_UNIT>::base_unit_t getSum(const Count<T, IS_UNIT>& stat) const
+ T getSum(const Count<T, IS_UNIT>& stat) const
+ {
+ return (T)stat.getAccumulator(mCounts).getSum();
+ }
+
+ template <typename T>
+ T getPerSec(const TraceType<CountAccumulator<T> >& stat) const
{
- return (typename Count<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mCounts).getSum();
+ return (T)stat.getAccumulator(mCounts).getSum() / mElapsedSeconds;
}
template <typename T, typename IS_UNIT>
- typename Count<T, IS_UNIT>::base_unit_t getPerSec(const Count<T, IS_UNIT>& stat) const
+ T getPerSec(const Count<T, IS_UNIT>& stat) const
{
- return (typename Count<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mCounts).getSum() / mElapsedSeconds;
+ return (T)stat.getAccumulator(mCounts).getSum() / mElapsedSeconds;
}
// Measurement accessors
+ template <typename T>
+ T getSum(const TraceType<MeasurementAccumulator<T> >& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getSum();
+
+ }
+
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getSum(const Measurement<T, IS_UNIT>& stat) const
+ T getSum(const Measurement<T, IS_UNIT>& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getSum();
+ return (T)stat.getAccumulator(mMeasurements).getSum();
+
+ }
+ template <typename T>
+ T getPerSec(const TraceType<MeasurementAccumulator<T> >& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getSum() / mElapsedSeconds;
}
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getPerSec(const Measurement<T, IS_UNIT>& stat) const
+ T getPerSec(const Measurement<T, IS_UNIT>& stat) const
{
return (typename Count<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getSum() / mElapsedSeconds;
}
- template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getMin(const Measurement<T, IS_UNIT>& stat) const
+ template <typename T>
+ T getMin(const TraceType<MeasurementAccumulator<T> >& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getMin();
+ return (T)stat.getAccumulator(mMeasurements).getMin();
}
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getMax(const Measurement<T, IS_UNIT>& stat) const
+ T getMin(const Measurement<T, IS_UNIT>& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getMax();
+ return (T)stat.getAccumulator(mMeasurements).getMin();
+ }
+
+
+ template <typename T>
+ T getMax(const TraceType<MeasurementAccumulator<T> >& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getMax();
}
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getMean(Measurement<T, IS_UNIT>& stat) const
+ T getMax(const Measurement<T, IS_UNIT>& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getMax();
+ }
+
+ template <typename T>
+ T getMean(const TraceType<MeasurementAccumulator<T> >& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getMean();
+ return (T)stat.getAccumulator(mMeasurements).getMean();
}
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getStandardDeviation(const Measurement<T, IS_UNIT>& stat) const
+ T getMean(Measurement<T, IS_UNIT>& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getMean();
+ }
+
+ template <typename T>
+ T getStandardDeviation(const TraceType<MeasurementAccumulator<T> >& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getStandardDeviation();
+ return (T)stat.getAccumulator(mMeasurements).getStandardDeviation();
}
template <typename T, typename IS_UNIT>
- typename Measurement<T, IS_UNIT>::base_unit_t getLastValue(const Measurement<T, IS_UNIT>& stat) const
+ T getStandardDeviation(const Measurement<T, IS_UNIT>& stat) const
{
- return (typename Measurement<T, IS_UNIT>::base_unit_t)stat.getAccumulator(mMeasurements).getLastValue();
+ return (T)stat.getAccumulator(mMeasurements).getStandardDeviation();
+ }
+
+ template <typename T>
+ T getLastValue(const TraceType<MeasurementAccumulator<T> >& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getLastValue();
}
template <typename T, typename IS_UNIT>
- U32 getSampleCount(const Measurement<T, IS_UNIT>& stat) const
+ T getLastValue(const Measurement<T, IS_UNIT>& stat) const
+ {
+ return (T)stat.getAccumulator(mMeasurements).getLastValue();
+ }
+
+
+ template <typename T>
+ U32 getSampleCount(const TraceType<MeasurementAccumulator<T> >& stat) const
{
return stat.getAccumulator(mMeasurements).getSampleCount();
}
diff --git a/indra/llcommon/llunit.h b/indra/llcommon/llunit.h
index d980989c91..e778383959 100644
--- a/indra/llcommon/llunit.h
+++ b/indra/llcommon/llunit.h
@@ -36,7 +36,7 @@ struct LLUnitType : public BASE_UNIT
typedef DERIVED_UNIT unit_t;
typedef typename STORAGE_TYPE storage_t;
- typedef void is_unit_t;
+ typedef void is_unit_tag_t;
LLUnitType()
{}
@@ -57,7 +57,7 @@ struct LLUnitType : public BASE_UNIT
}
template<typename CONVERTED_TYPE>
- storage_t value() const
+ storage_t as() const
{
return CONVERTED_TYPE(*this).value();
}
@@ -80,8 +80,7 @@ struct LLUnitType<STORAGE_TYPE, T, T>
{
typedef T unit_t;
typedef STORAGE_TYPE storage_t;
- typedef void is_unit_t;
- typedef T base_unit_t;
+ typedef void is_unit_tag_t;
LLUnitType()
: mBaseValue()
@@ -105,6 +104,13 @@ struct LLUnitType<STORAGE_TYPE, T, T>
storage_t value() const { return mBaseValue; }
+ template<typename CONVERTED_TYPE>
+ storage_t as() const
+ {
+ return CONVERTED_TYPE(*this).value();
+ }
+
+
static storage_t convertToBase(storage_t derived_value)
{
return (storage_t)derived_value;
@@ -354,10 +360,16 @@ bool operator != (LLUnitType<STORAGE_TYPE, BASE_UNIT, DERIVED_UNIT> first, LLUni
template <typename SOURCE_STORAGE_TYPE, typename SOURCE_TYPE> \
unit_name(LLUnitType<SOURCE_STORAGE_TYPE, unit_name<SOURCE_STORAGE_TYPE>, SOURCE_TYPE> source) \
{ \
- setBaseValue((storage_t)source.unit_name<SOURCE_STORAGE_TYPE>::unit_t::value()); \
+ assignFrom(source); \
} \
\
- };
+ template <typename SOURCE_STORAGE_TYPE, typename SOURCE_TYPE> \
+ void assignFrom(LLUnitType<SOURCE_STORAGE_TYPE, unit_name<SOURCE_STORAGE_TYPE>, SOURCE_TYPE> source) \
+ { \
+ setBaseValue((storage_t)source.unit_name<SOURCE_STORAGE_TYPE>::unit_t::value()); \
+ } \
+ \
+ }; \
#define LL_DECLARE_DERIVED_UNIT(base_unit, derived_unit, conversion_factor) \
template<typename STORAGE> \
@@ -372,12 +384,18 @@ bool operator != (LLUnitType<STORAGE_TYPE, BASE_UNIT, DERIVED_UNIT> first, LLUni
template <typename SOURCE_STORAGE_TYPE, typename SOURCE_TYPE> \
derived_unit(LLUnitType<SOURCE_STORAGE_TYPE, base_unit<SOURCE_STORAGE_TYPE>, SOURCE_TYPE> source) \
{ \
- setBaseValue((storage_t)source.base_unit<SOURCE_STORAGE_TYPE>::unit_t::value()); \
+ assignFrom(source); \
+ } \
+ \
+ template <typename SOURCE_STORAGE_TYPE, typename SOURCE_TYPE> \
+ void assignFrom(LLUnitType<SOURCE_STORAGE_TYPE, base_unit<SOURCE_STORAGE_TYPE>, SOURCE_TYPE> source) \
+ { \
+ setBaseValue((storage_t)source.base_unit<SOURCE_STORAGE_TYPE>::unit_t::value()); \
} \
\
static F32 conversionToBaseFactor() { return (F32)(conversion_factor); } \
\
- };
+ }; \
namespace LLUnit
{
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index c60e5431ae..535c6f96e3 100644
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -56,8 +56,7 @@ LLStatBar::LLStatBar(const Params& p)
mDisplayBar(p.show_bar),
mDisplayHistory(p.show_history),
mDisplayMean(p.show_mean)
-{
-}
+{}
BOOL LLStatBar::handleMouseDown(S32 x, S32 y, MASK mask)
{
diff --git a/indra/llui/llstatbar.h b/indra/llui/llstatbar.h
index e4b0c61c42..d510f0e3fe 100644
--- a/indra/llui/llstatbar.h
+++ b/indra/llui/llstatbar.h
@@ -99,7 +99,7 @@ private:
LLTrace::PeriodicRecording* mFrameRecording;
LLStat* mStatp;
- LLTrace::Count<>* mNewStatp;
+ LLTrace::count_common_t* mNewStatp;
LLFrameTimer mUpdateTimer;
LLUIString mLabel;
diff --git a/indra/llui/llstatgraph.h b/indra/llui/llstatgraph.h
index 5bbd9e9d24..b20966d608 100644
--- a/indra/llui/llstatgraph.h
+++ b/indra/llui/llstatgraph.h
@@ -59,9 +59,9 @@ public:
struct StatParams : public LLInitParam::ChoiceBlock<StatParams>
{
- Alternative<LLStat*> legacy_stat;
- Alternative<LLTrace::Count<>* > count_stat;
- Alternative<LLTrace::Measurement<>* > measurement_stat;
+ Alternative<LLStat*> legacy_stat;
+ Alternative<LLTrace::count_common_t* > count_stat;
+ Alternative<LLTrace::measurement_common_t* > measurement_stat;
};
struct Params : public LLInitParam::Block<Params, LLView::Params>
@@ -106,8 +106,8 @@ public:
/*virtual*/ void setValue(const LLSD& value);
private:
- LLStat* mStatp;
- LLTrace::Count<>* mNewStatp;
+ LLStat* mStatp;
+ LLTrace::count_common_t* mNewStatp;
BOOL mPerSec;
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index a41efbe0b2..ac33f09718 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -754,7 +754,6 @@ void LLAgent::setFlying(BOOL fly)
if( !was_flying )
{
LLStatViewer::FLY.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_FLY_COUNT);
}
setControlFlags(AGENT_CONTROL_FLY);
}
@@ -3811,7 +3810,6 @@ bool LLAgent::teleportCore(bool is_local)
// local logic
LLStatViewer::TELEPORT.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TELEPORT_COUNT);
if (is_local)
{
gAgent.setTeleportState( LLAgent::TELEPORT_LOCAL );
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 6e0b298b2a..4ab0e3336a 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -277,7 +277,7 @@ LLPumpIO* gServicePump = NULL;
U64 gFrameTime = 0;
F32 gFrameTimeSeconds = 0.f;
-F32 gFrameIntervalSeconds = 0.f;
+LLUnit::Seconds<F32> gFrameIntervalSeconds = 0.f;
F32 gFPSClamped = 10.f; // Pretend we start at target rate.
F32 gFrameDTClamped = 0.f; // Time between adjacent checks to network for packets
U64 gStartTime = 0; // gStartTime is "private", used only to calculate gFrameTimeSeconds
@@ -1395,7 +1395,7 @@ bool LLAppViewer::mainLoop()
{
S32 work_pending = 0;
S32 io_pending = 0;
- F32 max_time = llmin(gFrameIntervalSeconds*10.f, 1.f);
+ F32 max_time = llmin(gFrameIntervalSeconds.value() *10.f, 1.f);
{
LLFastTimer ftm(FTM_TEXTURE_CACHE);
@@ -4811,7 +4811,6 @@ void LLAppViewer::idleNetwork()
}
}
LLStatViewer::NUM_NEW_OBJECTS.sample(gObjectList.mNumNewObjects);
- //LLViewerStats::getInstance()->mNumNewObjectsStat.addValue(gObjectList.mNumNewObjects);
// Retransmit unacknowledged packets.
gXferManager->retransmitUnackedPackets();
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index cdf4426469..d9d888c626 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -31,6 +31,7 @@
#include "llcontrol.h"
#include "llsys.h" // for LLOSInfo
#include "lltimer.h"
+#include "llunit.h"
class LLCommandLineParser;
class LLFrameTimer;
@@ -321,7 +322,7 @@ extern LLPumpIO* gServicePump;
extern U64 gFrameTime; // The timestamp of the most-recently-processed frame
extern F32 gFrameTimeSeconds; // Loses msec precision after ~4.5 hours...
-extern F32 gFrameIntervalSeconds; // Elapsed time between current and previous gFrameTimeSeconds
+extern LLUnit::Seconds<F32> gFrameIntervalSeconds; // Elapsed time between current and previous gFrameTimeSeconds
extern F32 gFPSClamped; // Frames per second, smoothed, weighted toward last frame
extern F32 gFrameDTClamped;
extern U64 gStartTime;
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 6739910c38..033c8f4865 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -436,8 +436,6 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
{
LLSD args;
diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp
index d0c22d25f2..f7b2670b8e 100644
--- a/indra/newview/llfloaterjoystick.cpp
+++ b/indra/newview/llfloaterjoystick.cpp
@@ -61,7 +61,7 @@ void LLFloaterJoystick::draw()
for (U32 i = 0; i < 6; i++)
{
F32 value = joystick->getJoystickAxis(i);
- mAxisStats[i]->addValue(value * gFrameIntervalSeconds);
+ mAxisStats[i]->addValue(value * gFrameIntervalSeconds.value());
if (mAxisStatsBar[i])
{
F32 minbar, maxbar;
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 8234841966..6cce013105 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -2491,8 +2491,6 @@ void LLPanelEstateCovenant::onLoadComplete(LLVFS *vfs,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 4a58e0186c..0d90037e7b 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -993,7 +993,6 @@ void LLSnapshotLivePreview::saveTexture()
}
LLStatViewer::SNAPSHOT.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_SNAPSHOT_COUNT );
mDataSize = 0;
}
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 63ef8c3d21..27a29d3ace 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -1137,8 +1137,6 @@ void LLGestureMgr::onLoadComplete(LLVFS *vfs,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index 1666425cbe..2a131eff58 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -141,7 +141,6 @@ void LLLandmarkList::processGetAssetReply(
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
// SJB: No use case for a notification here. Use lldebugs instead
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
{
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 0aced5c575..23cbfae044 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -639,7 +639,6 @@ void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32
gAgent.sendReliableMessage();
LLStatViewer::CHAT_COUNT.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_CHAT_COUNT);
}
class LLChatCommandHandler : public LLCommandHandler
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 52ed24f06d..39ded21183 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -1050,7 +1050,6 @@ BOOL LLPanelFace::onDragTexture(LLUICtrl*, LLInventoryItem* item)
void LLPanelFace::onCommitTexture( const LLSD& data )
{
LLStatViewer::EDIT_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
sendTexture();
}
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index 51ab7649a4..8027783bd8 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -915,7 +915,6 @@ bool callback_deed_to_group(const LLSD& notification, const LLSD& response)
if(group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
{
LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE);
-// LLViewerStats::getInstance()->incStat(LLViewerStats::ST_RELEASE_COUNT);
}
}
return false;
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 4082d272f2..cbb4d5f964 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -883,8 +883,6 @@ void LLPreviewGesture::onLoadComplete(LLVFS *vfs,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index b93b97f1e0..97c9de4b72 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -339,8 +339,6 @@ void LLPreviewNotecard::onLoadComplete(LLVFS *vfs,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 059d5d4061..7607df5a55 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -943,7 +943,6 @@ void LLScriptEdCore::onBtnInsertFunction(LLUICtrl *ui, void* userdata)
void LLScriptEdCore::doSave( BOOL close_after_save )
{
LLStatViewer::LSL_SAVES.add(1);
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_LSL_SAVE_COUNT );
if( mSaveCallback )
{
@@ -1148,7 +1147,6 @@ void LLScriptEdCore::onBtnLoadFromFile( void* data )
void LLScriptEdCore::onBtnSaveToFile( void* userdata )
{
LLStatViewer::LSL_SAVES.add(1);
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_LSL_SAVE_COUNT );
LLScriptEdCore* self = (LLScriptEdCore*) userdata;
@@ -1671,8 +1669,6 @@ void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAsset
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
@@ -1903,8 +1899,6 @@ void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index fd03d7c0be..36ce7bb60e 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -1551,7 +1551,6 @@ void LLObjectSelection::applyNoCopyTextureToTEs(LLViewerInventoryItem* item)
// apply texture for the selected faces
LLStatViewer::EDIT_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
object->setTEImage(te, image);
dialog_refresh_all();
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index c351b1a128..8fb56eb6d8 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -945,7 +945,6 @@ static bool callback_deed_to_group(const LLSD& notification, const LLSD& respons
if (group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
{
LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE);
-// LLViewerStats::getInstance()->incStat(LLViewerStats::ST_RELEASE_COUNT);
}
}
return FALSE;
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 5083478392..c4c9b0bd4c 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -1580,7 +1580,7 @@ void LLSpatialGroup::checkOcclusion()
LLFastTimer t(FTM_OCCLUSION_WAIT);
while (!available && max_loop-- > 0)
{
- F32 max_time = llmin(gFrameIntervalSeconds*10.f, 1.f);
+ F32 max_time = llmin(gFrameIntervalSeconds.value()*10.f, 1.f);
//do some usefu work while we wait
LLAppViewer::getTextureCache()->update(max_time); // unpauses the texture cache thread
LLAppViewer::getImageDecodeThread()->update(max_time); // unpauses the image thread
@@ -2574,7 +2574,7 @@ void renderOctree(LLSpatialGroup* group)
LLVector4 col;
if (group->mBuilt > 0.f)
{
- group->mBuilt -= 2.f * gFrameIntervalSeconds;
+ group->mBuilt -= 2.f * gFrameIntervalSeconds.value();
if (group->mBufferUsage == GL_STATIC_DRAW_ARB)
{
col.setVec(1.0f, 0, 0, group->mBuilt*0.5f);
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index cb3c90ea2a..bf47bd44c3 100755
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2072,7 +2072,6 @@ bool idle_startup()
{
LLNotificationsUtil::add("ClothingLoading");
LLStatViewer::LOADING_WEARABLES_LONG_DELAY.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_WEARABLES_TOO_LONG);
LLStartUp::setStartupState( STATE_CLEANUP );
return TRUE;
}
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index e354a5c59d..909745c5b6 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -461,7 +461,6 @@ void LLTexLayerSetBuffer::doUpload()
{
llinfos << "Uploading baked " << mTexLayerSet->getBodyRegionName() << llendl;
LLStatViewer::TEX_BAKES.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_BAKES);
// Don't need caches since we're baked now. (note: we won't *really* be baked
// until this image is sent to the server and the Avatar Appearance message is received.)
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index a88233e120..d734620f10 100755
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -512,8 +512,8 @@ void LLGLTexMemBar::draw()
F32 cache_max_usage = (F32)LLTrace::Megabytes(LLAppViewer::getTextureCache()->getMaxUsage()).value() ;
S32 line_height = LLFontGL::getFontMonospace()->getLineHeight();
S32 v_offset = 0;//(S32)((texture_bar_height + 2.2f) * mTextureView->mNumTextureBars + 2.0f);
- F32 total_texture_downloaded = (F32)gTotalTextureBytes / (1024 * 1024);
- F32 total_object_downloaded = (F32)gTotalObjectBytes / (1024 * 1024);
+ LLUnit::Megabytes<F32> total_texture_downloaded = gTotalTextureData;
+ LLUnit::Megabytes<F32> total_object_downloaded = gTotalObjectData;
U32 total_http_requests = LLAppViewer::getTextureFetch()->getCurlRequest().getTotalIssuedRequests() ;
//----------------------------------------------------------------------------
LLGLSUIDefault gls_ui;
@@ -537,7 +537,7 @@ void LLGLTexMemBar::draw()
text_color, LLFontGL::LEFT, LLFontGL::TOP);
text = llformat("Net Tot Tex: %.1f MB Tot Obj: %.1f MB Tot Htp: %d",
- total_texture_downloaded, total_object_downloaded, total_http_requests);
+ total_texture_downloaded.value(), total_object_downloaded.value(), total_http_requests);
//, cache_entries, cache_max_entries
LLFontGL::getFontMonospace()->renderUTF8(text, 0, 0, v_offset + line_height*3,
text_color, LLFontGL::LEFT, LLFontGL::TOP);
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 791da59a1a..652847aac9 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1063,7 +1063,6 @@ void LLToolDragAndDrop::dropTextureAllFaces(LLViewerObject* hit_obj,
}
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture(asset_id);
LLStatViewer::EDIT_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
S32 num_faces = hit_obj->getNumTEs();
for( S32 face = 0; face < num_faces; face++ )
{
@@ -1132,7 +1131,6 @@ void LLToolDragAndDrop::dropTextureOneFace(LLViewerObject* hit_obj,
// update viewer side image in anticipation of update from simulator
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture(asset_id);
LLStatViewer::EDIT_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
hit_obj->setTEImage(hit_face, image);
dialog_refresh_all();
@@ -1357,7 +1355,6 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target,
effectp->setColor(LLColor4U(gAgent.getEffectColor()));
LLStatViewer::OBJECT_REZ.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_REZ_COUNT);
}
void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj,
diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp
index cf5a6e3762..329249eee8 100644
--- a/indra/newview/lltoolplacer.cpp
+++ b/indra/newview/lltoolplacer.cpp
@@ -434,7 +434,6 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics )
effectp->setColor(LLColor4U(gAgent.getEffectColor()));
LLStatViewer::OBJECT_CREATE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_CREATE_COUNT);
return TRUE;
}
diff --git a/indra/newview/llviewerassetstats.cpp b/indra/newview/llviewerassetstats.cpp
index e556743cbf..44e4c54142 100755
--- a/indra/newview/llviewerassetstats.cpp
+++ b/indra/newview/llviewerassetstats.cpp
@@ -84,6 +84,30 @@
// ------------------------------------------------------
LLViewerAssetStats * gViewerAssetStatsMain(0);
LLViewerAssetStats * gViewerAssetStatsThread1(0);
+LLTrace::Count<> LLViewerAssetStats::sEnqueued[EVACCount] = {LLTrace::Count<>("enqueuedassetrequeststemptexturehttp", "Number of temporary texture asset http requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequeststemptextureudp", "Number of temporary texture asset udp requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestsnontemptexturehttp", "Number of texture asset http requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestsnontemptextureudp", "Number of texture asset udp requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestswearableudp", "Number of wearable asset requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestssoundudp", "Number of sound asset requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestsgestureudp", "Number of gesture asset requests enqueued"),
+ LLTrace::Count<>("enqueuedassetrequestsother", "Number of other asset requests enqueued")};
+LLTrace::Count<> LLViewerAssetStats::sDequeued[EVACCount] = {LLTrace::Count<>("dequeuedassetrequeststemptexturehttp", "Number of temporary texture asset http requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequeststemptextureudp", "Number of temporary texture asset udp requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestsnontemptexturehttp", "Number of texture asset http requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestsnontemptextureudp", "Number of texture asset udp requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestswearableudp", "Number of wearable asset requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestssoundudp", "Number of sound asset requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestsgestureudp", "Number of gesture asset requests dequeued"),
+ LLTrace::Count<>("dequeuedassetrequestsother", "Number of other asset requests dequeued")};
+LLTrace::Measurement<LLTrace::Seconds> LLViewerAssetStats::sResponse[EVACCount] = {LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimestemptexturehttp", "Time spent responding to temporary texture asset http requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimestemptextureudp", "Time spent responding to temporary texture asset udp requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimesnontemptexturehttp", "Time spent responding to texture asset http requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimesnontemptextureudp", "Time spent responding to texture asset udp requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimeswearableudp", "Time spent responding to wearable asset requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimessoundudp", "Time spent responding to sound asset requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimesgestureudp", "Time spent responding to gesture asset requests"),
+ LLTrace::Measurement<LLTrace::Seconds>("assetresponsetimesother", "Time spent responding to other asset requests")};
// ------------------------------------------------------
@@ -234,6 +258,7 @@ LLViewerAssetStats::recordGetEnqueued(LLViewerAssetType::EType at, bool with_htt
const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
++(mCurRegionStats->mRequests[int(eac)].mEnqueued);
+ sEnqueued[int(eac)].add(1);
}
void
@@ -242,6 +267,7 @@ LLViewerAssetStats::recordGetDequeued(LLViewerAssetType::EType at, bool with_htt
const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
++(mCurRegionStats->mRequests[int(eac)].mDequeued);
+ sDequeued[int(eac)].add(1);
}
void
@@ -250,6 +276,7 @@ LLViewerAssetStats::recordGetServiced(LLViewerAssetType::EType at, bool with_htt
const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
mCurRegionStats->mRequests[int(eac)].mResponse.record(duration);
+ sResponse[int(eac)].sample<LLTrace::Seconds>(duration);
}
void
diff --git a/indra/newview/llviewerassetstats.h b/indra/newview/llviewerassetstats.h
index 8319752230..a750db2cc2 100755
--- a/indra/newview/llviewerassetstats.h
+++ b/indra/newview/llviewerassetstats.h
@@ -37,6 +37,7 @@
#include "llsimplestat.h"
#include "llsd.h"
#include "llvoavatar.h"
+#include "lltrace.h"
/**
* @class LLViewerAssetStats
@@ -240,6 +241,7 @@ public:
protected:
typedef std::map<region_handle_t, LLPointer<PerRegionStats> > PerRegionContainer;
+ typedef std::map<region_handle_t, LLTrace::Recording > PerRegionRecordingContainer;
// Region of the currently-active region. Always valid but may
// be zero after construction or when explicitly set. Unchanged
@@ -251,8 +253,13 @@ protected:
// Always points to a collection contained in mRegionStats.
LLPointer<PerRegionStats> mCurRegionStats;
+ static LLTrace::Count<> sEnqueued[EVACCount];
+ static LLTrace::Count<> sDequeued[EVACCount];
+ static LLTrace::Measurement<LLTrace::Seconds> sResponse[EVACCount];
+
// Metrics data for all regions during one collection cycle
PerRegionContainer mRegionStats;
+ PerRegionRecordingContainer mRegionRecordings;
// Time of last reset
duration_t mResetTimestamp;
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index ffeea2f4df..169b45c14e 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -607,7 +607,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLFastTimer t(FTM_DISPLAY_UPDATE_GEOM);
- const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds; // 50 ms/second update time
+ const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds.value(); // 50 ms/second update time
gPipeline.createObjects(max_geom_update_time);
gPipeline.processPartitionQ();
gPipeline.updateGeom(max_geom_update_time);
@@ -760,7 +760,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLFastTimer t(FTM_IMAGE_UPDATE_LIST);
- F32 max_image_decode_time = 0.050f*gFrameIntervalSeconds; // 50 ms/second decode time
+ F32 max_image_decode_time = 0.050f*gFrameIntervalSeconds.value(); // 50 ms/second decode time
max_image_decode_time = llclamp(max_image_decode_time, 0.002f, 0.005f ); // min 2ms/frame, max 5ms/frame)
gTextureList.updateImages(max_image_decode_time);
}
diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp
index f6e840adcd..f4155df4d1 100644
--- a/indra/newview/llviewerjoystick.cpp
+++ b/indra/newview/llviewerjoystick.cpp
@@ -501,7 +501,7 @@ void LLViewerJoystick::moveObjects(bool reset)
};
F32 cur_delta[6];
- F32 time = gFrameIntervalSeconds;
+ F32 time = gFrameIntervalSeconds.value();
// avoid making ridicously big movements if there's a big drop in fps
if (time > .2f)
@@ -665,7 +665,7 @@ void LLViewerJoystick::moveAvatar(bool reset)
};
// time interval in seconds between this frame and the previous
- F32 time = gFrameIntervalSeconds;
+ F32 time = gFrameIntervalSeconds.value();
// avoid making ridicously big movements if there's a big drop in fps
if (time > .2f)
@@ -878,7 +878,7 @@ void LLViewerJoystick::moveFlycam(bool reset)
gSavedSettings.getF32("FlycamAxisDeadZone6")
};
- F32 time = gFrameIntervalSeconds;
+ F32 time = gFrameIntervalSeconds.value();
// avoid making ridiculously big movements if there's a big drop in fps
if (time > .2f)
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 7ce8cdcfd8..50ca8db267 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -1097,19 +1097,16 @@ void upload_new_resource(
if( LLAssetType::AT_SOUND == asset_type )
{
LLStatViewer::UPLOAD_SOUND.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_UPLOAD_SOUND_COUNT );
}
else
if( LLAssetType::AT_TEXTURE == asset_type )
{
LLStatViewer::UPLOAD_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_UPLOAD_TEXTURE_COUNT );
}
else
if( LLAssetType::AT_ANIMATION == asset_type)
{
LLStatViewer::ANIMATION_UPLOADS.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_UPLOAD_ANIM_COUNT );
}
if(LLInventoryType::IT_NONE == inv_type)
@@ -1235,20 +1232,14 @@ void increase_new_upload_stats(LLAssetType::EType asset_type)
if ( LLAssetType::AT_SOUND == asset_type )
{
LLStatViewer::UPLOAD_SOUND.add(1);
- //LLViewerStats::getInstance()->incStat(
- // LLViewerStats::ST_UPLOAD_SOUND_COUNT );
}
else if ( LLAssetType::AT_TEXTURE == asset_type )
{
LLStatViewer::UPLOAD_TEXTURE.add(1);
- //LLViewerStats::getInstance()->incStat(
- // LLViewerStats::ST_UPLOAD_TEXTURE_COUNT );
}
else if ( LLAssetType::AT_ANIMATION == asset_type )
{
LLStatViewer::ANIMATION_UPLOADS.add(1);
- //LLViewerStats::getInstance()->incStat(
- // LLViewerStats::ST_UPLOAD_ANIM_COUNT );
}
}
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index b3e1c9bdbe..82caa05983 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4416,18 +4416,18 @@ void send_agent_update(BOOL force_send, BOOL send_reliable)
// *TODO: Remove this dependency, or figure out a better way to handle
// this hack.
-extern U32 gObjectBits;
+extern LLUnit::Bits<U32> gObjectData;
void process_object_update(LLMessageSystem *mesgsys, void **user_data)
{
// Update the data counters
if (mesgsys->getReceiveCompressedSize())
{
- gObjectBits += mesgsys->getReceiveCompressedSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveCompressedSize();
}
else
{
- gObjectBits += mesgsys->getReceiveSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveSize();
}
// Update the object...
@@ -4439,11 +4439,11 @@ void process_compressed_object_update(LLMessageSystem *mesgsys, void **user_data
// Update the data counters
if (mesgsys->getReceiveCompressedSize())
{
- gObjectBits += mesgsys->getReceiveCompressedSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveCompressedSize();
}
else
{
- gObjectBits += mesgsys->getReceiveSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveSize();
}
// Update the object...
@@ -4455,11 +4455,11 @@ void process_cached_object_update(LLMessageSystem *mesgsys, void **user_data)
// Update the data counters
if (mesgsys->getReceiveCompressedSize())
{
- gObjectBits += mesgsys->getReceiveCompressedSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveCompressedSize();
}
else
{
- gObjectBits += mesgsys->getReceiveSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveSize();
}
// Update the object...
@@ -4471,11 +4471,11 @@ void process_terse_object_update_improved(LLMessageSystem *mesgsys, void **user_
{
if (mesgsys->getReceiveCompressedSize())
{
- gObjectBits += mesgsys->getReceiveCompressedSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveCompressedSize();
}
else
{
- gObjectBits += mesgsys->getReceiveSize() * 8;
+ gObjectData += (LLUnit::Bytes<U32>)mesgsys->getReceiveSize();
}
gObjectList.processCompressedObjectUpdate(mesgsys, user_data, OUT_TERSE_IMPROVED);
@@ -4763,140 +4763,6 @@ void process_sim_stats(LLMessageSystem *msg, void **user_data)
{
llwarns << "Unknown sim stat identifier: " << stat_id << llendl;
}
- //switch (stat_id)
- //{
- //case LL_SIM_STAT_TIME_DILATION:
- // LLStatViewer::SIM_TIME_DILATION.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimTimeDilation.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_FPS:
- // LLStatViewer::SIM_FPS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimFPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PHYSFPS:
- // LLStatViewer::SIM_PHYSICS_FPS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimPhysicsFPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_AGENTUPS:
- // LLStatViewer::SIM_AGENT_UPS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimAgentUPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_FRAMEMS:
- // LLStatViewer::SIM_FRAME_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimFrameMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NETMS:
- // LLStatViewer::SIM_NET_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimNetMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMOTHERMS:
- // LLStatViewer::SIM_PHYSICS_OTHER_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimSimOtherMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMPHYSICSMS:
- // LLStatViewer::SIM_PHYSICS_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimSimPhysicsMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_AGENTMS:
- // LLStatViewer::SIM_AGENTS_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimAgentMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_IMAGESMS:
- // LLStatViewer::SIM_IMAGES_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimImagesMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SCRIPTMS:
- // LLStatViewer::SIM_SCRIPTS_TIME.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimScriptMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NUMTASKS:
- // LLStatViewer::SIM_OBJECTS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimObjects.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NUMTASKSACTIVE:
- // LLStatViewer::SIM_ACTIVE_OBJECTS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimActiveObjects.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NUMAGENTMAIN:
- // LLStatViewer::SIM_MAIN_AGENTS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimMainAgents.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NUMAGENTCHILD:
- // LLStatViewer::SIM_CHILD_AGENTS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimChildAgents.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_NUMSCRIPTSACTIVE:
- // LLStatViewer::SIM_ACTIVE_SCRIPTS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimActiveScripts.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SCRIPT_EPS:
- // LLStatViewer::SIM_SCRIPT_EPS.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimScriptEPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_INPPS:
- // LLStatViewer::SIM_IN_PACKETS_PER_SEC.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimInPPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_OUTPPS:
- // LLStatViewer::SIM_OUT_PACKETS_PER_SEC.sample(stat_value);
- // //LLViewerStats::getInstance()->mSimOutPPS.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PENDING_DOWNLOADS:
- // LLViewerStats::getInstance()->mSimPendingDownloads.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PENDING_UPLOADS:
- // LLViewerStats::getInstance()->mSimPendingUploads.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PENDING_LOCAL_UPLOADS:
- // LLViewerStats::getInstance()->mSimPendingLocalUploads.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_TOTAL_UNACKED_BYTES:
- // LLViewerStats::getInstance()->mSimTotalUnackedBytes.addValue(stat_value / 1024.f);
- // break;
- //case LL_SIM_STAT_PHYSICS_PINNED_TASKS:
- // LLViewerStats::getInstance()->mPhysicsPinnedTasks.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PHYSICS_LOD_TASKS:
- // LLViewerStats::getInstance()->mPhysicsLODTasks.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMPHYSICSSTEPMS:
- // LLViewerStats::getInstance()->mSimSimPhysicsStepMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMPHYSICSSHAPEMS:
- // LLViewerStats::getInstance()->mSimSimPhysicsShapeUpdateMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMPHYSICSOTHERMS:
- // LLViewerStats::getInstance()->mSimSimPhysicsOtherMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMPHYSICSMEMORY:
- // LLViewerStats::getInstance()->mPhysicsMemoryAllocated.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMSPARETIME:
- // LLViewerStats::getInstance()->mSimSpareMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMSLEEPTIME:
- // LLViewerStats::getInstance()->mSimSleepMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_IOPUMPTIME:
- // LLViewerStats::getInstance()->mSimPumpIOMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PCTSCRIPTSRUN:
- // LLViewerStats::getInstance()->mSimPctScriptsRun.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SIMAISTEPTIMEMS:
- // LLViewerStats::getInstance()->mSimSimAIStepMsec.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_SKIPPEDAISILSTEPS_PS:
- // LLViewerStats::getInstance()->mSimSimSkippedSilhouetteSteps.addValue(stat_value);
- // break;
- //case LL_SIM_STAT_PCTSTEPPEDCHARACTERS:
- // LLViewerStats::getInstance()->mSimSimPctSteppedCharacters.addValue(stat_value);
- // break;
- //default:
- // // Used to be a commented out warning.
- // LL_DEBUGS("Messaging") << "Unknown stat id" << stat_id << LL_ENDL;
- // break;
- //}
}
/*
@@ -5968,7 +5834,6 @@ void process_alert_core(const std::string& message, BOOL modal)
if ( message == "You died and have been teleported to your home location")
{
LLStatViewer::KILLED.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_KILLED_COUNT);
}
else if( message == "Home position set." )
{
@@ -7395,8 +7260,6 @@ void onCovenantLoadComplete(LLVFS *vfs,
}
else
{
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
-
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ||
LL_ERR_FILE_EMPTY == status)
{
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 747dfd3250..ca404858cf 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2034,7 +2034,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if ( asAvatar() && asAvatar()->isSelf() && (mag_sqr > 0.25f) )
{
LLStatViewer::AGENT_POSITION_SNAP.sample<LLTrace::Meters>(diff.length());
- //LLViewerStats::getInstance()->mAgentPositionSnaps.push( diff.length() );
}
}
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 2f171f89d7..14a2ac3384 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -1033,10 +1033,6 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
LLStatViewer::NUM_ACTIVE_OBJECTS.sample(idle_count);
LLStatViewer::NUM_SIZE_CULLED.sample(mNumSizeCulled);
LLStatViewer::NUM_VIS_CULLED.sample(mNumVisCulled);
- //LLViewerStats::getInstance()->mNumObjectsStat.addValue((S32) mObjects.size());
- //LLViewerStats::getInstance()->mNumActiveObjectsStat.addValue(idle_count);
- //LLViewerStats::getInstance()->mNumSizeCulledStat.addValue(mNumSizeCulled);
- //LLViewerStats::getInstance()->mNumVisCulledStat.addValue(mNumVisCulled);
}
void LLViewerObjectList::fetchObjectCosts()
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index ccc0c9ba59..963d2ebb81 100755
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -206,72 +206,53 @@ void LLViewerStats::resetStats()
void LLViewerStats::updateFrameStats(const F64 time_diff)
{
+ LLTrace::Seconds time_diff_seconds(time_diff);
if (getRecording().getLastValue(LLStatViewer::PACKETS_LOST_PERCENT) > 5.0)
{
- LLStatViewer::LOSS_5_PERCENT_TIME.add(time_diff);
- //incStat(ST_LOSS_05_SECONDS, time_diff);
+ LLStatViewer::LOSS_5_PERCENT_TIME.add(time_diff_seconds);
}
F32 sim_fps = getRecording().getLastValue(LLStatViewer::SIM_FPS);
if (0.f < sim_fps && sim_fps < 20.f)
{
- LLStatViewer::SIM_20_FPS_TIME.add(time_diff);
- //incStat(ST_SIM_FPS_20_SECONDS, time_diff);
+ LLStatViewer::SIM_20_FPS_TIME.add(time_diff_seconds);
}
F32 sim_physics_fps = getRecording().getLastValue(LLStatViewer::SIM_PHYSICS_FPS);
if (0.f < sim_physics_fps && sim_physics_fps < 20.f)
{
- LLStatViewer::SIM_PHYSICS_20_FPS_TIME.add(time_diff);
- //incStat(ST_PHYS_FPS_20_SECONDS, time_diff);
+ LLStatViewer::SIM_PHYSICS_20_FPS_TIME.add(time_diff_seconds);
}
if (time_diff >= 0.5)
{
- LLStatViewer::FPS_2_TIME.add(time_diff);
- //incStat(ST_FPS_2_SECONDS, time_diff);
+ LLStatViewer::FPS_2_TIME.add(time_diff_seconds);
}
if (time_diff >= 0.125)
{
- LLStatViewer::FPS_8_TIME.add(time_diff);
- //incStat(ST_FPS_8_SECONDS, time_diff);
+ LLStatViewer::FPS_8_TIME.add(time_diff_seconds);
}
if (time_diff >= 0.1)
{
- LLStatViewer::FPS_10_TIME.add(time_diff);
- //incStat(ST_FPS_10_SECONDS, time_diff);
+ LLStatViewer::FPS_10_TIME.add(time_diff_seconds);
}
if (gFrameCount && mLastTimeDiff > 0.0)
{
// new "stutter" meter
LLStatViewer::FRAMETIME_DOUBLED.add(time_diff >= 2.0 * mLastTimeDiff ? 1 : 0);
- //setStat(ST_FPS_DROP_50_RATIO,
- // (getStat(ST_FPS_DROP_50_RATIO) * (F64)(gFrameCount - 1) +
- // (time_diff >= 2.0 * mLastTimeDiff ? 1.0 : 0.0)) / gFrameCount);
-
// old stats that were never really used
- LLStatViewer::FRAMETIME_JITTER.sample(mLastTimeDiff - time_diff);
- //setStat(ST_FRAMETIME_JITTER,
- // (getStat(ST_FRAMETIME_JITTER) * (gFrameCount - 1) +
- // fabs(mLastTimeDiff - time_diff) / mLastTimeDiff) / gFrameCount);
+ LLStatViewer::FRAMETIME_JITTER.sample<LLTrace::Milliseconds>(mLastTimeDiff - time_diff);
F32 average_frametime = gRenderStartTime.getElapsedTimeF32() / (F32)gFrameCount;
- LLStatViewer::FRAMETIME_SLEW.sample(average_frametime - time_diff);
- //setStat(ST_FRAMETIME_SLEW,
- // (getStat(ST_FRAMETIME_SLEW) * (gFrameCount - 1) +
- // fabs(average_frametime - time_diff) / average_frametime) / gFrameCount);
+ LLStatViewer::FRAMETIME_SLEW.sample<LLTrace::Milliseconds>(average_frametime - time_diff);
F32 max_bandwidth = gViewerThrottle.getMaxBandwidth();
F32 delta_bandwidth = gViewerThrottle.getCurrentBandwidth() - max_bandwidth;
LLStatViewer::DELTA_BANDWIDTH.sample<LLTrace::Bits>(delta_bandwidth);
- //setStat(ST_DELTA_BANDWIDTH, delta_bandwidth / 1024.f);
-
LLStatViewer::MAX_BANDWIDTH.sample<LLTrace::Bits>(max_bandwidth);
- //setStat(ST_MAX_BANDWIDTH, max_bandwidth / 1024.f);
-
}
mLastTimeDiff = time_diff;
@@ -299,10 +280,13 @@ F32 gAveLandCompression = 0.f, gAveWaterCompression = 0.f;
F32 gBestLandCompression = 1.f, gBestWaterCompression = 1.f;
F32 gWorstLandCompression = 0.f, gWorstWaterCompression = 0.f;
-U32 gTotalWorldBytes = 0, gTotalObjectBytes = 0, gTotalTextureBytes = 0, gSimPingCount = 0;
-U32 gObjectBits = 0;
+LLUnit::Bytes<U32> gTotalWorldData = 0,
+ gTotalObjectData = 0,
+ gTotalTextureData = 0;
+U32 gSimPingCount = 0;
+LLUnit::Bits<U32> gObjectData = 0;
F32 gAvgSimPing = 0.f;
-U32 gTotalTextureBytesPerBoostLevel[LLViewerTexture::MAX_GL_IMAGE_CATEGORY] = {0};
+LLUnit::Bytes<U32> gTotalTextureBytesPerBoostLevel[LLViewerTexture::MAX_GL_IMAGE_CATEGORY] = {0};
extern U32 gVisCompared;
extern U32 gVisTested;
@@ -311,8 +295,8 @@ LLFrameTimer gTextureTimer;
void update_statistics()
{
- gTotalWorldBytes += gVLManager.getTotalBytes();
- gTotalObjectBytes += gObjectBits / 8;
+ gTotalWorldData += gVLManager.getTotalBytes();
+ gTotalObjectData += gObjectData;
// make sure we have a valid time delta for this frame
if (gFrameIntervalSeconds > 0.f)
@@ -320,68 +304,48 @@ void update_statistics()
if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK)
{
LLStatViewer::MOUSELOOK_TIME.add(gFrameIntervalSeconds);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_MOUSELOOK_SECONDS, gFrameIntervalSeconds);
}
else if (gAgentCamera.getCameraMode() == CAMERA_MODE_CUSTOMIZE_AVATAR)
{
LLStatViewer::AVATAR_EDIT_TIME.add(gFrameIntervalSeconds);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_AVATAR_EDIT_SECONDS, gFrameIntervalSeconds);
}
else if (LLFloaterReg::instanceVisible("build"))
{
LLStatViewer::TOOLBOX_TIME.add(gFrameIntervalSeconds);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TOOLBOX_SECONDS, gFrameIntervalSeconds);
}
}
LLStatViewer::ENABLE_VBO.sample((F64)gSavedSettings.getBOOL("RenderVBOEnable"));
- //stats.setStat(LLViewerStats::ST_ENABLE_VBO, (F64)gSavedSettings.getBOOL("RenderVBOEnable"));
LLStatViewer::LIGHTING_DETAIL.sample((F64)gPipeline.getLightingDetail());
- //stats.setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gPipeline.getLightingDetail());
LLStatViewer::DRAW_DISTANCE.sample((F64)gSavedSettings.getF32("RenderFarClip"));
- //stats.setStat(LLViewerStats::ST_DRAW_DIST, (F64)gSavedSettings.getF32("RenderFarClip"));
LLStatViewer::CHAT_BUBBLES.sample((F64)gSavedSettings.getBOOL("UseChatBubbles"));
- //stats.setStat(LLViewerStats::ST_CHAT_BUBBLES, (F64)gSavedSettings.getBOOL("UseChatBubbles"));
- LLStatViewer::FRAME_STACKTIME.sample(gDebugView->mFastTimerView->getTime("Frame"));
- //stats.setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime("Frame"));
+ LLStatViewer::FRAME_STACKTIME.sample<LLTrace::Seconds>(gDebugView->mFastTimerView->getTime("Frame"));
F64 idle_secs = gDebugView->mFastTimerView->getTime("Idle");
F64 network_secs = gDebugView->mFastTimerView->getTime("Network");
- LLStatViewer::UPDATE_STACKTIME.sample(idle_secs - network_secs);
- //stats.setStat(LLViewerStats::ST_UPDATE_SECS, idle_secs - network_secs);
- LLStatViewer::NETWORK_STACKTIME.sample(network_secs);
- //stats.setStat(LLViewerStats::ST_NETWORK_SECS, network_secs);
- LLStatViewer::IMAGE_STACKTIME.sample(gDebugView->mFastTimerView->getTime("Update Images"));
- //stats.setStat(LLViewerStats::ST_IMAGE_SECS, gDebugView->mFastTimerView->getTime("Update Images"));
- LLStatViewer::REBUILD_STACKTIME.sample(gDebugView->mFastTimerView->getTime("Sort Draw State"));
- //stats.setStat(LLViewerStats::ST_REBUILD_SECS, gDebugView->mFastTimerView->getTime("Sort Draw State"));
- LLStatViewer::RENDER_STACKTIME.sample(gDebugView->mFastTimerView->getTime("Geometry"));
- //stats.setStat(LLViewerStats::ST_RENDER_SECS, gDebugView->mFastTimerView->getTime("Geometry"));
+ LLStatViewer::UPDATE_STACKTIME.sample<LLTrace::Seconds>(idle_secs - network_secs);
+ LLStatViewer::NETWORK_STACKTIME.sample<LLTrace::Seconds>(network_secs);
+ LLStatViewer::IMAGE_STACKTIME.sample<LLTrace::Seconds>(gDebugView->mFastTimerView->getTime("Update Images"));
+ LLStatViewer::REBUILD_STACKTIME.sample<LLTrace::Seconds>(gDebugView->mFastTimerView->getTime("Sort Draw State"));
+ LLStatViewer::RENDER_STACKTIME.sample<LLTrace::Seconds>(gDebugView->mFastTimerView->getTime("Geometry"));
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(gAgent.getRegion()->getHost());
if (cdp)
{
LLStatViewer::SIM_PING.sample<LLTrace::Seconds>(cdp->getPingDelay());
- //stats.mSimPingStat.addValue(cdp->getPingDelay());
gAvgSimPing = ((gAvgSimPing * (F32)gSimPingCount) + (F32)(cdp->getPingDelay())) / ((F32)gSimPingCount + 1);
gSimPingCount++;
}
else
{
LLStatViewer::SIM_PING.sample<LLTrace::Seconds>(10000);
- //stats.mSimPingStat.addValue(10000);
}
- //stats.mFPSStat.addValue(1);
LLStatViewer::FPS.add(1);
F32 layer_bits = (F32)(gVLManager.getLandBits() + gVLManager.getWindBits() + gVLManager.getCloudBits());
LLStatViewer::LAYERS_KBIT.add<LLTrace::Bits>(layer_bits);
- //stats.mLayersKBitStat.addValue(layer_bits/1024.f);
- LLStatViewer::OBJECT_KBIT.add<LLTrace::Bits>(gObjectBits);
- //stats.mObjectKBitStat.addValue(gObjectBits/1024.f);
- //stats.mVFSPendingOperations.addValue(LLVFile::getVFSThread()->getPending());
+ LLStatViewer::OBJECT_KBIT.add(gObjectData);
LLStatViewer::PENDING_VFS_OPERATIONS.sample(LLVFile::getVFSThread()->getPending());
LLStatViewer::ASSET_KBIT.add<LLTrace::Bits>(gTransferManager.getTransferBitsIn(LLTCT_ASSET));
- //stats.mAssetKBitStat.addValue(gTransferManager.getTransferBitsIn(LLTCT_ASSET)/1024.f);
gTransferManager.resetTransferBitsIn(LLTCT_ASSET);
if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)
@@ -403,14 +367,13 @@ void update_statistics()
avg_visible_avatars = (avg_visible_avatars * (F32)(visible_avatar_frames - 1.f) + visible_avatars) / visible_avatar_frames;
}
LLStatViewer::VISIBLE_AVATARS.sample((F64)avg_visible_avatars);
- //stats.setStat(LLViewerStats::ST_VISIBLE_AVATARS, (F64)avg_visible_avatars);
}
LLWorld::getInstance()->updateNetStats();
LLWorld::getInstance()->requestCacheMisses();
// Reset all of these values.
gVLManager.resetBitCounts();
- gObjectBits = 0;
+ gObjectData = 0;
// gDecodedBits = 0;
// Only update texture stats periodically so that they are less noisy
@@ -419,7 +382,7 @@ void update_statistics()
static LLFrameTimer texture_stats_timer;
if (texture_stats_timer.getElapsedTimeF32() >= texture_stats_freq)
{
- gTotalTextureBytes = LLTrace::Bytes(LLViewerStats::instance().getRecording().getSum(LLStatViewer::TEXTURE_KBIT)).value();
+ gTotalTextureData = LLTrace::Bytes(LLViewerStats::instance().getRecording().getSum(LLStatViewer::TEXTURE_KBIT)).value();
texture_stats_timer.reset();
}
}
@@ -559,9 +522,9 @@ void send_stats()
LLSD &download = body["downloads"];
- download["world_kbytes"] = gTotalWorldBytes / 1024.0;
- download["object_kbytes"] = gTotalObjectBytes / 1024.0;
- download["texture_kbytes"] = gTotalTextureBytes / 1024.0;
+ download["world_kbytes"] = LLTrace::Kilobytes(gTotalWorldData).value();
+ download["object_kbytes"] = LLTrace::Kilobytes(gTotalObjectData).value();
+ download["texture_kbytes"] = LLTrace::Kilobytes(gTotalTextureData).value();
download["mesh_kbytes"] = LLMeshRepository::sBytesReceived/1024.0;
LLSD &in = body["stats"]["net"]["in"];
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h
index b182a40403..06f65b2cdd 100755
--- a/indra/newview/llviewerstats.h
+++ b/indra/newview/llviewerstats.h
@@ -57,7 +57,7 @@ struct SimMeasurement : public LLTrace::Measurement<T>, public SimMeasurementSam
/*virtual*/ void sample(F64 value)
{
- LLTrace::Measurement<T>::sample(value);
+ LLTrace::Measurement<T>::sample(T(value));
}
};
@@ -318,7 +318,7 @@ void update_statistics();
void send_stats();
extern LLFrameTimer gTextureTimer;
-extern U32 gTotalTextureBytes;
-extern U32 gTotalObjectBytes;
-extern U32 gTotalTextureBytesPerBoostLevel[] ;
+extern LLUnit::Bytes<U32> gTotalTextureData;
+extern LLUnit::Bytes<U32> gTotalObjectData;
+extern LLUnit::Bytes<U32> gTotalTextureBytesPerBoostLevel[] ;
#endif // LL_LLVIEWERSTATS_H
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index d355432e8a..b9d5751412 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -709,7 +709,7 @@ void LLViewerTextureList::updateImagesDecodePriorities()
// Update the decode priority for N images each frame
{
static const S32 MAX_PRIO_UPDATES = gSavedSettings.getS32("TextureFetchUpdatePriorities"); // default: 32
- const size_t max_update_count = llmin((S32) (MAX_PRIO_UPDATES*MAX_PRIO_UPDATES*gFrameIntervalSeconds) + 1, MAX_PRIO_UPDATES);
+ const size_t max_update_count = llmin((S32) (MAX_PRIO_UPDATES*MAX_PRIO_UPDATES*gFrameIntervalSeconds.value()) + 1, MAX_PRIO_UPDATES);
S32 update_counter = llmin(max_update_count, mUUIDMap.size());
uuid_map_t::iterator iter = mUUIDMap.upper_bound(mLastUpdateUUID);
while ((update_counter-- > 0) && !mUUIDMap.empty())
@@ -943,11 +943,11 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time)
static const F32 MIN_PRIORITY_THRESHOLD = gSavedSettings.getF32("TextureFetchUpdatePriorityThreshold"); // default: 0.0
static const bool SKIP_LOW_PRIO = gSavedSettings.getBOOL("TextureFetchUpdateSkipLowPriority"); // default: false
- size_t max_priority_count = llmin((S32) (MAX_HIGH_PRIO_COUNT*MAX_HIGH_PRIO_COUNT*gFrameIntervalSeconds)+1, MAX_HIGH_PRIO_COUNT);
+ size_t max_priority_count = llmin((S32) (MAX_HIGH_PRIO_COUNT*MAX_HIGH_PRIO_COUNT*gFrameIntervalSeconds.value())+1, MAX_HIGH_PRIO_COUNT);
max_priority_count = llmin(max_priority_count, mImageList.size());
size_t total_update_count = mUUIDMap.size();
- size_t max_update_count = llmin((S32) (MAX_UPDATE_COUNT*MAX_UPDATE_COUNT*gFrameIntervalSeconds)+1, MAX_UPDATE_COUNT);
+ size_t max_update_count = llmin((S32) (MAX_UPDATE_COUNT*MAX_UPDATE_COUNT*gFrameIntervalSeconds.value())+1, MAX_UPDATE_COUNT);
max_update_count = llmin(max_update_count, total_update_count);
// MAX_HIGH_PRIO_COUNT high priority entries
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 2062f07650..06daf15c08 100755
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -731,7 +731,7 @@ public:
{
if(gTotalTextureBytesPerBoostLevel[i] > 0)
{
- addText(xpos, ypos, llformat("Boost_Level %d: %.3f MB", i, (F32)gTotalTextureBytesPerBoostLevel[i] / (1024 * 1024)));
+ addText(xpos, ypos, llformat("Boost_Level %d: %.3f MB", i, LLUnit::Megabytes<F32>(gTotalTextureBytesPerBoostLevel[i]).value()));
ypos += y_inc;
}
}
@@ -1405,8 +1405,8 @@ BOOL LLViewerWindow::handlePaint(LLWindow *window, S32 x, S32 y, S32 width, S
LLTrace::Recording& recording = LLViewerStats::instance().getRecording();
temp_str = llformat( "FPS %3.1f Phy FPS %2.1f Time Dil %1.3f", /* Flawfinder: ignore */
recording.getPerSec(LLStatViewer::FPS), //mFPSStat.getMeanPerSec(),
- recording.getMean(LLStatViewer::SIM_PHYSICS_FPS), //LLViewerStats::getInstance()->mSimPhysicsFPS.getPrev(0),
- recording.getMean(LLStatViewer::SIM_TIME_DILATION)); //LLViewerStats::getInstance()->mSimTimeDilation.getPrev(0));
+ recording.getLastValue(LLStatViewer::SIM_PHYSICS_FPS),
+ recording.getLastValue(LLStatViewer::SIM_TIME_DILATION));
S32 len = temp_str.length();
TextOutA(hdc, 0, 0, temp_str.c_str(), len);
@@ -2185,9 +2185,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)
}
LLStatViewer::WINDOW_WIDTH.sample((F64)width);
- //LLViewerStats::getInstance()->setStat(LLViewerStats::ST_WINDOW_WIDTH, (F64)width);
LLStatViewer::WINDOW_HEIGHT.sample((F64)height);
- //LLViewerStats::getInstance()->setStat(LLViewerStats::ST_WINDOW_HEIGHT, (F64)height);
LLLayoutStack::updateClass();
}
@@ -3237,8 +3235,8 @@ void LLViewerWindow::updateMouseDelta()
static F32 fdy = 0.f;
F32 amount = 16.f;
- fdx = fdx + ((F32) dx - fdx) * llmin(gFrameIntervalSeconds*amount,1.f);
- fdy = fdy + ((F32) dy - fdy) * llmin(gFrameIntervalSeconds*amount,1.f);
+ fdx = fdx + ((F32) dx - fdx) * llmin(gFrameIntervalSeconds.value()*amount,1.f);
+ fdy = fdy + ((F32) dy - fdy) * llmin(gFrameIntervalSeconds.value()*amount,1.f);
mCurrentMouseDelta.set(llround(fdx), llround(fdy));
mouse_vel.setVec(fdx,fdy);
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index d366455a62..97c1b07ebc 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -7813,14 +7813,14 @@ void LLVOAvatar::cullAvatarsByPixelArea()
if (gFrameTimeSeconds != sUnbakedUpdateTime) // only update once per frame
{
sUnbakedUpdateTime = gFrameTimeSeconds;
- sUnbakedTime += gFrameIntervalSeconds;
+ sUnbakedTime += gFrameIntervalSeconds.value();
}
if (grey_avatars > 0)
{
if (gFrameTimeSeconds != sGreyUpdateTime) // only update once per frame
{
sGreyUpdateTime = gFrameTimeSeconds;
- sGreyTime += gFrameIntervalSeconds;
+ sGreyTime += gFrameIntervalSeconds.value();
}
}
}
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 9f0921ff59..7c20e8eae7 100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -910,18 +910,11 @@ void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)
if (mLastRegionHandle != 0)
{
++mRegionCrossingCount;
- F64 delta = (F64)mRegionCrossingTimer.getElapsedTimeF32();
- //F64 avg = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_AVG);
- //F64 delta_avg = (delta + avg*(mRegionCrossingCount-1)) / mRegionCrossingCount;
+ LLTrace::Seconds delta = mRegionCrossingTimer.getElapsedTimeF32();
LLStatViewer::REGION_CROSSING_TIME.sample(delta);
- //LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_AVG, delta_avg);
- //
- //F64 max = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_MAX);
- //max = llmax(delta, max);
- //LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_MAX, max);
// Diagnostics
- llinfos << "Region crossing took " << (F32)(delta * 1000.0) << " ms " << llendl;
+ llinfos << "Region crossing took " << (F32)(delta * 1000.0).value() << " ms " << llendl;
}
if (regionp)
{
@@ -2589,7 +2582,6 @@ void LLVOAvatarSelf::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
gAgentAvatarp->invalidateComposite(layer_set, TRUE);
found = TRUE;
LLStatViewer::TEX_REBAKES.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
}
}
}
@@ -2635,7 +2627,6 @@ void LLVOAvatarSelf::forceBakeAllTextures(bool slam_for_debug)
invalidateComposite(layer_set, TRUE);
LLStatViewer::TEX_REBAKES.add(1);
- //LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
}
else
{
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 20033d6fe4..0eb00f7191 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -136,7 +136,6 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
{
LLFile::remove(std::string(filename));
}
- //LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED );
LL_WARNS("Wearable") << "Wearable download failed: " << LLAssetStorage::getErrorString( status ) << " " << uuid << LL_ENDL;
switch( status )
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 4582de805f..75af605ad7 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4892,7 +4892,7 @@ void LLPipeline::renderDebug()
{
DebugBlip& blip = *iter;
- blip.mAge += gFrameIntervalSeconds;
+ blip.mAge += gFrameIntervalSeconds.value();
if (blip.mAge > 2.f)
{
mDebugBlips.erase(iter++);
@@ -4902,7 +4902,7 @@ void LLPipeline::renderDebug()
iter++;
}
- blip.mPosition.mV[2] += gFrameIntervalSeconds*2.f;
+ blip.mPosition.mV[2] += gFrameIntervalSeconds.value()*2.f;
gGL.color4fv(blip.mColor.mV);
gGL.vertex3fv(blip.mPosition.mV);
@@ -5713,7 +5713,7 @@ void LLPipeline::calcNearbyLights(LLCamera& camera)
{
if (farthest_light->fade >= 0.f)
{
- farthest_light->fade = -gFrameIntervalSeconds;
+ farthest_light->fade = -(gFrameIntervalSeconds.value());
}
}
else
@@ -5809,12 +5809,12 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
if (fade >= 0.f)
{
fade = fade / LIGHT_FADE_TIME;
- ((Light*) (&(*iter)))->fade += gFrameIntervalSeconds;
+ ((Light*) (&(*iter)))->fade += gFrameIntervalSeconds.value();
}
else
{
fade = 1.f + fade / LIGHT_FADE_TIME;
- ((Light*) (&(*iter)))->fade -= gFrameIntervalSeconds;
+ ((Light*) (&(*iter)))->fade -= gFrameIntervalSeconds.value();
}
fade = llclamp(fade,0.f,1.f);
light_color *= fade;
@@ -7129,7 +7129,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
}
else if (transition_time < 1.f)
{ //currently in a transition, continue interpolating
- transition_time += 1.f/CameraFocusTransitionTime*gFrameIntervalSeconds;
+ transition_time += 1.f/CameraFocusTransitionTime*gFrameIntervalSeconds.value();
transition_time = llmin(transition_time, 1.f);
F32 t = cosf(transition_time*F_PI+F_PI)*0.5f+0.5f;
@@ -9121,7 +9121,7 @@ void LLPipeline::generateHighlight(LLCamera& camera)
if (!mHighlightSet.empty())
{
- F32 transition = gFrameIntervalSeconds/RenderHighlightFadeTime;
+ F32 transition = gFrameIntervalSeconds.value()/RenderHighlightFadeTime;
LLGLDisable test(GL_ALPHA_TEST);
LLGLDepthTest depth(GL_FALSE);
@@ -9756,7 +9756,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
if (gen_shadow)
{
- F32 fade_amt = gFrameIntervalSeconds * llmax(LLViewerCamera::getInstance()->getVelocityStat()->getCurrentPerSec(), 1.f);
+ F32 fade_amt = gFrameIntervalSeconds.value() * llmax(LLViewerCamera::getInstance()->getVelocityStat()->getCurrentPerSec(), 1.f);
//update shadow targets
for (U32 i = 0; i < 2; i++)
diff --git a/indra/newview/tests/llviewerassetstats_test.cpp b/indra/newview/tests/llviewerassetstats_test.cpp
index f8923b9868..4a190fbe23 100755
--- a/indra/newview/tests/llviewerassetstats_test.cpp
+++ b/indra/newview/tests/llviewerassetstats_test.cpp
@@ -220,7 +220,18 @@ get_region(const LLSD & sd, U64 region_handle1)
namespace tut
{
struct tst_viewerassetstats_index
- {};
+ {
+ tst_viewerassetstats_index()
+ {
+ LLTrace::init();
+ }
+
+ ~tst_viewerassetstats_index()
+ {
+ LLTrace::cleanup();
+ }
+
+ };
typedef test_group<tst_viewerassetstats_index> tst_viewerassetstats_index_t;
typedef tst_viewerassetstats_index_t::object tst_viewerassetstats_index_object_t;
tut::tst_viewerassetstats_index_t tut_tst_viewerassetstats_index("tst_viewerassetstats_test");