From 78bb75989e36b9598852e7dcce05dce37ab0ebe1 Mon Sep 17 00:00:00 2001
From: RunitaiLinden <davep@lindenlab.com>
Date: Fri, 21 Apr 2023 17:19:39 -0500
Subject: [PATCH] DRTVWR-559 Nudge legacy sky ambient to be more like release. 
 Incidental decruft

---
 .../class1/deferred/postDeferredGammaCorrect.glsl  |  1 -
 indra/newview/llsettingsvo.cpp                     | 14 ++++++++++----
 indra/newview/pipeline.cpp                         |  2 +-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
index de766d6bc74..82d7bb98353 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
@@ -38,7 +38,6 @@ uniform sampler2D exposureMap;
 
 uniform vec2 screen_res;
 VARYING vec2 vary_fragcoord;
-uniform float display_gamma;
 
 vec3 linear_to_srgb(vec3 cl);
 
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index f2f269fa63f..1427dbefa13 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -716,6 +716,16 @@ void LLSettingsVOSky::applySpecial(void *ptarget, bool force)
 
     LLColor3 ambient(getTotalAmbient());
 
+    F32 g = getGamma();
+    if (ambient != LLColor3::black && getReflectionProbeAmbiance() == 0.f)
+    { //desaturate ambient for legacy compatibility
+        F32 h, s, l;
+        ambient.calcHSL(&h, &s, &l);
+        s *= 0.5f;
+        l *= 1.f / (g + llmax(g-1.f, 0.f));
+        ambient.setHSL(h, s, l);
+    }
+
     if (irradiance_pass)
     { // during an irradiance map update, disable ambient lighting (direct lighting only) and desaturate sky color (avoid tinting the world blue)
         shader->uniform3fv(LLShaderMgr::AMBIENT_LINEAR, LLVector3::zero.mV);
@@ -755,11 +765,7 @@ void LLSettingsVOSky::applySpecial(void *ptarget, bool force)
 
     shader->uniform1f(LLShaderMgr::HAZE_DENSITY_LINEAR, sRGBtoLinear(getHazeDensity()));
 
-    F32 g             = getGamma();
-    F32 display_gamma = gSavedSettings.getF32("RenderDeferredDisplayGamma");
-
     shader->uniform1f(LLShaderMgr::GAMMA, g);
-    shader->uniform1f(LLShaderMgr::DISPLAY_GAMMA, display_gamma);
 }
 
 LLSettingsSky::parammapping_t LLSettingsVOSky::getParameterMap() const
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 60d19bf1d69..9fe9f4e487f 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -7039,7 +7039,7 @@ void LLPipeline::gammaCorrect(LLRenderTarget* src, LLRenderTarget* dst) {
 
 		static LLCachedControl<F32> exposure(gSavedSettings, "RenderExposure", 1.f);
 
-		F32 e = llclamp(exposure(), 0.5f, 4.f);       
+		F32 e = llclamp(exposure(), 0.5f, 4.f);
 
 		static LLStaticHashedString s_exposure("exposure");
 
-- 
GitLab