summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-10-31 15:10:10 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-10-31 15:10:10 -0600
commitccb921b287b14129918c07072f57078c69ca7e65 (patch)
tree9f9e439d11b8de3c9e62d2793975a7f41359fa38
parent960765e8c7d49a48e66f2e55e980c60645d9ca37 (diff)
more fix for performance regression.
-rwxr-xr-xindra/newview/llviewerregion.cpp4
-rwxr-xr-xindra/newview/llvocache.cpp6
-rwxr-xr-xindra/newview/pipeline.cpp4
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();
- }
+ }*/
}
}
}