From 4ba11db750b00f0af7ebbb456adc36e84925c2cc Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 26 Jun 2020 16:47:08 +0000 Subject: SL-13443 Reduced viewer stalls after teleport Eliminates stall from saveObjectCache() on region deletion --- indra/newview/llworld.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'indra/newview/llworld.cpp') 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); -- cgit v1.2.3 From 8edcb5bf89de420ffd42a24cb1fb22c86e1c7571 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 30 Jun 2020 14:30:48 +0300 Subject: SL-13443 cleanup --- indra/newview/llworld.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/newview/llworld.cpp') diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index c5dd274c33..a1a1db35d6 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -1222,7 +1222,9 @@ static LLTrace::BlockTimerStatHandle FTM_DISABLE_REGION("Disable Region"); // Called in response to "DisableSimulator" message. void process_disable_simulator(LLMessageSystem *mesgsys, void **user_data) { - LL_RECORD_BLOCK_TIME(FTM_DISABLE_REGION); 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); -- cgit v1.2.3