From c1652b4c42256b2e9dd6a564a83681c87d1a3528 Mon Sep 17 00:00:00 2001
From: Dave Houlton <euclid@lindenlab.com>
Date: Mon, 3 Feb 2020 17:41:54 -0700
Subject: SL-12005, back out SRGB changes for projector spotlights

Deferred spotlights were transitioned srdb->linear in commit 653133b
The lights transition between the deferred and (some other) path at fixed camera
distance, causing a distinct light-level pop. Backing out this change to avoid
the pop. Note to the future: pick a light space at the beginning and stick with it.
---
 .../newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl | 4 +++-
 indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl    | 4 +++-
 .../newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
index e28506dcff..a690cc45a8 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
@@ -178,7 +178,9 @@ void main()
 		
 		
 	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb;
-    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
+    // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space.
+    //          We can't switch to linear here unless we do it everywhere
+    //diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
 
 	vec3 dlit = vec3(0, 0, 0);
 	
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
index 5e985618f7..2216afe609 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
@@ -177,7 +177,9 @@ void main()
 	float da = dot(norm, lv);
 		
 	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb;
-    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
+    // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space.
+    //          We can't switch to linear here unless we do it everywhere
+    //diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
 
 	vec4 spec = texture2DRect(specularRect, frag.xy);
 
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
index 8cad21d5b4..7cde67d11b 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
@@ -191,7 +191,9 @@ void main()
     float da = dot(norm, lv);
         
     vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb;
-    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
+    // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space.
+    //          We can't switch to linear here unless we do it everywhere
+    //diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
  
     vec4 spec = texture2DRect(specularRect, frag.xy);
 
-- 
cgit v1.2.3