diff options
author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-06-11 13:38:43 +0200 |
---|---|---|
committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-06-11 13:38:43 +0200 |
commit | d9789bfaf230e301873bd700f6f360d306dc2486 (patch) | |
tree | 4b2dd2680905ca9821e2b11b36aa63dfe7af4f84 /indra/newview/llenvironment.cpp | |
parent | 9f6b8484dfb7dfa981d8a8ac3693d3f68e32bc12 (diff) | |
parent | a73773bc1abdac6bc3beea36fd4ba58eba686e13 (diff) |
Merge branch 'main' of https://github.com/secondlife/viewer into DRTVWR-600-maint-A
# Conflicts:
# indra/llappearance/llavatarappearance.h
# indra/llimage/llimage.cpp
# indra/llmath/llvolume.cpp
# indra/llmath/llvolume.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llrendertarget.cpp
# indra/llrender/llshadermgr.cpp
# indra/newview/lldynamictexture.cpp
# indra/newview/llenvironment.cpp
# indra/newview/llfetchedgltfmaterial.cpp
# indra/newview/llfloaterimagepreview.cpp
# indra/newview/llfloaterimagepreview.h
# indra/newview/llfloaterregioninfo.cpp
# indra/newview/llfloaterregioninfo.h
# indra/newview/llmaniprotate.cpp
# indra/newview/llmaniptranslate.cpp
# indra/newview/llpanelvolume.cpp
# indra/newview/llselectmgr.cpp
# indra/newview/llselectmgr.h
# indra/newview/llsurface.cpp
# indra/newview/llsurface.h
# indra/newview/llsurfacepatch.cpp
# indra/newview/lltexturectrl.cpp
# indra/newview/lltexturectrl.h
# indra/newview/lltinygltfhelper.cpp
# indra/newview/llviewertexture.cpp
# indra/newview/llviewerwindow.cpp
# indra/newview/llviewerwindow.h
# indra/newview/llvlcomposition.cpp
# indra/newview/llvlcomposition.h
# indra/newview/llvocache.cpp
# indra/newview/llvovolume.cpp
# indra/newview/pipeline.cpp
Diffstat (limited to 'indra/newview/llenvironment.cpp')
-rw-r--r-- | indra/newview/llenvironment.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp index 5bee087b38..21bb3bac1d 100644 --- a/indra/newview/llenvironment.cpp +++ b/indra/newview/llenvironment.cpp @@ -1675,8 +1675,6 @@ void LLEnvironment::update(const LLViewerCamera * cam) updateSettingsUniforms(); - // *TODO: potential optimization - this block may only need to be - // executed some of the time. For example for water shaders only. { LLViewerShaderMgr::shader_iter shaders_iter, end_shaders; end_shaders = LLViewerShaderMgr::instance()->endShaders(); @@ -1687,6 +1685,10 @@ void LLEnvironment::update(const LLViewerCamera * cam) || shaders_iter->mShaderGroup == LLGLSLShader::SG_WATER)) { shaders_iter->mUniformsDirty = true; + if (shaders_iter->mRiggedVariant) + { + shaders_iter->mRiggedVariant->mUniformsDirty = true; + } } } } @@ -1768,8 +1770,10 @@ void LLEnvironment::updateGLVariablesForSettings(LLShaderUniforms* uniforms, con case LLSD::TypeArray: { LLVector4 vect4(value); + // always identify as a radiance pass if desaturating irradiance is disabled + static LLCachedControl<bool> desaturate_irradiance(gSavedSettings, "RenderDesaturateIrradiance", true); - if (gCubeSnapshot && !gPipeline.mReflectionMapManager.isRadiancePass()) + if (desaturate_irradiance && gCubeSnapshot && !gPipeline.mReflectionMapManager.isRadiancePass()) { // maximize and remove tinting if this is an irradiance map render pass and the parameter feeds into the sky background color auto max_vec = [](LLVector4 col) { @@ -2964,7 +2968,7 @@ void LLEnvironment::DayTransition::animate() // pause probe updates and reset reflection maps on sky change - gPipeline.mReflectionMapManager.pause(); + gPipeline.mReflectionMapManager.pause(mTransitionTime); gPipeline.mReflectionMapManager.reset(); mSky = mStartSky->buildClone(); @@ -3567,7 +3571,7 @@ namespace mInjectedSky->setSource(target_sky); // clear reflection probes and pause updates during sky change - gPipeline.mReflectionMapManager.pause(); + gPipeline.mReflectionMapManager.pause(transition); gPipeline.mReflectionMapManager.reset(); mBlenderSky = std::make_shared<LLSettingsBlenderTimeDelta>(target_sky, start_sky, psky, transition); |