diff options
| -rw-r--r-- | indra/newview/llheroprobemanager.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llheroprobemanager.h | 3 | 
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;  }; | 
