diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-10-31 15:10:10 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-10-31 15:10:10 -0600 |
commit | ccb921b287b14129918c07072f57078c69ca7e65 (patch) | |
tree | 9f9e439d11b8de3c9e62d2793975a7f41359fa38 | |
parent | 960765e8c7d49a48e66f2e55e980c60645d9ca37 (diff) |
more fix for performance regression.
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 4 | ||||
-rwxr-xr-x | indra/newview/llvocache.cpp | 6 | ||||
-rwxr-xr-x | 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<LLVOCacheGroup*>::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(); - } + }*/ } } } |