diff options
| -rw-r--r-- | indra/newview/llappviewer.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 14 | 
3 files changed, 28 insertions, 3 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 00624ebc6a..52bea875d9 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -4785,6 +4785,20 @@ void LLAppViewer::idle()      if (gTeleportDisplay)      { +        if (gAgent.getTeleportState() == LLAgent::TELEPORT_ARRIVING) +        { +            // Teleported, but waiting for things to load, start processing surface data +            { +                LL_RECORD_BLOCK_TIME(FTM_NETWORK); +                gVLManager.unpackData(); +            } +            { +                LL_RECORD_BLOCK_TIME(FTM_REGION_UPDATE); +                const F32 max_region_update_time = .001f; // 1ms +                LLWorld::getInstance()->updateRegions(max_region_update_time); +            } +        } +          return;      } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 1d4828fd33..0c702b24c1 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3147,7 +3147,8 @@ void send_agent_update(bool force_send, bool send_reliable)      LL_PROFILE_ZONE_SCOPED;      llassert(!gCubeSnapshot); -    if (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE) +    if (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE +        && gAgent.getTeleportState() != LLAgent::TELEPORT_ARRIVING)      {          // We don't care if they want to send an agent update, they're not allowed          // until the target simulator is ready to receive them diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 0b79c2d8e0..868dde05db 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -30,6 +30,7 @@  #include "llviewertexturelist.h" +#include "llagent.h"  #include "llgl.h" // fot gathering stats from GL  #include "llimagegl.h"  #include "llimagebmp.h" @@ -815,10 +816,19 @@ void LLViewerTextureList::updateImages(F32 max_time)              clearFetchingRequests();              gPipeline.clearRebuildGroups();              cleared = true; +            return;          } -        return; +        // ARRIVING is a delay to let things decode, cache and process, +        // so process textures like normal despite gTeleportDisplay +        if (gAgent.getTeleportState() != LLAgent::TELEPORT_ARRIVING) +        { +            return; +        } +    } +    else +    { +        cleared = false;      } -    cleared = false;      LLAppViewer::getTextureFetch()->setTextureBandwidth((F32)LLTrace::get_frame_recording().getPeriodMeanPerSec(LLStatViewer::TEXTURE_NETWORK_DATA_RECEIVED).value()); | 
