diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
index de766d6bc74c6f456eb1d45027564ea5af538ea2..82d7bb983533f5c251f53c738fd150400f8cf78c 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 f2f269fa63f51cf2899947c567a61669160d8c9e..1427dbefa135c5fc45a167823a9eacd2b6171c1d 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 60d19bf1d69e931a2369c9f52f132a59472a0df8..9fe9f4e487fa491d0b866e48bac2a4c4f1820c71 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");