From 24993a914f4d3a08bad658c21f2070504a8ad654 Mon Sep 17 00:00:00 2001
From: Andrey Lihatskiy <alihatskiy@productengine.com>
Date: Mon, 14 Nov 2022 23:51:13 +0200
Subject: [PATCH] SL-18637 Reverted material shader changes

original fix by Beq Janus
---
 doc/contributions.txt                               |  1 +
 .../shaders/class1/deferred/materialF.glsl          | 13 ++++++-------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/doc/contributions.txt b/doc/contributions.txt
index 9368781c9a6..4cabb84b103 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -282,6 +282,7 @@ Beq Janus
 	SL-11300
 	SL-15709
 	SL-16021
+	SL-18637
 Beth Walcher
 Bezilon Kasei
 Biancaluce Robbiani
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index b26194f2788..b30d7655dbe 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -202,7 +202,7 @@ VARYING vec2 vary_texcoord2;
 uniform float env_intensity;
 uniform vec4 specular_color;  // specular color RGB and specular exponent (glossiness) in alpha
 
-#ifdef HAS_ALPHA_MASK
+#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_MASK)
 uniform float minimum_alpha;
 #endif
 
@@ -227,12 +227,11 @@ void main()
     vec4 diffcol = texture2D(diffuseMap, vary_texcoord0.xy);
 	diffcol.rgb *= vertex_color.rgb;
 
-#ifdef HAS_ALPHA_MASK
-#if DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND
-    if (diffcol.a*vertex_color.a < minimum_alpha)
-#else
-    if (diffcol.a < minimum_alpha)
-#endif
+#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_MASK)
+
+    // Comparing floats cast from 8-bit values, produces acne right at the 8-bit transition points
+    float bias = 0.001953125; // 1/512, or half an 8-bit quantization (SL-18637)
+    if (diffcol.a < minimum_alpha-bias)
     {
         discard;
     }
-- 
GitLab