From 89af6b10adb956379a9851edcff0896034f5b704 Mon Sep 17 00:00:00 2001
From: Hannu Hanhi <hhanhipublic@gmail.com>
Date: Sat, 25 Sep 2021 18:10:14 +0300
Subject: [PATCH] Prevent gl_FrontColor overflow in model lighting shader
 manually

Some drivers don't clamp it for some reason.

Fixes overbright model lighting and broken colors when combined with palette rendering on affected drivers.
---
 src/hardware/hw_shaders.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/hardware/hw_shaders.c b/src/hardware/hw_shaders.c
index cb929ae6e9..7f3b5433f1 100644
--- a/src/hardware/hw_shaders.c
+++ b/src/hardware/hw_shaders.c
@@ -40,7 +40,7 @@
 	"{\n" \
 		"#ifdef SRB2_MODEL_LIGHTING\n" \
 		"float nDotVP = dot(gl_Normal, vec3(0, 1, 0));\n" \
-		"float light = 0.75 + max(nDotVP, 0.0);\n" \
+		"float light = min(0.75 + max(nDotVP, 0.0), 1.0);\n" \
 		"gl_FrontColor = vec4(light, light, light, 1.0);\n" \
 		"#else\n" \
 		"gl_FrontColor = gl_Color;\n" \
-- 
GitLab