summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/lltrace.h8
-rw-r--r--indra/llcommon/lltracerecording.h2
-rwxr-xr-xindra/llui/llstatbar.cpp46
-rw-r--r--indra/newview/llvieweroctree.cpp4
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_stats.xml11
5 files changed, 43 insertions, 28 deletions
diff --git a/indra/llcommon/lltrace.h b/indra/llcommon/lltrace.h
index 49ee252014..bf1119d694 100644
--- a/indra/llcommon/lltrace.h
+++ b/indra/llcommon/lltrace.h
@@ -512,14 +512,14 @@ public:
return value;
}
- const size_t& memClaim(const size_t& size)
+ size_t& memClaim(size_t& size)
{
claim_mem(sMemStat, size);
mMemFootprint += size;
return size;
}
- size_t& memClaim(size_t& size)
+ int& memClaim(int& size)
{
claim_mem(sMemStat, size);
mMemFootprint += size;
@@ -541,14 +541,14 @@ public:
return value;
}
- const size_t& memDisclaim(const size_t& size)
+ size_t& memDisclaim(size_t& size)
{
disclaim_mem(sMemStat, size);
mMemFootprint -= size;
return size;
}
- size_t& memDisclaim(size_t& size)
+ int& memDisclaim(int& size)
{
disclaim_mem(sMemStat, size);
mMemFootprint -= size;
diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h
index edda0f3a8c..2f5cefa8eb 100644
--- a/indra/llcommon/lltracerecording.h
+++ b/indra/llcommon/lltracerecording.h
@@ -124,6 +124,8 @@ namespace LLTrace
template<typename T>
class EventStatHandle;
+ class MemStatHandle;
+
template<typename T>
struct RelatedTypes
{
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index a6f7dd0ea4..222db70d2b 100755
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -482,13 +482,14 @@ void LLStatBar::draw()
if (mDisplayHistory && mStat.valid)
{
const S32 num_values = frame_recording.getNumRecordedPeriods() - 1;
- F32 value = 0;
- S32 i;
- gGL.color4f( 1.f, 0.f, 0.f, 1.f );
+ F32 min_value = 0.f,
+ max_value = 0.f;
+
+ gGL.color4f(1.f, 0.f, 0.f, 1.f);
gGL.begin( LLRender::QUADS );
const S32 max_frame = llmin(num_frames, num_values);
U32 num_samples = 0;
- for (i = 1; i <= max_frame; i++)
+ for (S32 i = 1; i <= max_frame; i++)
{
F32 offset = ((F32)i / (F32)num_frames) * span;
LLTrace::Recording& recording = frame_recording.getPrevRecording(i);
@@ -496,19 +497,23 @@ void LLStatBar::draw()
switch(mStatType)
{
case STAT_COUNT:
- value = recording.getPerSec(*mStat.countStatp);
- num_samples = recording.getSampleCount(*mStat.countStatp);
+ min_value = recording.getPerSec(*mStat.countStatp);
+ max_value = min_value;
+ num_samples = recording.getSampleCount(*mStat.countStatp);
break;
case STAT_EVENT:
- value = recording.getMean(*mStat.eventStatp);
- num_samples = recording.getSampleCount(*mStat.eventStatp);
+ min_value = recording.getMin(*mStat.eventStatp);
+ max_value = recording.getMax(*mStat.eventStatp);
+ num_samples = recording.getSampleCount(*mStat.eventStatp);
break;
case STAT_SAMPLE:
- value = recording.getMean(*mStat.sampleStatp);
- num_samples = recording.getSampleCount(*mStat.sampleStatp);
+ min_value = recording.getMin(*mStat.sampleStatp);
+ max_value = recording.getMax(*mStat.sampleStatp);
+ num_samples = recording.getSampleCount(*mStat.sampleStatp);
break;
case STAT_MEM:
- value = recording.getMean(*mStat.memStatp).value();
+ min_value = recording.getMin(*mStat.memStatp).value();
+ max_value = recording.getMax(*mStat.memStatp).value();
num_samples = 1;
break;
default:
@@ -517,20 +522,21 @@ void LLStatBar::draw()
if (!num_samples) continue;
- F32 begin = (value - mCurMinBar) * value_scale;
+ F32 min = (min_value - mCurMinBar) * value_scale;
+ F32 max = llmax(min + 1, (max_value - mCurMinBar) * value_scale);
if (mOrientation == HORIZONTAL)
{
- gGL.vertex2f((F32)bar_rect.mRight - offset, begin + 1);
- gGL.vertex2f((F32)bar_rect.mRight - offset, begin);
- gGL.vertex2f((F32)bar_rect.mRight - offset - 1, begin);
- gGL.vertex2f((F32)bar_rect.mRight - offset - 1, begin + 1);
+ gGL.vertex2f((F32)bar_rect.mRight - offset, max);
+ gGL.vertex2f((F32)bar_rect.mRight - offset, min);
+ gGL.vertex2f((F32)bar_rect.mRight - offset - 1, min);
+ gGL.vertex2f((F32)bar_rect.mRight - offset - 1, max);
}
else
{
- gGL.vertex2f(begin, (F32)bar_rect.mBottom + offset + 1);
- gGL.vertex2f(begin, (F32)bar_rect.mBottom + offset);
- gGL.vertex2f(begin + 1, (F32)bar_rect.mBottom + offset);
- gGL.vertex2f(begin + 1, (F32)bar_rect.mBottom + offset + 1 );
+ gGL.vertex2f(min, (F32)bar_rect.mBottom + offset + 1);
+ gGL.vertex2f(min, (F32)bar_rect.mBottom + offset);
+ gGL.vertex2f(max, (F32)bar_rect.mBottom + offset);
+ gGL.vertex2f(max, (F32)bar_rect.mBottom + offset + 1 );
}
}
gGL.end();
diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp
index 30658c57bf..47033afea3 100644
--- a/indra/newview/llvieweroctree.cpp
+++ b/indra/newview/llvieweroctree.cpp
@@ -42,7 +42,6 @@ BOOL LLViewerOctreeDebug::sInDebug = FALSE;
static LLTrace::CountStatHandle<S32> sOcclusionQueries("occlusion_queries", "Number of occlusion queries executed"),
sNumObjectsOccluded("occluded_objects", "Count of objects being occluded by a query"),
sNumObjectsUnoccluded("unoccluded_objects", "Count of objects being unoccluded by a query");
-static LLTrace::SampleStatHandle<S32> sOcclusionQueriesInFlight("occlusion_queries_in_flight", "Number of occlusion queries waiting for results");
//-----------------------------------------------------------------------------------
//some global functions definitions
@@ -784,6 +783,7 @@ protected:
{
#if LL_TRACK_PENDING_OCCLUSION_QUERIES
LLSpatialGroup::sPendingQueries.erase(name);
+
#endif
llassert(std::find(mAvailableName.begin(), mAvailableName.end(), name) == mAvailableName.end());
mAvailableName.push_back(name);
@@ -1095,7 +1095,6 @@ void LLOcclusionCullingGroup::checkOcclusion()
#if LL_TRACK_PENDING_OCCLUSION_QUERIES
sPendingQueries.erase(mOcclusionQuery[LLViewerCamera::sCurCameraID]);
#endif
- add(sOcclusionQueriesInFlight, -1);
}
else if (mOcclusionQuery[LLViewerCamera::sCurCameraID])
{ //delete the query to avoid holding onto hundreds of pending queries
@@ -1200,7 +1199,6 @@ void LLOcclusionCullingGroup::doOcclusion(LLCamera* camera, const LLVector4a* sh
sPendingQueries.insert(mOcclusionQuery[LLViewerCamera::sCurCameraID]);
#endif
add(sOcclusionQueries, 1);
- add(sOcclusionQueriesInFlight, 1);
{
LL_RECORD_BLOCK_TIME(FTM_PUSH_OCCLUSION_VERTS);
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index 02d1bf6a0e..fa1823ed67 100755
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -75,7 +75,16 @@
label="Object Cache Hit Rate"
stat="object_cache_hits"
show_history="true"/>
- </stat_view>
+ <stat_bar name="occlusion_queries"
+ label="Occlusion Queries Performed"
+ stat="occlusion_queries"/>
+ <stat_bar name="occluded"
+ label="Objects Occluded"
+ stat="occluded_objects"/>
+ <stat_bar name="unoccluded"
+ label="Object Unoccluded"
+ stat="unoccluded_objects"/>
+ </stat_view>
<stat_view name="texture"
label="Texture"
follows="left|top|right"