summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2026-06-24 07:04:09 +0800
committerErik Kundiman <erik@megapahit.org>2026-06-24 07:04:09 +0800
commit2dbf2851fa81137b5553744f7e2b23b4f254cec9 (patch)
tree3c1ff273c3ffd81a455bed3cb6eccb338b62f676 /indra/newview
parenta5f7a2ba98a40f225ae4fb53d5fcf4423eb21e48 (diff)
parent550ed6ded17531aff5cc922ec60763bb508dcc0c (diff)
Merge tag 'Second_Life_Release#550ed6de-26.3' into 26.3
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lllogininstance.cpp1
-rw-r--r--indra/newview/llstartup.cpp4
-rw-r--r--indra/newview/llvieweroctree.cpp2
-rw-r--r--indra/newview/llvoavatar.cpp10
4 files changed, 16 insertions, 1 deletions
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 0358233637..02f013ad3c 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -134,6 +134,7 @@ void LLLoginInstance::reconnect()
{
// Sort of like connect, only using the pre-existing
// request params.
+ mAttemptComplete = false;
std::vector<std::string> uris;
LLGridManager::getInstance()->getLoginURIs(uris);
mLoginModule->connect(uris.front(), mRequestData);
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 198113cfb1..494a1b3378 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1381,6 +1381,10 @@ bool idle_startup()
{
set_startup_status(0.30f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD);
do_startup_frame();
+
+ // close login UI before world UI is initialized, if it is still visible
+ LLPanelLogin::closePanel();
+
// We should have an agent id by this point.
llassert(!(gAgentID == LLUUID::null));
diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp
index a1c2e0f9ff..a43e4b99f9 100644
--- a/indra/newview/llvieweroctree.cpp
+++ b/indra/newview/llvieweroctree.cpp
@@ -1143,6 +1143,8 @@ void LLOcclusionCullingGroup::checkOcclusion()
GLuint query_result; // Will be # samples drawn, or a boolean depending on mHasOcclusionQuery2 (both are type GLuint)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_OCTREE("co - query result");
+ // Ping watchdog before a blocking GL_QUERY_RESULT GPU call
+ LLAppViewer::instance()->pingMainloopTimeout("Display:CullQueryResult");
glGetQueryObjectuiv(mOcclusionQuery[LLViewerCamera::sCurCameraID], GL_QUERY_RESULT, &query_result);
}
#if LL_TRACK_PENDING_OCCLUSION_QUERIES
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 02d0b652c1..2ca8178bf8 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -8702,6 +8702,10 @@ bool LLVOAvatar::processFullyLoadedChange(bool loading)
if (changed && isSelf())
{
+ // Agent's own avatar doesn't track bakes the same way as other avatars.
+ // So just update here, on cloud removal.
+ markBodyPartsComplexityDirty();
+
// to know about outfit switching
LLAvatarRenderNotifier::getInstance()->updateNotificationState();
}
@@ -10299,6 +10303,10 @@ void LLVOAvatar::onInitialBakedTextureLoaded( bool success, LLViewerFetchedTextu
}
if (final || !success )
{
+ if (selfp)
+ {
+ selfp->markBodyPartsComplexityDirty();
+ }
delete avatar_idp;
}
}
@@ -11587,7 +11595,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
// Store results
mVisualComplexity = total_cost;
- // Call the existing reporting function with the aggregated lists
+ // Call the reporting function with the aggregated lists
processComplexityCostChange(hud_complexity_list, object_complexity_list);
// Stop processing until something changes