From 1ff876a961dc00b7f162054ea1a9fed79240bffc Mon Sep 17 00:00:00 2001
From: Graham Linden <graham@lindenlab.com>
Date: Tue, 30 Apr 2019 12:19:35 -0700
Subject: [PATCH] SL-11071

Make sun disc and moon shaders use sRGB hardware tex sampling.

Remove sun disc shader use of fullbright transport (fogging).
---
 .../newview/app_settings/shaders/class1/deferred/moonF.glsl | 3 ---
 .../app_settings/shaders/class1/deferred/sunDiscF.glsl      | 3 ++-
 indra/newview/lldrawpoolwlsky.cpp                           | 6 ++++++
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
index cc1636d89dc..187b5a62dd1 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
@@ -44,8 +44,6 @@ uniform sampler2D altDiffuseMap;
 uniform float blend_factor; // interp factor between moon A/B
 VARYING vec2 vary_texcoord0;
 
-vec3 srgb_to_linear(vec3 c);
-
 void main() 
 {
     vec4 moonA = texture2D(diffuseMap, vary_texcoord0.xy);
@@ -60,7 +58,6 @@ void main()
 
     vec3 exp = vec3(1.0 - mix * moon_brightness) * 2.0  - 1.0;
     c.rgb = pow(c.rgb, exp);
-    c.rgb = srgb_to_linear(c.rgb);
 
     //c.rgb *= moonlight_color.rgb;
 
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl
index e240c130c62..571e9d9326b 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl
@@ -49,7 +49,8 @@ void main()
     vec4 c     = mix(sunDiscA, sunDiscB, blend_factor);
     c.rgb = clamp(c.rgb, vec3(0), vec3(1));
     c.rgb = pow(c.rgb, vec3(0.7f));
-    c.rgb = fullbrightAtmosTransport(c.rgb);
+
+    //c.rgb = fullbrightAtmosTransport(c.rgb);
     c.rgb = fullbrightScaleSoftClip(c.rgb);
 
     // SL-9806 stars poke through
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index b9bc7678e6e..9039c8cbcb5 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -484,6 +484,9 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
             {
                 sun_shader->bind();
 
+                gGL.getTexUnit(0)->setTextureColorSpace(LLTexUnit::TCS_SRGB);
+                gGL.getTexUnit(1)->setTextureColorSpace(LLTexUnit::TCS_SRGB);
+
                 if (tex_a && (!tex_b || (tex_a == tex_b)))
                 {
                     // Bind current and next sun textures
@@ -532,6 +535,9 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
         {
             moon_shader->bind();
 
+            gGL.getTexUnit(0)->setTextureColorSpace(LLTexUnit::TCS_SRGB);
+            gGL.getTexUnit(1)->setTextureColorSpace(LLTexUnit::TCS_SRGB);
+
             if (tex_a && (!tex_b || (tex_a == tex_b)))
             {
                 // Bind current and next sun textures
-- 
GitLab