diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llcommon/lltrace.h | 8 | ||||
-rw-r--r-- | indra/llcommon/lltracerecording.h | 2 | ||||
-rwxr-xr-x | indra/llui/llstatbar.cpp | 46 | ||||
-rw-r--r-- | indra/newview/llvieweroctree.cpp | 4 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/floater_stats.xml | 11 |
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" |