diff options
author | RunitaiLinden <davep@lindenlab.com> | 2024-02-08 15:07:54 -0600 |
---|---|---|
committer | RunitaiLinden <davep@lindenlab.com> | 2024-02-08 15:07:54 -0600 |
commit | a7310ae7417b2f6e7013762a1cfe3211a163a8d7 (patch) | |
tree | a47289c7155a57112f06e841d98e24246b966d1e | |
parent | 602be267ed55dc7cb3725bff1510d59bec950d39 (diff) |
#671 Nudge RenderMirrors and clear shader cache as needed based on SimulatorFeatures
-rw-r--r-- | indra/newview/llheroprobemanager.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llheroprobemanager.h | 2 | ||||
-rw-r--r-- | indra/newview/llpanelvolume.cpp | 2 | ||||
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 8 | ||||
-rw-r--r-- | indra/newview/llviewershadermgr.cpp | 2 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 1 |
6 files changed, 11 insertions, 16 deletions
diff --git a/indra/newview/llheroprobemanager.cpp b/indra/newview/llheroprobemanager.cpp index c66054f618..2a81919856 100644 --- a/indra/newview/llheroprobemanager.cpp +++ b/indra/newview/llheroprobemanager.cpp @@ -72,18 +72,6 @@ void LLHeroProbeManager::update() return; } - // This should be moved elsewhere. - LLSD features; - gAgent.getRegion()->getSimulatorFeatures(features); - if (mHasMirrors != features.has("MirrorsEnabled")) - { - mHasMirrors = features.has("MirrorsEnabled"); - LLViewerShaderMgr::instance()->setShaders(); - } - - if (!mHasMirrors) - return; - 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 9151189a92..552c5dcaab 100644 --- a/indra/newview/llheroprobemanager.h +++ b/indra/newview/llheroprobemanager.h @@ -72,7 +72,6 @@ public: void unregisterViewerObject(LLVOVolume* drawablep); bool isMirrorPass() const { return mRenderingMirror; } - bool hasMirrors() const { return mHasMirrors; } LLVector3 mMirrorPosition; LLVector3 mMirrorNormal; @@ -135,7 +134,6 @@ private: bool mReset = false; bool mRenderingMirror = false; - bool mHasMirrors = false; std::set<LLPointer<LLVOVolume>> mHeroVOList; LLPointer<LLVOVolume> mNearestHero; diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index f64106948f..8d8263448d 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -392,7 +392,7 @@ void LLPanelVolume::getState( ) bool probe_enabled = is_probe && editable && single_volume; - bool mirrors_enabled = LLPipeline::RenderMirrors && gPipeline.mHeroProbeManager.hasMirrors(); + bool mirrors_enabled = LLPipeline::RenderMirrors; getChildView("Probe Update Type")->setVisible(mirrors_enabled); getChildView("Probe Update Label")->setVisible(mirrors_enabled); diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index ce57585d82..cea083e07d 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2451,6 +2451,14 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features) gSavedSettings.setS32("max_texture_dimension_X", 1024); gSavedSettings.setS32("max_texture_dimension_Y", 1024); } + + bool mirrors_enabled = false; + if (mSimulatorFeatures.has("MirrorsEnabled")) + { + mirrors_enabled = mSimulatorFeatures["MirrorsEnabled"].asBoolean(); + } + + gSavedSettings.setBOOL("RenderMirrors", mirrors_enabled); } //this is called when the parent is not cacheable. diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index b175172b9b..4eb934114d 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -390,7 +390,7 @@ void LLViewerShaderMgr::setShaders() mShaderList.clear(); - LLShaderMgr::sMirrorsEnabled = LLPipeline::RenderMirrors && gPipeline.mHeroProbeManager.hasMirrors(); + LLShaderMgr::sMirrorsEnabled = LLPipeline::RenderMirrors; if (!gGLManager.mHasRequirements) { diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 32c7563aa0..9d90002eb9 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1065,6 +1065,7 @@ void LLPipeline::refreshCachedSettings() if (gSavedSettings.getBOOL("RenderMirrors") != (BOOL)RenderMirrors) { RenderMirrors = gSavedSettings.getBOOL("RenderMirrors"); + LLViewerShaderMgr::instance()->clearShaderCache(); LLViewerShaderMgr::instance()->setShaders(); } sReflectionProbesEnabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderReflectionsEnabled") && gSavedSettings.getBOOL("RenderReflectionsEnabled"); |