summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorRichard Linden <none@none>2013-07-24 19:36:43 -0700
committerRichard Linden <none@none>2013-07-24 19:36:43 -0700
commit1e8f9fd80d0ac4e0eab656ed8e8e32f91ab8b533 (patch)
tree5895140d21f9c79f13dfbb4b06fe1134af0143ca /indra/llui
parent3585394fc64a1c3fbac552944dad08129097b285 (diff)
SH-4376 FIX: Interesting: in Statistics, replace the text "0" with "n/a" when
there are no samples during the time period. added hasValue to SampleAccumulator so we don't print a value when we don't have a single sample yet added some disabled log output for scene load timing
Diffstat (limited to 'indra/llui')
-rwxr-xr-xindra/llui/llnotifications.h5
-rwxr-xr-xindra/llui/llstatbar.cpp21
2 files changed, 14 insertions, 12 deletions
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index 2948f88755..f9089b8cc9 100755
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -1056,15 +1056,13 @@ class LLPersistentNotificationChannel : public LLNotificationChannel
public:
LLPersistentNotificationChannel()
: LLNotificationChannel("Persistent", "Visible", &notificationFilter)
- {
- }
+ {}
typedef std::vector<LLNotificationPtr> history_list_t;
history_list_t::iterator beginHistory() { sortHistory(); return mHistory.begin(); }
history_list_t::iterator endHistory() { return mHistory.end(); }
private:
-
struct sortByTime
{
S32 operator ()(const LLNotificationPtr& a, const LLNotificationPtr& b)
@@ -1078,7 +1076,6 @@ private:
std::sort(mHistory.begin(), mHistory.end(), sortByTime());
}
-
// The channel gets all persistent notifications except those that have been canceled
static bool notificationFilter(LLNotificationPtr pNotification)
{
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index d9f4a36f8d..2543bd8f0a 100755
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -226,8 +226,7 @@ void LLStatBar::draw()
max = 0,
mean = 0;
-
- S32 num_samples = 0;
+ bool show_data = false;
LLLocalClipRect _(getLocalRect());
LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();
@@ -240,7 +239,6 @@ void LLStatBar::draw()
if (mPerSec)
{
unit_label += "/s";
- num_samples = frame_recording.getSampleCount(*mCountFloatp, mNumFrames);
current = last_frame_recording.getPerSec(*mCountFloatp);
min = frame_recording.getPeriodMinPerSec(*mCountFloatp, mNumFrames);
max = frame_recording.getPeriodMaxPerSec(*mCountFloatp, mNumFrames);
@@ -248,34 +246,41 @@ void LLStatBar::draw()
}
else
{
- num_samples = frame_recording.getSampleCount(*mCountFloatp, mNumFrames);
current = last_frame_recording.getSum(*mCountFloatp);
min = frame_recording.getPeriodMin(*mCountFloatp, mNumFrames);
max = frame_recording.getPeriodMax(*mCountFloatp, mNumFrames);
mean = frame_recording.getPeriodMean(*mCountFloatp, mNumFrames);
}
+
+ // always show count-style data
+ show_data = true;
}
else if (mEventFloatp)
{
LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();
unit_label = mUnitLabel.empty() ? mEventFloatp->getUnitLabel() : mUnitLabel;
- num_samples = frame_recording.getSampleCount(*mEventFloatp, mNumFrames);
+ // only show data if there is an event in the relevant time period
current = last_frame_recording.getMean(*mEventFloatp);
min = frame_recording.getPeriodMin(*mEventFloatp, mNumFrames);
max = frame_recording.getPeriodMax(*mEventFloatp, mNumFrames);
mean = frame_recording.getPeriodMean(*mEventFloatp, mNumFrames);
+
+ show_data = frame_recording.getSampleCount(*mEventFloatp, mNumFrames) != 0;
}
else if (mSampleFloatp)
{
+
LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();
unit_label = mUnitLabel.empty() ? mSampleFloatp->getUnitLabel() : mUnitLabel;
- num_samples = frame_recording.getSampleCount(*mSampleFloatp, mNumFrames);
current = last_frame_recording.getMean(*mSampleFloatp);
min = frame_recording.getPeriodMin(*mSampleFloatp, mNumFrames);
max = frame_recording.getPeriodMax(*mSampleFloatp, mNumFrames);
mean = frame_recording.getPeriodMean(*mSampleFloatp, mNumFrames);
+
+ // always show sample data if we've ever grabbed any samples
+ show_data = mSampleFloatp->getPrimaryAccumulator()->hasValue();
}
S32 bar_top, bar_left, bar_right, bar_bottom;
@@ -337,7 +342,7 @@ void LLStatBar::draw()
{
decimal_digits = 0;
}
- std::string value_str = num_samples
+ std::string value_str = show_data
? llformat("%10.*f %s", decimal_digits, mean, unit_label.c_str())
: "n/a";
@@ -454,7 +459,7 @@ void LLStatBar::draw()
gl_rect_2d(begin, bar_top, end, bar_bottom, LLColor4(1.f, 0.f, 0.f, 0.25f));
}
- if (num_samples)
+ if (show_data)
{
F32 span = (mOrientation == HORIZONTAL)
? (bar_right - bar_left)