From ccb921b287b14129918c07072f57078c69ca7e65 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Thu, 31 Oct 2013 15:10:10 -0600 Subject: more fix for performance regression. --- indra/newview/llviewerregion.cpp | 4 ++++ indra/newview/llvocache.cpp | 6 +++++- indra/newview/pipeline.cpp | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index a4b7efc56a..b3837a41fe 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1299,6 +1299,9 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time) mPaused = FALSE; //unpause. } + LLViewerCamera::eCameraID old_camera_id = LLViewerCamera::sCurCameraID; + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; + //reset all occluders mImpl->mVOCachePartition->resetOccluders(); @@ -1313,6 +1316,7 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time) mImpl->mWaitingList.clear(); mImpl->mVisibleGroups.clear(); + LLViewerCamera::sCurCameraID = old_camera_id; return did_update; } diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp index 70b65f14be..be7ff00c05 100755 --- a/indra/newview/llvocache.cpp +++ b/indra/newview/llvocache.cpp @@ -840,6 +840,10 @@ void LLVOCachePartition::processOccluders(LLCamera* camera) { return; } + if(LLViewerCamera::sCurCameraID != LLViewerCamera::CAMERA_WORLD) + { + return; //no need for those cameras. + } LLVector3 region_agent = mRegionp->getOriginAgent(); LLVector4a shift(region_agent[0], region_agent[1], region_agent[2]); @@ -864,7 +868,7 @@ void LLVOCachePartition::resetOccluders() for(std::set::iterator iter = mOccludedGroups.begin(); iter != mOccludedGroups.end(); ++iter) { LLVOCacheGroup* group = *iter; - group->clearOcclusionState(LLOcclusionCullingGroup::ACTIVE_OCCLUSION, LLOcclusionCullingGroup::STATE_MODE_ALL_CAMERAS); + group->clearOcclusionState(LLOcclusionCullingGroup::ACTIVE_OCCLUSION); } mOccludedGroups.clear(); sNeedsOcclusionCheck = FALSE; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 2cf59d212b..c5148690a5 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2155,11 +2155,11 @@ void LLPipeline::updateMove() } //balance the VO Cache tree - LLVOCachePartition* vo_part = region->getVOCachePartition(); + /*LLVOCachePartition* vo_part = region->getVOCachePartition(); if(vo_part) { vo_part->mOctree->balance(); - } + }*/ } } } -- cgit v1.2.3