diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index c87ceddcb19b5d7088f2484919b318cd235970c7..1e1d7d4ffe3f4ba7be5b38cd94345397b448ef1d 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -2886,17 +2886,23 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 	// These shaders are non-critical and do not fail shader load
 	if (success)
 	{
-		if (gGLManager.mGLVersion >= 4.19f)
+		// [RLVa:KB] - @setsphere
+		if (success)
 		{
-			gDeferredPostCASProgram.mName = "Contrast Adaptive Sharpen Shader";
-			gDeferredPostCASProgram.mFeatures.hasSrgb = true;
-			gDeferredPostCASProgram.mShaderFiles.clear();
-			gDeferredPostCASProgram.mShaderFiles.push_back(make_pair("alchemy/postNoTCV.glsl", GL_VERTEX_SHADER));
-			gDeferredPostCASProgram.mShaderFiles.push_back(make_pair("alchemy/CASF.glsl", GL_FRAGMENT_SHADER));
-			gDeferredPostCASProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-			gDeferredPostCASProgram.createShader(NULL, NULL);
+			gRlvSphereProgram.mName = "RLVa Sphere Post Processing Shader";
+			gRlvSphereProgram.mFeatures.isDeferred = true;
+			gRlvSphereProgram.mShaderFiles.clear();
+			gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvV.glsl", GL_VERTEX_SHADER));
+			if (gGLManager.mGLVersion >= 4.5f)
+				gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER));
+			else
+				gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvFLegacy.glsl", GL_FRAGMENT_SHADER));
+			gRlvSphereProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
+			success = gRlvSphereProgram.createShader(NULL, NULL);
 		}
+		// [/RLV:KB]
 
+		if (success)
 		{
 			gDeferredPostDLSProgram.mName = "DLS Shader";
 			gDeferredPostDLSProgram.mFeatures.hasSrgb = true;
@@ -2904,10 +2910,21 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 			gDeferredPostDLSProgram.mShaderFiles.push_back(make_pair("alchemy/postNoTCV.glsl", GL_VERTEX_SHADER));
 			gDeferredPostDLSProgram.mShaderFiles.push_back(make_pair("alchemy/DLSF.glsl", GL_FRAGMENT_SHADER));
 			gDeferredPostDLSProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-			gDeferredPostDLSProgram.createShader(NULL, NULL);
+			success = gDeferredPostDLSProgram.createShader(NULL, NULL);
 		}
 
-		if (gGLManager.mGLVersion >= 4.19f)
+		if (gGLManager.mGLVersion >= 4.59f)
+		{
+			gDeferredPostCASProgram.mName = "Contrast Adaptive Sharpen Shader";
+			gDeferredPostCASProgram.mFeatures.hasSrgb = true;
+			gDeferredPostCASProgram.mShaderFiles.clear();
+			gDeferredPostCASProgram.mShaderFiles.push_back(make_pair("alchemy/postNoTCV.glsl", GL_VERTEX_SHADER));
+			gDeferredPostCASProgram.mShaderFiles.push_back(make_pair("alchemy/CASF.glsl", GL_FRAGMENT_SHADER));
+			gDeferredPostCASProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
+			gDeferredPostCASProgram.createShader(NULL, NULL);
+		}
+
+		if (gGLManager.mGLVersion >= 4.59f)
 		{
 			gDeferredPostTonemapLPMProgram.mName = "Tonemapping Shader LPM";
 			gDeferredPostTonemapLPMProgram.mFeatures.hasSrgb = true;
@@ -2920,21 +2937,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 			gDeferredPostTonemapLPMProgram.addPermutation("TONEMAP_METHOD", std::to_string(ALRenderUtil::TONEMAP_AMD));
 			gDeferredPostTonemapLPMProgram.createShader(NULL, NULL); // Ignore return value for this shader
 		}
-// [RLVa:KB] - @setsphere
-		if (success)
-		{
-			gRlvSphereProgram.mName = "RLVa Sphere Post Processing Shader";
-			gRlvSphereProgram.mFeatures.isDeferred = true;
-			gRlvSphereProgram.mShaderFiles.clear();
-			gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvV.glsl", GL_VERTEX_SHADER));
- 			if (gGLManager.mGLVersion >= 4.5f)
-				gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER));
-			else
-				gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvFLegacy.glsl", GL_FRAGMENT_SHADER));
-			gRlvSphereProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-			gRlvSphereProgram.createShader(NULL, NULL);
-		}
-// [/RLV:KB]
 	}
 
 	return success;