summaryrefslogtreecommitdiff
path: root/indra/newview/llworld.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-06-26 16:47:08 +0000
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-06-26 16:47:08 +0000
commit604502b5448650cff3c1885c06b28dbd56df6817 (patch)
treef66525b5d40444125fb7db7118a1bc26f6ab9db2 /indra/newview/llworld.cpp
parentb00b733e3cbdd07e39f42765db220a5ec74d0705 (diff)
SL-13443 Reduced viewer stalls after teleport
Eliminates stall from saveObjectCache() on region deletion
Diffstat (limited to 'indra/newview/llworld.cpp')
-rw-r--r--indra/newview/llworld.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index 8989bae96a..c5dd274c33 100644
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -730,11 +730,20 @@ void LLWorld::updateRegions(F32 max_update_time)
{
//perform some necessary but very light updates.
(*iter)->lightIdleUpdate();
- }
+ }
+ }
+
+ if(max_time > 0.f)
+ {
+ max_time = llmin((F32)(max_update_time - update_timer.getElapsedTimeF32()), max_update_time * 0.25f);
+ }
+ if(max_time > 0.f)
+ {
+ LLViewerRegion::idleCleanup(max_time);
}
sample(sNumActiveCachedObjects, mNumOfActiveCachedObjects);
- }
+}
void LLWorld::clearAllVisibleObjects()
{
@@ -1208,11 +1217,12 @@ public:
}
};
+static LLTrace::BlockTimerStatHandle FTM_DISABLE_REGION("Disable Region");
// disable the circuit to this simulator
// Called in response to "DisableSimulator" message.
void process_disable_simulator(LLMessageSystem *mesgsys, void **user_data)
-{
- LLHost host = mesgsys->getSender();
+{
+ LL_RECORD_BLOCK_TIME(FTM_DISABLE_REGION); LLHost host = mesgsys->getSender();
//LL_INFOS() << "Disabling simulator with message from " << host << LL_ENDL;
LLWorld::getInstance()->removeRegion(host);