summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2025-02-25 09:07:45 -0500
committerGitHub <noreply@github.com>2025-02-25 09:07:45 -0500
commitca079bc14911ddca631167e078deab6d35224f23 (patch)
tree02cca92e9e23bc4a7dfa51b0d52f10cb6d61e9ac
parent5b425eb9dc72256ee18bed4f7235ea1c060ef951 (diff)
parentae7658de24e487719a8cbdaaa334ba1619ec6de8 (diff)
Merge pull request #3610 from secondlife/geenz/mirrors-enabled-fix
#3331 - Mirrors no longer function on relog
-rw-r--r--indra/newview/llheroprobemanager.cpp11
-rw-r--r--indra/newview/llheroprobemanager.h3
2 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llheroprobemanager.cpp b/indra/newview/llheroprobemanager.cpp
index e754de2fd1..675a8dfe7d 100644
--- a/indra/newview/llheroprobemanager.cpp
+++ b/indra/newview/llheroprobemanager.cpp
@@ -80,6 +80,17 @@ void LLHeroProbeManager::update()
return;
}
+ // Part of a hacky workaround to fix #3331.
+ // For some reason clearing shaders will cause mirrors to actually work.
+ // There's likely some deeper state issue that needs to be resolved.
+ // - Geenz 2025-02-25
+ if (!mInitialized && LLStartUp::getStartupState() > STATE_PRECACHE)
+ {
+ LLViewerShaderMgr::instance()->clearShaderCache();
+ LLViewerShaderMgr::instance()->setShaders();
+ mInitialized = true;
+ }
+
LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
llassert(!gCubeSnapshot); // assert a snapshot is not in progress
if (LLAppViewer::instance()->logoutRequestSent())
diff --git a/indra/newview/llheroprobemanager.h b/indra/newview/llheroprobemanager.h
index 58a94a3de8..2737ec5ddf 100644
--- a/indra/newview/llheroprobemanager.h
+++ b/indra/newview/llheroprobemanager.h
@@ -144,6 +144,7 @@ private:
std::vector<LLPointer<LLVOVolume>> mHeroVOList;
LLPointer<LLVOVolume> mNearestHero;
-
+ // Part of a hacky workaround to fix #3331.
+ bool mInitialized = false;
};