From 6534014f6e3901fccc4caa30b3b80606f80f34bb Mon Sep 17 00:00:00 2001
From: Kitty Barnett <develop@catznip.com>
Date: Mon, 15 Feb 2021 20:19:50 +0100
Subject: [PATCH] AMD shader compile error + just have anyone with older
 drivers/hardware load the explicit one for now

---
 .../app_settings/shaders/class1/deferred/rlvF.glsl       | 2 +-
 .../class1/deferred/{rlvFMac.glsl => rlvFLegacy.glsl}    | 0
 indra/newview/llviewershadermgr.cpp                      | 9 ++++-----
 3 files changed, 5 insertions(+), 6 deletions(-)
 rename indra/newview/app_settings/shaders/class1/deferred/{rlvFMac.glsl => rlvFLegacy.glsl} (100%)

diff --git a/indra/newview/app_settings/shaders/class1/deferred/rlvF.glsl b/indra/newview/app_settings/shaders/class1/deferred/rlvF.glsl
index 8661ffe923c..4875523fb25 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/rlvF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/rlvF.glsl
@@ -147,7 +147,7 @@ void main()
 			break;
 		case 2:		// Blur (variable)
 			fragColor = texture2DRect(diffuseRect, fragTC).rgb;
-			fragColor = mix(fragColor, blurVariable(diffuseRect, fragTC, SPHERE_PARAMS.x, BLUR_DIRECTION, effectStrength), effectStrength > 0);
+			fragColor = mix(fragColor, blurVariable(diffuseRect, fragTC, SPHERE_PARAMS.x, BLUR_DIRECTION, effectStrength), int(effectStrength > 0));
 			break;
 		case 3:		// ChromaticAberration
 			fragColor = chromaticAberration(diffuseRect, fragTC, SPHERE_PARAMS.xy, SPHERE_PARAMS.zw, effectStrength);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/rlvFMac.glsl b/indra/newview/app_settings/shaders/class1/deferred/rlvFLegacy.glsl
similarity index 100%
rename from indra/newview/app_settings/shaders/class1/deferred/rlvFMac.glsl
rename to indra/newview/app_settings/shaders/class1/deferred/rlvFLegacy.glsl
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index c0e03ec4664..479b3cdda60 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -4144,11 +4144,10 @@ BOOL LLViewerShaderMgr::loadShadersWindLight()
 		gRlvSphereProgram.mName = "RLVa Sphere Post Processing Shader";
 		gRlvSphereProgram.mShaderFiles.clear();
 		gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvV.glsl", GL_VERTEX_SHADER_ARB));
-#ifndef LL_DARWIN
-		gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER_ARB));
-#else
-		gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvFMac.glsl", GL_FRAGMENT_SHADER_ARB));
-#endif
+ 		if (gGLManager.mGLVersion >= 4.5f)
+			gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER_ARB));
+		else
+			gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvFLegacy.glsl", GL_FRAGMENT_SHADER_ARB));
 		gRlvSphereProgram.mShaderLevel = mShaderLevel[SHADER_WINDLIGHT];
 		success = gRlvSphereProgram.createShader(NULL, NULL);
 	}
-- 
GitLab