From 1c2410b8af62254e96d60b2ae2e411d4756215e4 Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Fri, 3 Feb 2023 19:45:31 -0600
Subject: [PATCH] SL-19148 Decruft followthrough -- decruft shader tree and
 some remaining forward rendering code.

---
 indra/llrender/llglslshader.cpp               |   1 -
 indra/llrender/llglslshader.h                 |   1 -
 indra/llrender/llpostprocess.cpp              | 132 ------
 indra/llrender/llshadermgr.cpp                |  31 +-
 .../shaders/class1/deferred/alphaF.glsl       |  35 --
 .../class1/deferred/fullbrightShinyF.glsl     |  34 --
 .../shaders/class1/deferred/indirect.glsl     |  30 --
 .../shaders/class1/deferred/luminanceF.glsl   |  40 --
 .../shaders/class1/deferred/luminanceV.glsl   |  45 --
 .../shaders/class1/deferred/materialF.glsl    |  52 ---
 .../class1/deferred/multiPointLightF.glsl     |  33 --
 .../class1/deferred/multiPointLightV.glsl     |  37 --
 .../class1/deferred/multiSpotLightF.glsl      | 283 ------------
 .../shaders/class1/deferred/pbralphaF.glsl    |  34 --
 .../shaders/class1/deferred/pointLightF.glsl  |  32 --
 .../shaders/class1/deferred/pointLightV.glsl  |  45 --
 .../shaders/class1/deferred/postgiF.glsl      |  99 -----
 .../class1/deferred/reflectionProbeF.glsl     |  64 ---
 .../class1/deferred/screenSpaceReflPostF.glsl |  33 --
 .../class1/deferred/screenSpaceReflPostV.glsl |  39 --
 .../shaders/class1/deferred/softenLightF.glsl | 165 -------
 .../shaders/class1/deferred/softenLightV.glsl |  43 --
 .../shaders/class1/deferred/spotLightF.glsl   | 278 ------------
 .../shaders/class1/deferred/sunLightF.glsl    |  41 --
 .../class1/deferred/sunLightNoFragCoordV.glsl |  37 --
 .../class1/deferred/sunLightSSAOF.glsl        |  62 ---
 .../shaders/class1/deferred/sunLightV.glsl    |  39 --
 .../shaders/class1/deferred/waterF.glsl       |  36 --
 .../class1/environment/underWaterF.glsl       |  32 --
 .../shaders/class1/environment/waterF.glsl    |  31 --
 .../class1/interface/irradianceGenF.glsl      |  33 --
 .../class1/interface/reflectionprobeF.glsl    |  32 --
 .../class1/interface/reflectionprobeV.glsl    |  34 --
 .../lighting/lightFullbrightShinyF.glsl       |  59 ---
 .../lightFullbrightShinyNonIndexedF.glsl      |  58 ---
 .../lighting/lightFullbrightShinyWaterF.glsl  |  55 ---
 .../lightFullbrightShinyWaterNonIndexedF.glsl |  56 ---
 .../shaders/class1/lighting/lightShinyF.glsl  |  51 ---
 .../lighting/lightShinyNonIndexedF.glsl       |  52 ---
 .../class1/lighting/lightShinyWaterF.glsl     |  53 ---
 .../lighting/lightShinyWaterNonIndexedF.glsl  |  54 ---
 .../shaders/class1/lighting/lightV.glsl       |  43 --
 .../shaders/class1/objects/emissiveV.glsl     |  66 ---
 .../class1/objects/fullbrightNoColorV.glsl    |  53 ---
 .../class1/objects/fullbrightShinyF.glsl      |  33 --
 .../class1/objects/fullbrightShinyV.glsl      |  79 ----
 .../class1/objects/fullbrightShinyWaterF.glsl |  32 --
 .../class1/objects/fullbrightWaterF.glsl      |  33 --
 .../class1/objects/simpleNonIndexedV.glsl     |  61 ---
 .../shaders/class1/objects/simpleTexGenV.glsl |  77 ----
 .../shaders/class1/objects/simpleV.glsl       |  75 ----
 .../shaders/class1/objects/treeV.glsl         |  59 ---
 .../shaders/class1/transform/binormalV.glsl   |  36 --
 .../shaders/class1/transform/colorV.glsl      |  36 --
 .../shaders/class1/transform/normalV.glsl     |  36 --
 .../shaders/class1/transform/positionV.glsl   |  40 --
 .../shaders/class1/transform/texcoordV.glsl   |  35 --
 .../class1/windlight/atmosphericsF.glsl       |  48 --
 .../class1/windlight/atmosphericsFuncs.glsl   |  47 --
 .../windlight/atmosphericsHelpersF.glsl       |  49 --
 .../windlight/atmosphericsHelpersV.glsl       |  55 ---
 .../class1/windlight/atmosphericsV.glsl       |  35 --
 .../class1/windlight/atmosphericsVarsF.glsl   |  37 --
 .../class1/windlight/atmosphericsVarsV.glsl   |  56 ---
 .../windlight/atmosphericsVarsWaterF.glsl     |  38 --
 .../windlight/atmosphericsVarsWaterV.glsl     |  51 ---
 .../shaders/class1/windlight/gammaF.glsl      |  50 ---
 .../shaders/class1/windlight/transportF.glsl  |  54 ---
 .../shaders/class2/avatar/eyeballV.glsl       |  62 ---
 .../shaders/class2/deferred/indirect.glsl     |  32 --
 .../class2/deferred/multiSpotLightF.glsl      | 298 -------------
 .../shaders/class2/deferred/softenLightF.glsl | 159 -------
 .../shaders/class2/deferred/spotLightF.glsl   | 292 ------------
 .../shaders/class2/environment/waterF.glsl    | 170 -------
 .../class2/lighting/sumLightsSpecularV.glsl   |  64 ---
 .../shaders/class2/lighting/sumLightsV.glsl   |  60 ---
 indra/newview/lldrawpoolsky.cpp               | 100 +----
 indra/newview/lldrawpoolterrain.cpp           |  83 +---
 indra/newview/lldrawpoolterrain.h             |   5 +-
 indra/newview/lldrawpoolwater.cpp             |   1 -
 indra/newview/llface.cpp                      |   1 -
 indra/newview/llfloaterpreference.cpp         |   1 -
 indra/newview/llviewercontrol.cpp             |   1 -
 indra/newview/llviewerobject.cpp              |   2 +-
 indra/newview/llviewershadermgr.cpp           | 417 +-----------------
 indra/newview/llviewershadermgr.h             |  25 --
 indra/newview/llvograss.cpp                   |   1 -
 indra/newview/llvowater.cpp                   |   1 -
 indra/newview/pipeline.cpp                    |  64 +--
 indra/newview/pipeline.h                      |   4 -
 90 files changed, 38 insertions(+), 5520 deletions(-)
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/indirect.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/pbralphaF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/reflectionProbeF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/environment/waterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/interface/reflectionprobeF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/interface/reflectionprobeV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/objects/treeV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/transform/colorV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/transform/normalV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/transform/positionV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/deferred/indirect.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/environment/waterF.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
 delete mode 100644 indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl

diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 1e3f539c818..6b56c23fcd3 100644
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -99,7 +99,6 @@ LLShaderFeatures::LLShaderFeatures()
     , encodesNormal(false)
     , isDeferred(false)
     , hasScreenSpaceReflections(false)
-    , hasIndirect(false)
     , hasShadows(false)
     , hasAmbientOcclusion(false)
     , mIndexedTextureChannels(0)
diff --git a/indra/llrender/llglslshader.h b/indra/llrender/llglslshader.h
index f7bba35758f..edf7b594912 100644
--- a/indra/llrender/llglslshader.h
+++ b/indra/llrender/llglslshader.h
@@ -54,7 +54,6 @@ class LLShaderFeatures
     bool encodesNormal; // include: shaders\class1\environment\encodeNormF.glsl
     bool isDeferred;
     bool hasScreenSpaceReflections;
-    bool hasIndirect;
     S32 mIndexedTextureChannels;
     bool disableTextureIndex;
     bool hasAlphaMask;
diff --git a/indra/llrender/llpostprocess.cpp b/indra/llrender/llpostprocess.cpp
index f1e5b712070..0f8655132b7 100644
--- a/indra/llrender/llpostprocess.cpp
+++ b/indra/llrender/llpostprocess.cpp
@@ -230,35 +230,7 @@ void LLPostProcess::applyShaders(void)
 
 void LLPostProcess::applyColorFilterShader(void)
 {	
-	/*  Do nothing.  Needs to be updated to use our current shader system, and to work with the move into llrender.
-	gPostColorFilterProgram.bind();
-
-	gGL.getTexUnit(0)->activate();
-	gGL.getTexUnit(0)->enable(LLTexUnit::TT_RECT_TEXTURE);
-
-	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, sceneRenderTexture);
-
-	getShaderUniforms(colorFilterUniforms, gPostColorFilterProgram.mProgramObject);
-	glUniform1i(colorFilterUniforms["RenderTexture"], 0);
-	glUniform1f(colorFilterUniforms["brightness"], tweaks.getBrightness());
-	glUniform1f(colorFilterUniforms["contrast"], tweaks.getContrast());
-	float baseI = (tweaks.getContrastBaseR() + tweaks.getContrastBaseG() + tweaks.getContrastBaseB()) / 3.0f;
-	baseI = tweaks.getContrastBaseIntensity() / ((baseI < 0.001f) ? 0.001f : baseI);
-	float baseR = tweaks.getContrastBaseR() * baseI;
-	float baseG = tweaks.getContrastBaseG() * baseI;
-	float baseB = tweaks.getContrastBaseB() * baseI;
-	glUniform3f(colorFilterUniforms["contrastBase"], baseR, baseG, baseB);
-	glUniform1f(colorFilterUniforms["saturation"], tweaks.getSaturation());
-	glUniform3f(colorFilterUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B);
 	
-	LLGLEnable blend(GL_BLEND);
-	gGL.setSceneBlendType(LLRender::BT_REPLACE);
-	LLGLDepthTest depth(GL_FALSE);
-		
-	/// Draw a screen space quad
-	drawOrthoQuad(screenW, screenH, QUAD_NORMAL);
-	gPostColorFilterProgram.unbind();
-	*/
 }
 
 void LLPostProcess::createColorFilterShader(void)
@@ -274,40 +246,7 @@ void LLPostProcess::createColorFilterShader(void)
 
 void LLPostProcess::applyNightVisionShader(void)
 {	
-	/*  Do nothing.  Needs to be updated to use our current shader system, and to work with the move into llrender.
-	gPostNightVisionProgram.bind();
-
-	gGL.getTexUnit(0)->activate();
-	gGL.getTexUnit(0)->enable(LLTexUnit::TT_RECT_TEXTURE);
-
-	getShaderUniforms(nightVisionUniforms, gPostNightVisionProgram.mProgramObject);
-	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, sceneRenderTexture);
-	glUniform1i(nightVisionUniforms["RenderTexture"], 0);
-
-	gGL.getTexUnit(1)->activate();
-	gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);	
-
-	gGL.getTexUnit(1)->bindManual(LLTexUnit::TT_TEXTURE, noiseTexture);
-	glUniform1i(nightVisionUniforms["NoiseTexture"], 1);
-
-	
-	glUniform1f(nightVisionUniforms["brightMult"], tweaks.getBrightMult());
-	glUniform1f(nightVisionUniforms["noiseStrength"], tweaks.getNoiseStrength());
-	noiseTextureScale = 0.01f + ((101.f - tweaks.getNoiseSize()) / 100.f);
-	noiseTextureScale *= (screenH / NOISE_SIZE);
-
-
-	glUniform3f(nightVisionUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B);
 	
-	LLGLEnable blend(GL_BLEND);
-	gGL.setSceneBlendType(LLRender::BT_REPLACE);
-	LLGLDepthTest depth(GL_FALSE);
-		
-	/// Draw a screen space quad
-	drawOrthoQuad(screenW, screenH, QUAD_NOISE);
-	gPostNightVisionProgram.unbind();
-	gGL.getTexUnit(0)->activate();
-	*/
 }
 
 void LLPostProcess::createNightVisionShader(void)
@@ -396,78 +335,7 @@ void LLPostProcess::copyFrameBuffer(U32 & texture, unsigned int width, unsigned
 
 void LLPostProcess::drawOrthoQuad(unsigned int width, unsigned int height, QuadType type)
 {
-#if 0
-	float noiseX = 0.f;
-	float noiseY = 0.f;
-	float screenRatio = 1.0f;
-
-	if (type == QUAD_NOISE){
-		noiseX = ((float) rand() / (float) RAND_MAX);
-		noiseY = ((float) rand() / (float) RAND_MAX);
-		screenRatio = (float) width / (float) height;
-	}
-	
-
-	glBegin(GL_QUADS);
-		if (type != QUAD_BLOOM_EXTRACT){
-			glMultiTexCoord2f(GL_TEXTURE0, 0.f, (GLfloat) height);
-		} else {
-			glMultiTexCoord2f(GL_TEXTURE0, 0.f, (GLfloat) height * 2.0f);
-		}
-		if (type == QUAD_NOISE){
-			glMultiTexCoord2f(GL_TEXTURE1,
-									noiseX,
-									noiseTextureScale + noiseY);
-		} else if (type == QUAD_BLOOM_COMBINE){
-			glMultiTexCoord2f(GL_TEXTURE1, 0.f, (GLfloat) height * 0.5f);
-		}
-		glVertex2f(0.f, (GLfloat) screenH - height);
-
-		if (type != QUAD_BLOOM_EXTRACT){
-			glMultiTexCoord2f(GL_TEXTURE0, 0.f, 0.f);
-		} else {
-			glMultiTexCoord2f(GL_TEXTURE0, 0.f, 0.f);
-		}
-		if (type == QUAD_NOISE){
-			glMultiTexCoord2f(GL_TEXTURE1,
-									noiseX,
-									noiseY);
-		} else if (type == QUAD_BLOOM_COMBINE){
-			glMultiTexCoord2f(GL_TEXTURE1, 0.f, 0.f);
-		}
-		glVertex2f(0.f, (GLfloat) height + (screenH - height));
 
-		
-		if (type != QUAD_BLOOM_EXTRACT){
-			glMultiTexCoord2f(GL_TEXTURE0, (GLfloat) width, 0.f);
-		} else {
-			glMultiTexCoord2f(GL_TEXTURE0, (GLfloat) width * 2.0f, 0.f);
-		}
-		if (type == QUAD_NOISE){
-			glMultiTexCoord2f(GL_TEXTURE1,
-									screenRatio * noiseTextureScale + noiseX,
-									noiseY);
-		} else if (type == QUAD_BLOOM_COMBINE){
-			glMultiTexCoord2f(GL_TEXTURE1, (GLfloat) width * 0.5f, 0.f);
-		}
-		glVertex2f((GLfloat) width, (GLfloat) height + (screenH - height));
-
-		
-		if (type != QUAD_BLOOM_EXTRACT){
-			glMultiTexCoord2f(GL_TEXTURE0, (GLfloat) width, (GLfloat) height);
-		} else {
-			glMultiTexCoord2f(GL_TEXTURE0, (GLfloat) width * 2.0f, (GLfloat) height * 2.0f);
-		}
-		if (type == QUAD_NOISE){
-			glMultiTexCoord2f(GL_TEXTURE1,
-									screenRatio * noiseTextureScale + noiseX,
-									noiseTextureScale + noiseY);
-		} else if (type == QUAD_BLOOM_COMBINE){
-			glMultiTexCoord2f(GL_TEXTURE1, (GLfloat) width * 0.5f, (GLfloat) height * 0.5f);
-		}
-		glVertex2f((GLfloat) width, (GLfloat) screenH - height);
-	glEnd();
-#endif
 }
 
 void LLPostProcess::viewOrthogonal(unsigned int width, unsigned int height)
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index e9daf7cb755..646c9a821b1 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -254,14 +254,6 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)
 		}
 	}
 
-    if (features->hasIndirect)
-	{
-        if (!shader->attachFragmentObject("deferred/indirect.glsl"))
-		{
-			return FALSE;
-		}
-	}
-
 	if (features->hasGamma || features->isDeferred)
 	{
         if (!shader->attachFragmentObject("windlight/gammaF.glsl"))
@@ -624,7 +616,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
         */
 
  		LL_DEBUGS("ShaderLoading") << "Looking in " << open_file_name << LL_ENDL;
-		file = LLFile::fopen(open_file_name, "r");		/* Flawfinder: ignore */
+		file = LLFile::fopen(open_file_name, "r+");		/* Flawfinder: ignore */
 		if (file)
 		{
 			LL_DEBUGS("ShaderLoading") << "Loading file: " << open_file_name << " (Want class " << gpu_class << ")" << LL_ENDL;            
@@ -875,6 +867,13 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 	
 	GLuint out_of_extra_block_counter = 0, start_shader_code = shader_code_count, file_lines_count = 0;
 	
+#define TOUCH_SHADERS 0
+
+#if TOUCH_SHADERS
+    const char* marker = "// touched";
+    bool touched = false;
+#endif
+
 	while(NULL != fgets((char *)buff, 1024, file)
 		  && shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text)))
 	{
@@ -882,6 +881,13 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 
 		bool extra_block_area_found = NULL != strstr((const char*)buff, "[EXTRA_CODE_HERE]");
 		
+#if TOUCH_SHADERS
+        if (NULL != strstr((const char*)buff, marker))
+        {
+            touched = true;
+        }
+#endif
+
 		if(extra_block_area_found && !(flag_extra_block_marker_was_found & flags))
 		{
 			if(!(flag_write_to_out_of_extra_block_area & flags))
@@ -944,6 +950,13 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 		extra_code_count = 0;
 	}
 
+#if TOUCH_SHADERS
+    if (!touched)
+    {
+        fprintf(file, "\n%s\n", marker);
+    }
+#endif
+
 	fclose(file);
 
 	//create shader object
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
deleted file mode 100644
index f4ec1ec532e..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ /dev/null
@@ -1,35 +0,0 @@
-/** 
- * @file alphaF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-//class1/deferred/alphaF.glsl
-
-
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(1,0,1,0.5);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl
deleted file mode 100644
index 850f7ebb382..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl
+++ /dev/null
@@ -1,34 +0,0 @@
-/** 
- * @file fullbrightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-//debug stub
-
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(0.25, 0.5, 0, 1.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/deferred/indirect.glsl b/indra/newview/app_settings/shaders/class1/deferred/indirect.glsl
deleted file mode 100644
index 49bfa660f84..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/indirect.glsl
+++ /dev/null
@@ -1,30 +0,0 @@
-/** 
- * @file class1/deferred/indirect.glsl
- *
- * $LicenseInfo:firstyear=2018&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-vec3 getIndirect(vec3 ambient, vec3 norm, vec3 pos, vec2 pos_screen)
-{
-    return ambient;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
deleted file mode 100644
index 185c1150ef8..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
+++ /dev/null
@@ -1,40 +0,0 @@
-/** 
- * @file luminanceF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseMap;
-VARYING vec2 vary_fragcoord;
-
-void main() 
-{
-	frag_color = texture2D(diffuseMap, vary_fragcoord.xy);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
deleted file mode 100644
index 5488a63c6ac..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
+++ /dev/null
@@ -1,45 +0,0 @@
-/** 
- * @file giV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 modelview_projection_matrix;
- 
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec4 diffuse_color;
-
-VARYING vec2 vary_fragcoord;
-VARYING vec4 vertex_color;
-
-uniform vec2 screen_res;
-
-void main()
-{
-	//transform vertex
-	vec4 pos = modelview_projection_matrix * vec4(position.xyz, 1.0);
-	gl_Position = pos;
-	
-	vary_fragcoord = (pos.xy * 0.5 + 0.5);	
-
-	vertex_color = diffuse_color;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
deleted file mode 100644
index 51a36935f23..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
-* @file materialF.glsl
-*
-* $LicenseInfo:firstyear=2007&license=viewerlgpl$
-* Second Life Viewer Source Code
-* Copyright (C) 2007, Linden Research, Inc.
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU Lesser General Public
-* License as published by the Free Software Foundation;
-* version 2.1 of the License only.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this library; if not, write to the Free Software
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-*
-* Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
-* $/LicenseInfo$
-*/
-
-
-/*[EXTRA_CODE_HERE]*/
-
-//class1/deferred/materialF.glsl
-
-// Debug stub for non-pbr material
-
-#define DIFFUSE_ALPHA_MODE_BLEND    1
-
-#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND)
-out vec4 frag_color;
-#else
-out vec4 frag_data[4];
-#endif
-
-void main()
-{
-#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND)
-    frag_color = vec4(1, 0, 0, 0.5);
-#else
-    // emissive red PBR material
-    frag_data[0] = vec4(0, 0, 0, 0);
-    frag_data[1] = vec4(0, 0, 0, 0);
-    frag_data[2] = vec4(1, 0, 0, GBUFFER_FLAG_HAS_PBR);
-    frag_data[3] = vec4(1, 0, 0, 0);
-#endif
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
deleted file mode 100644
index 8fdb5e7154b..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * @file class1/deferred/multiPointLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
- // debug stub
-
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(0.5, 0.5, 0.0, 0.0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
deleted file mode 100644
index d71dc764232..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/** 
- * @file multiPointLightV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-ATTRIBUTE vec3 position;
-
-VARYING vec4 vary_fragcoord;
-
-void main()
-{
-	//transform vertex
-	vec4 pos = vec4(position.xyz, 1.0);
-	vary_fragcoord = pos;
-
-	gl_Position = pos;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
deleted file mode 100644
index e9dac711c31..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ /dev/null
@@ -1,283 +0,0 @@
-/** 
- * @file multiSpotLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-
-//class 1 -- no shadows
-
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D depthMap;
-uniform sampler2D normalMap;
-uniform sampler2D noiseMap;
-uniform sampler2D projectionMap;
-uniform sampler2D lightFunc;
-
-uniform mat4 proj_mat; //screen space to light space
-uniform float proj_near; //near clip for projection
-uniform vec3 proj_p; //plane projection is emitting from (in screen space)
-uniform vec3 proj_n;
-uniform float proj_focus; //distance from plane to begin blurring
-uniform float proj_lod;  //(number of mips in proj map)
-uniform float proj_range; //range between near clip and far clip plane of projection
-uniform float proj_ambient_lod;
-uniform float proj_ambiance;
-uniform float near_clip;
-uniform float far_clip;
-
-uniform vec3 proj_origin; //origin of projection to be used for angular attenuation
-uniform float sun_wash;
-
-uniform vec3 center;
-uniform vec3 color;
-uniform float falloff;
-uniform float size;
-
-VARYING vec4 vary_fragcoord;
-uniform vec2 screen_res;
-
-uniform mat4 inv_proj;
-vec3 getNorm(vec2 pos_screen);
-vec3 srgb_to_linear(vec3 c);
-float getDepth(vec2 tc);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-    
-    d *= min(1, d * (proj_lod - lod));
-	
-	float edge = 0.25*det;
-    
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-	
-	float edge = 0.25*det;
-		
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = tc-vec2(0.5);
-	
-	float d = dot(dist,dist);
-		
-	ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
-	
-	return ret;
-}
-
-vec4 getPosition(vec2 pos_screen);
-
-void main() 
-{
-	vec3 col = vec3(0,0,0);
-
-#if defined(LOCAL_LIGHT_KILL)
-    discard;
-#else
-	vec4 frag = vary_fragcoord;
-	frag.xyz /= frag.w;
-	frag.xyz = frag.xyz*0.5+0.5;
-	
-	vec3 pos = getPosition(frag.xy).xyz;
-	vec3 lv = center.xyz-pos.xyz;
-	float dist = length(lv);
-	dist /= size;
-	if (dist > 1.0)
-	{
-		discard;
-	}
-		
-	float envIntensity = texture2D(normalMap, frag.xy).z;
-	vec3 norm = getNorm(frag.xy);
-
-	float l_dist = -dot(lv, proj_n);
-	
-	vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0));
-	if (proj_tc.z < 0.0)
-	{
-		discard;
-	}
-	
-	proj_tc.xyz /= proj_tc.w;
-	
-	float fa = falloff+1.0;
-	float dist_atten = clamp(1.0-(dist-1.0*(1.0-fa))/fa, 0.0, 1.0);
-	dist_atten *= dist_atten;
-	dist_atten *= 2.0;
-	
-
-	if (dist_atten <= 0.0)
-	{
-		discard;
-	}
-	
-	float noise = texture2D(noiseMap, frag.xy).b;
-	dist_atten *= noise;
-
-	lv = proj_origin-pos.xyz;
-	lv = normalize(lv);
-	float da = dot(norm, lv);
-		
-		
-	vec3 diff_tex = texture2D(diffuseRect, frag.xy).rgb;
-
-	vec3 dlit = vec3(0, 0, 0);
-	
-	
-	if (proj_tc.z > 0.0 &&
-		proj_tc.x < 1.0 &&
-		proj_tc.y < 1.0 &&
-		proj_tc.x > 0.0 &&
-		proj_tc.y > 0.0)
-	{
-		float lit = 0.0;
-		float amb_da = proj_ambiance;
-		
-		if (da > 0.0)
-		{
-			float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
-			float lod = diff * proj_lod;
-			
-			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
-		
-			dlit = color.rgb * plcol.rgb * plcol.a;
-			
-			lit = da * dist_atten;
-			
-			col = dlit*lit*diff_tex;
-			amb_da += (da*0.5)*proj_ambiance;
-		}
-		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
-		vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
-							
-		amb_da += (da*da*0.5+0.5)*proj_ambiance;
-				
-		amb_da *= dist_atten * noise;
-			
-		amb_da = min(amb_da, 1.0-lit);
-		col += amb_da*color.rgb*diff_tex*amb_plcol.rgb*amb_plcol.a;
-	}
-	
-	
-	vec4 spec = texture2D(specularRect, frag.xy);
-	
-	if (spec.a > 0.0)
-	{
-		dlit *= min(da*6.0, 1.0) * dist_atten;
-
-		vec3 npos = -normalize(pos);
-
-		//vec3 ref = dot(pos+lv, norm);
-		vec3 h = normalize(lv+npos);
-		float nh = dot(norm, h);
-		float nv = dot(norm, npos);
-		float vh = dot(npos, h);
-		float sa = nh;
-		float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
-
-		float gtdenom = 2 * nh;
-		float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
-
-		if (nh > 0.0)
-		{
-			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
-			col += dlit*scol*spec.rgb;
-			//col += spec.rgb;
-		}
-	}
-
-	if (envIntensity > 0.0)
-	{
-		vec3 ref = reflect(normalize(pos), norm);
-		
-		//project from point pos in direction ref to plane proj_p, proj_n
-		vec3 pdelta = proj_p-pos;
-		float ds = dot(ref, proj_n);
-		
-		if (ds < 0.0)
-		{
-			vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds;
-			
-			vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0));
-            
-			if (stc.z > 0.0)
-			{
-                stc /= stc.w;
-								
-				if (stc.x < 1.0 &&
-					stc.y < 1.0 &&
-					stc.x > 0.0 &&
-					stc.y > 0.0)
-				{
-					col += color.rgb * texture2DLodSpecular(projectionMap, stc.xy, (1 - spec.a) * (proj_lod * 0.6)).rgb * envIntensity;
-				}
-			}
-		}
-	}
-#endif
-
-	//output linear, sum of lights will be gamma corrected later	
-	frag_color.rgb = col;	
-	frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbralphaF.glsl
deleted file mode 100644
index fc1024f4f12..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/pbralphaF.glsl
+++ /dev/null
@@ -1,34 +0,0 @@
-/** 
- * @file class1\deferred\pbralphaF.glsl
- *
- * $LicenseInfo:firstyear=2022&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2022, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(0,1,0,0.5);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
deleted file mode 100644
index a025c4a1b49..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-/** 
- * @file class1\deferred\pointLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// debug stub 
-out vec4 frag_color;
-
-void main() 
-{
-    frag_color = vec4(0.0, 0.5, 0.5, 0.0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
deleted file mode 100644
index 3da85314428..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
+++ /dev/null
@@ -1,45 +0,0 @@
-/** 
- * @file pointLightV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 modelview_projection_matrix;
-uniform mat4 modelview_matrix;
-
-ATTRIBUTE vec3 position;
-
-uniform vec3 center;
-uniform float size;
-
-VARYING vec4 vary_fragcoord;
-VARYING vec3 trans_center;
-
-void main()
-{
-	//transform vertex
-	vec3 p = position*size+center;
-	vec4 pos = modelview_projection_matrix * vec4(p.xyz, 1.0);
-	vary_fragcoord = pos;
-	trans_center = (modelview_matrix*vec4(center.xyz, 1.0)).xyz;
-	gl_Position = pos;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
deleted file mode 100644
index 8111f43c28e..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
+++ /dev/null
@@ -1,99 +0,0 @@
-/** 
- * @file postgiF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
- #ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
- 
-uniform sampler2D depthMap;
-uniform sampler2D normalMap;
-uniform sampler2D giLightMap;
-uniform sampler2D	noiseMap;
-
-uniform vec2 kern[32];
-uniform float dist_factor;
-uniform float blur_size;
-uniform vec2 delta;
-uniform int kern_length;
-uniform float kern_scale;
-uniform vec3 blur_quad;
-
-VARYING vec2 vary_fragcoord;
-
-uniform mat4 inv_proj;
-uniform vec2 screen_res;
-
-vec4 getPosition(vec2 pos_screen);
-
-void main() 
-{
-	vec3 norm = texture2D(normalMap, vary_fragcoord.xy).xyz;
-	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
-	vec3 pos = getPosition(vary_fragcoord.xy).xyz;
-	
-	vec3 ccol = texture2D(giLightMap, vary_fragcoord.xy).rgb;
-	vec2 dlt = kern_scale * delta/(1.0+norm.xy*norm.xy);
-	dlt /= max(-pos.z*dist_factor, 1.0);
-	float defined_weight = kern[0].x;
-	vec3 col = vec3(0.0);
-	
-	for (int i = 0; i < kern_length; i++)
-	{
-		vec2 tc = vary_fragcoord.xy + kern[i].y*dlt;
-		vec3 sampNorm = texture2D(normalMap, tc.xy).xyz;
-		sampNorm = vec3((sampNorm.xy-0.5)*2.0,sampNorm.z); // unpack norm
-	    
-		float d = dot(norm.xyz, sampNorm);
-		
-		if (d > 0.8)
-		{
-			vec3 samppos = getPosition(tc.xy).xyz;
-			samppos -= pos;
-			if (dot(samppos,samppos) < -0.05*pos.z)
-			{
-	    		col += texture2D(giLightMap, tc).rgb*kern[i].x;
-				defined_weight += kern[i].x;
-			}
-		}
-	}
-
-	col /= defined_weight;
-	
-	//col = ccol;
-	
-	col = col*col*blur_quad.x + col*blur_quad.y + blur_quad.z;
-	
-	frag_color.rgb = col;
-
-#ifdef IS_AMD_CARD
-	// If it's AMD make sure the GLSL compiler sees the arrays referenced once by static index. Otherwise it seems to optimise the storage awawy which leads to unfun crashes and artifacts.
-	vec2 dummy1 = kern[0];
-	vec2 dummy2 = kern[31];
-#endif
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/reflectionProbeF.glsl
deleted file mode 100644
index 2ffe6885242..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/reflectionProbeF.glsl
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file class1/deferred/reflectionProbeF.glsl
- *
- * $LicenseInfo:firstyear=2022&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2022, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// fallback stub -- will be used if actual reflection probe shader failed to load (output pink so it's obvious)
-void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
-        vec2 tc, vec3 pos, vec3 norm, float glossiness, bool errorCorrect)
-{
-    ambenv = vec3(1,0,1);
-    glossenv = vec3(1,0,1);
-}
-
-void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
-    vec2 tc, vec3 pos, vec3 norm, float glossiness)
-{
-    sampleReflectionProbes(ambenv, glossenv,
-        pos, norm, glossiness, false);
-}
-
-vec4 sampleReflectionProbesDebug(vec3 pos)
-{
-    //output green to debug display
-    return vec4(0, 1, 0, 0.5);
-}
-
-void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout vec3 legacyenv, 
-        vec3 pos, vec3 norm, float glossiness, float envIntensity)
-{
-    ambenv = vec3(1,0,1);
-    glossenv = vec3(1,0,1);
-    legacyenv = vec3(1,0,1);
-}
-
-void applyGlossEnv(inout vec3 color, vec3 glossenv, vec4 spec, vec3 pos, vec3 norm)
-{
-    
-}
-
-void applyLegacyEnv(inout vec3 color, vec3 legacyenv, vec4 spec, vec3 pos, vec3 norm, float envIntensity)
-{
-
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostF.glsl b/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostF.glsl
deleted file mode 100644
index df16e7f0e74..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostF.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * @file class3/deferred/screenSpaceReflPostF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
- // debug stub
-
-out vec4 frag_color;
-
-void main() 
-{
-    frag_color = vec4(0.5, 0.4, 0.1, 0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostV.glsl b/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostV.glsl
deleted file mode 100644
index 966e7e1cbb5..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/screenSpaceReflPostV.glsl
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * @file class3/deferred/screenSpaceReflPostV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-ATTRIBUTE vec3 position;
-
-uniform vec2 screen_res;
-
-VARYING vec2 vary_fragcoord;
-
-void main()
-{
-	//transform vertex
-	vec4 pos = vec4(position.xyz, 1.0);
-	gl_Position = pos; 
-    
-	vary_fragcoord = pos.xy * 0.5 + 0.5;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
deleted file mode 100644
index 152402907b9..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ /dev/null
@@ -1,165 +0,0 @@
-/** 
- * @file class1/deferred/softenLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D normalMap;
-uniform sampler2D lightMap;
-uniform sampler2D depthMap;
-uniform samplerCube environmentMap;
-uniform sampler2D     lightFunc;
-
-uniform float blur_size;
-uniform float blur_fidelity;
-
-// Inputs
-uniform mat3 env_mat;
-
-uniform vec3 sun_dir;
-uniform vec3 moon_dir;
-uniform int sun_up_factor;
-VARYING vec2 vary_fragcoord;
-
-uniform mat4 inv_proj;
-uniform vec2 screen_res;
-
-vec3 getNorm(vec2 pos_screen);
-vec4 getPositionWithDepth(vec2 pos_screen, float depth);
-float getDepth(vec2 pos_screen);
-
-void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten, bool use_ao);
-float getAmbientClamp();
-vec3 atmosFragLighting(vec3 l, vec3 additive, vec3 atten);
-vec3 scaleSoftClipFrag(vec3 l);
-vec3 fullbrightAtmosTransportFrag(vec3 light, vec3 additive, vec3 atten);
-vec3 fullbrightScaleSoftClip(vec3 light);
-
-vec3 linear_to_srgb(vec3 c);
-vec3 srgb_to_linear(vec3 c);
-
-#ifdef WATER_FOG
-vec4 applyWaterFogView(vec3 pos, vec4 color);
-#endif
-
-void main() 
-{
-    vec2 tc = vary_fragcoord.xy;
-    float depth = getDepth(tc);
-    vec4 pos = getPositionWithDepth(tc, depth);
-    vec4 norm = texture2D(normalMap, tc);
-    float envIntensity = norm.z;
-    norm.xyz = getNorm(tc);
-    
-    vec3 light_dir = (sun_up_factor == 1) ? sun_dir : moon_dir;
-    float da = clamp(dot(norm.xyz, light_dir.xyz), 0.0, 1.0);
-    float light_gamma = 1.0/1.3;
-    da = pow(da, light_gamma);
-    
-    vec4 diffuse = texture2D(diffuseRect, tc);
-
-    //convert to gamma space
-    diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14035
-
-    vec4 spec = texture2D(specularRect, vary_fragcoord.xy);
-    vec3 color = vec3(0);
-    float bloom = 0.0;
-    {
-        float ambocc = 1.0; // no AO...
-
-        vec3 sunlit;
-        vec3 amblit;
-        vec3 additive;
-        vec3 atten;
-    
-        calcAtmosphericVars(pos.xyz, light_dir, ambocc, sunlit, amblit, additive, atten, false);
-
-        color.rgb = amblit;
-
-        float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0);
-        ambient *= 0.5;
-        ambient *= ambient;
-        ambient = (1.0 - ambient);
-
-        color.rgb *= ambient;
-
-        vec3 sun_contrib = da * sunlit;
-
-        color.rgb += sun_contrib;
-
-        color.rgb *= diffuse.rgb;
-
-        vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
-
-        if (spec.a > 0.0) // specular reflection
-        {
-            float sa        = dot(refnormpersp, light_dir.xyz);
-            vec3  dumbshiny = sunlit * (texture2D(lightFunc, vec2(sa, spec.a)).r);
-
-            // add the two types of shiny together
-            vec3 spec_contrib = dumbshiny * spec.rgb;
-            bloom             = dot(spec_contrib, spec_contrib) / 6;
-            color.rgb += spec_contrib;
-        }
-
-       color.rgb = mix(color.rgb, diffuse.rgb, diffuse.a);
-
-        if (envIntensity > 0.0)
-        { //add environmentmap
-            vec3 env_vec = env_mat * refnormpersp;
-            vec3 reflected_color = textureCube(environmentMap, env_vec).rgb;
-            color = mix(color.rgb, reflected_color, envIntensity);
-        }
-       
-        if (GET_GBUFFER_FLAG(GBUFFER_FLAG_HAS_ATMOS))
-        {
-            color = mix(atmosFragLighting(color, additive, atten), fullbrightAtmosTransportFrag(color, additive, atten), diffuse.a);
-            color = mix(scaleSoftClipFrag(color), fullbrightScaleSoftClip(color), diffuse.a);
-        }
-
-        #ifdef WATER_FOG
-            vec4 fogged = applyWaterFogView(pos.xyz,vec4(color, bloom));
-            color = fogged.rgb;
-            bloom = fogged.a;
-        #endif
-
-    }
-
-    // convert to linear as fullscreen lights need to sum in linear colorspace
-    // and will be gamma (re)corrected downstream...
-    
-    frag_color.rgb = srgb_to_linear(color.rgb);
-    frag_color.a = bloom;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
deleted file mode 100644
index 23ad332db44..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file softenLightV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-ATTRIBUTE vec3 position;
-
-uniform vec2 screen_res;
-
-void setAtmosAttenuation(vec3 c);
-void setAdditiveColor(vec3 c);
-
-VARYING vec2 vary_fragcoord;
-void main()
-{
-    //transform vertex
-    vec4 pos = vec4(position.xyz, 1.0);
-    gl_Position = pos; 
-    // appease OSX GLSL compiler/linker by touching all the varyings we said we would
-    setAtmosAttenuation(vec3(1));
-    setAdditiveColor(vec3(0));
-    vary_fragcoord = (pos.xy*0.5+0.5);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
deleted file mode 100644
index 0376f423195..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ /dev/null
@@ -1,278 +0,0 @@
-/** 
- * @file spotLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-//class 1 -- no shadows
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D depthMap;
-uniform sampler2D normalMap;
-uniform samplerCube environmentMap;
-uniform sampler2D noiseMap;
-uniform sampler2D projectionMap;
-uniform sampler2D lightFunc;
-
-uniform mat4 proj_mat; //screen space to light space
-uniform float proj_near; //near clip for projection
-uniform vec3 proj_p; //plane projection is emitting from (in screen space)
-uniform vec3 proj_n;
-uniform float proj_focus; //distance from plane to begin blurring
-uniform float proj_lod;  //(number of mips in proj map)
-uniform float proj_range; //range between near clip and far clip plane of projection
-uniform float proj_ambient_lod;
-uniform float proj_ambiance;
-uniform float near_clip;
-uniform float far_clip;
-
-uniform vec3 proj_origin; //origin of projection to be used for angular attenuation
-uniform float sun_wash;
-
-uniform float size;
-uniform vec3 color;
-uniform float falloff;
-
-VARYING vec3 trans_center;
-VARYING vec4 vary_fragcoord;
-uniform vec2 screen_res;
-
-uniform mat4 inv_proj;
-
-vec3 getNorm(vec2 pos_screen);
-vec3 srgb_to_linear(vec3 c);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-    
-    d *= min(1, d * (proj_lod - lod));
-	
-	float edge = 0.25*det;
-    
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-	
-	float edge = 0.25*det;
-		
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = tc-vec2(0.5);
-	
-	float d = dot(dist,dist);
-		
-	ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
-	
-	return ret;
-}
-
-vec4 getPosition(vec2 pos_screen);
-
-void main() 
-{
-	vec3 col = vec3(0,0,0);
-
-#if defined(LOCAL_LIGHT_KILL)
-    discard;
-#else
-	vec4 frag = vary_fragcoord;
-	frag.xyz /= frag.w;
-	frag.xyz = frag.xyz*0.5+0.5;
-	
-	vec3 pos = getPosition(frag.xy).xyz;
-	vec3 lv = trans_center.xyz-pos.xyz;
-	float dist = length(lv);
-	dist /= size;
-	if (dist > 1.0)
-	{
-		discard;
-	}
-		
-	vec3 norm = texture2D(normalMap, frag.xy).xyz;
-	float envIntensity = norm.z;
-	norm = getNorm(frag.xy);
-	norm = normalize(norm);
-	float l_dist = -dot(lv, proj_n);
-	
-	vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0));
-	if (proj_tc.z < 0.0)
-	{
-		discard;
-	}
-	
-	proj_tc.xyz /= proj_tc.w;
-	
-	float fa = falloff+1.0;
-	float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
-	dist_atten *= dist_atten;
-	dist_atten *= 2.0;
-
-	if (dist_atten <= 0.0)
-	{
-		discard;
-	}
-	
-	lv = proj_origin-pos.xyz;
-	lv = normalize(lv);
-	float da = dot(norm, lv);
-		
-	vec3 diff_tex = texture2D(diffuseRect, frag.xy).rgb;
-	//light shaders output linear and are gamma corrected later in postDeferredGammaCorrectF.glsl
-    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);
-
-	vec4 spec = texture2D(specularRect, frag.xy);
-
-	float noise = texture2D(noiseMap, frag.xy).b;
-	vec3 dlit = vec3(0, 0, 0);
-	
-	if (proj_tc.z > 0.0 &&
-		proj_tc.x < 1.0 &&
-		proj_tc.y < 1.0 &&
-		proj_tc.x > 0.0 &&
-		proj_tc.y > 0.0)
-	{
-		float amb_da = proj_ambiance;
-		float lit = 0.0;
-		
-		if (da > 0.0)
-		{
-			lit = da * dist_atten * noise;
-
-			float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
-			float lod = diff * proj_lod;
-			
-			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
-			dlit = color.rgb * plcol.rgb * plcol.a;
-			
-			col = dlit*lit*diff_tex;
-			//amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;
-		}
-		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
-		vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
-							
-		amb_da += (da*da*0.5+0.5)*proj_ambiance;
-				
-		amb_da *= dist_atten * noise;
-			
-		amb_da = min(amb_da, 1.0-lit);
-		col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a*diff_tex.rgb;
-	}
-
-	if (spec.a > 0.0)
-	{
-		dlit *= min(da*6.0, 1.0) * dist_atten;
-		vec3 npos = -normalize(pos);
-
-		//vec3 ref = dot(pos+lv, norm);
-		vec3 h = normalize(lv+npos);
-		float nh = dot(norm, h);
-		float nv = dot(norm, npos);
-		float vh = dot(npos, h);
-		float sa = nh;
-		float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
-
-		float gtdenom = 2 * nh;
-		float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
-								
-		if (nh > 0.0)
-		{
-			
-			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
-			col += dlit*scol*spec.rgb;
-			//col += spec.rgb;
-		}
-	}	
-
-	if (envIntensity > 0.0)
-	{
-		vec3 ref = reflect(normalize(pos), norm);
-		
-		//project from point pos in direction ref to plane proj_p, proj_n
-		vec3 pdelta = proj_p-pos;
-		float ds = dot(ref, proj_n);
-		
-		if (ds < 0.0)
-		{
-			vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds;
-			
-			vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0));
-
-			if (stc.z > 0.0)
-			{
-				stc /= stc.w;
-								
-				if (stc.x < 1.0 &&
-					stc.y < 1.0 &&
-					stc.x > 0.0 &&
-					stc.y > 0.0)
-				{
-					col += color.rgb * texture2DLodSpecular(projectionMap, stc.xy, (1 - spec.a) * (proj_lod * 0.6)).rgb * envIntensity;
-				}
-			}
-		}
-	}
-#endif
-
-	//col.r = 1.0;
-	frag_color.rgb = col;	
-	frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
deleted file mode 100644
index 7329efe3f79..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
+++ /dev/null
@@ -1,41 +0,0 @@
-/** 
- * @file sunLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-//class 1, no shadow, no SSAO, should never be called
-
-#extension GL_ARB_texture_rectangle : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-void main() 
-{
-	frag_color = vec4(0,0,0,0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
deleted file mode 100644
index 47e9d15fbcf..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/** 
- * @file sunLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 modelview_projection_matrix;
- 
-ATTRIBUTE vec3 position;
-
-uniform vec2 screen_res;
-
-void main()
-{
-	//transform vertex
-	vec4 pos = modelview_projection_matrix * vec4(position.xyz, 1.0);
-	gl_Position = pos; 
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
deleted file mode 100644
index d9a0b6c702b..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
+++ /dev/null
@@ -1,62 +0,0 @@
-/** 
- * @file sunLightSSAOF.glsl
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-#extension GL_ARB_texture_rectangle : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-//class 1 -- no shadow, SSAO only
-
-uniform sampler2D normalMap;
-
-// Inputs
-VARYING vec2 vary_fragcoord;
-
-vec3 getNorm(vec2 pos_screen);
-vec4 getPosition(vec2 pos_screen);
-
-//calculate decreases in ambient lighting when crowded out (SSAO)
-float calcAmbientOcclusion(vec4 pos, vec3 norm, vec2 pos_screen);
-
-void main() 
-{
-	vec2 pos_screen = vary_fragcoord.xy;
-	
-	//try doing an unproject here
-	
-	vec4 pos  = getPosition(pos_screen);
-	vec3 norm = getNorm(pos_screen);
-
-	frag_color[0] = 1.0;
-	frag_color[1] = calcAmbientOcclusion(pos, norm, pos_screen);
-	frag_color[2] = 1.0; 
-	frag_color[3] = 1.0;
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
deleted file mode 100644
index 9d70b9d98db..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
+++ /dev/null
@@ -1,39 +0,0 @@
-/** 
- * @file sunLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-ATTRIBUTE vec3 position;
-
-VARYING vec2 vary_fragcoord;
-
-uniform vec2 screen_res;
-
-void main()
-{
-	//transform vertex
-	vec4 pos = vec4(position.xyz, 1.0);
-	gl_Position = pos; 
-	
-	vary_fragcoord = (pos.xy * 0.5 + 0.5);	
-}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
deleted file mode 100644
index 876422f86b3..00000000000
--- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
+++ /dev/null
@@ -1,36 +0,0 @@
-/** 
- * @file class1/deferred/waterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// debug stub
-out vec4 frag_data[4];
-
-void main()
-{
-    // emissive blue PBR material
-    frag_data[0] = vec4(0, 0, 0, 0);
-    frag_data[1] = vec4(0, 0, 0, 0);
-    frag_data[2] = vec4(1, 0, 0, GBUFFER_FLAG_HAS_PBR);
-    frag_data[3] = vec4(0, 0, 1, 0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
deleted file mode 100644
index ad105c616c5..00000000000
--- a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * @file class1\environment\underWaterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-out vec4 frag_color;
-
-// debug stub
-void main() 
-{
-    frag_color = vec4(0, 1, 1, 0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
deleted file mode 100644
index 46a6c2021d9..00000000000
--- a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
+++ /dev/null
@@ -1,31 +0,0 @@
-/** 
- * @file waterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(0, 0, 1, 0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl b/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl
deleted file mode 100644
index 2b1e794b526..00000000000
--- a/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/** 
- * @file irradianceGenF.glsl
- *
- * $LicenseInfo:firstyear=2022&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2022, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-// debug stub
-
-out vec4 frag_color;
-
-void main()
-{
-    frag_color = vec4(0.5, 0, 0.5, 0);
-}
diff --git a/indra/newview/app_settings/shaders/class1/interface/reflectionprobeF.glsl b/indra/newview/app_settings/shaders/class1/interface/reflectionprobeF.glsl
deleted file mode 100644
index e2e0a2002bf..00000000000
--- a/indra/newview/app_settings/shaders/class1/interface/reflectionprobeF.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-/** 
- * @file reflectionprobeF.glsl
- *
- * $LicenseInfo:firstyear=2022&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2022, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// debug stub
-out vec4 frag_color;
-
-void main() 
-{
-	frag_color = vec4(0,1,0,0.5);
-}
diff --git a/indra/newview/app_settings/shaders/class1/interface/reflectionprobeV.glsl b/indra/newview/app_settings/shaders/class1/interface/reflectionprobeV.glsl
deleted file mode 100644
index 0efbd639445..00000000000
--- a/indra/newview/app_settings/shaders/class1/interface/reflectionprobeV.glsl
+++ /dev/null
@@ -1,34 +0,0 @@
-/** 
- * @file reflectionprobeV.glsl
- *
- * $LicenseInfo:firstyear=2022&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2011, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
- // Debug stub
-
-ATTRIBUTE vec3 position;
-
-void main()
-{
-    gl_Position = vec4(position, 1.0); 
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
deleted file mode 100644
index 092a7088dad..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
+++ /dev/null
@@ -1,59 +0,0 @@
-/** 
- * @file class1\lighting\lightFullbrightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-
-vec3 fullbrightShinyAtmosTransport(vec3 light);
-vec3 fullbrightScaleSoftClip(vec3 light);
-
-// See:
-//   class1\deferred\fullbrightShinyF.glsl
-//   class1\lighting\lightFullbrightShinyF.glsl
-void fullbright_shiny_lighting()
-{
-	vec4 color = diffuseLookup(vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a*0.75); // MAGIC NUMBER SL-12574; ALM: Off, Quality > Low
-
-	color.rgb = fullbrightShinyAtmosTransport(color.rgb);
-	color.rgb = fullbrightScaleSoftClip(color.rgb);
-
-	color.a = 1.0;
-
-	frag_color = color;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
deleted file mode 100644
index 31184533429..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
+++ /dev/null
@@ -1,58 +0,0 @@
-/** 
- * @file class1\lighting\lightFullbrightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-uniform sampler2D diffuseMap;
-
-vec3 fullbrightShinyAtmosTransport(vec3 light);
-vec3 fullbrightScaleSoftClip(vec3 light);
-
-void fullbright_shiny_lighting()
-{
-	vec4 color = texture2D(diffuseMap, vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = fullbrightShinyAtmosTransport(color.rgb);
-
-	color.rgb = fullbrightScaleSoftClip(color.rgb);
-
-	color.a = 1.0;
-
-	frag_color = color;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
deleted file mode 100644
index f78e5e0e8ae..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
+++ /dev/null
@@ -1,55 +0,0 @@
-/** 
- * @file class1\lighting\lightFullbrightShinyWaterF.glsl
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-
-vec3 fullbrightShinyAtmosTransport(vec3 light);
-vec3 fullbrightScaleSoftClip(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-void fullbright_shiny_lighting_water()
-{
-	vec4 color = diffuseLookup(vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = fullbrightShinyAtmosTransport(color.rgb);
-	color.rgb = fullbrightScaleSoftClip(color.rgb);
-	color.a = 1.0;
-
-	frag_color = applyWaterFog(color);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
deleted file mode 100644
index 90668bd2b6b..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
+++ /dev/null
@@ -1,56 +0,0 @@
-/** 
- * @file class1\lighting\lightFullbrightShinyWaterF.glsl
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-uniform sampler2D diffuseMap;
-
-vec3 fullbrightShinyAtmosTransport(vec3 light);
-vec3 fullbrightScaleSoftClip(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-void fullbright_shiny_lighting_water()
-{
-	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = fullbrightShinyAtmosTransport(color.rgb);
-	color.rgb = fullbrightScaleSoftClip(color.rgb);
-	color.a = 1.0;
-
-	frag_color = applyWaterFog(color);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
deleted file mode 100644
index cbbb206bc1f..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
+++ /dev/null
@@ -1,51 +0,0 @@
-/** 
- * @file class1\lighting\lightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-in vec4 vertex_color;
-in vec2 vary_texcoord0;
-in vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-
-vec3 scaleSoftClip(vec3 light);
-vec3 atmosLighting(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-vec4 shiny_lighting()
-{
-	vec4 color = diffuseLookup(vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a*0.75); // MAGIC NUMBER SL-12574; ALM: Off, Quality > Low
-
-	color.rgb = atmosLighting(color.rgb);
-
-	color.rgb = scaleSoftClip(color.rgb);
-	color.a = 1.0;
-	return color;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
deleted file mode 100644
index f2a46655143..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
+++ /dev/null
@@ -1,52 +0,0 @@
-/** 
- * @file class1\lighting\lightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
- 
-in vec4 vertex_color;
-in vec2 vary_texcoord0;
-in vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-uniform sampler2D diffuseMap;
-
-vec3 scaleSoftClip(vec3 light);
-vec3 atmosLighting(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-void shiny_lighting()
-{
-	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = atmosLighting(color.rgb);
-
-	color.rgb = scaleSoftClip(color.rgb);
-	color.a = 1.0;
-	return color;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
deleted file mode 100644
index 0f3371eba97..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
+++ /dev/null
@@ -1,53 +0,0 @@
-/** 
- * @file class1\lighting\lightShinyWaterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform samplerCube environmentMap;
-
-vec3 atmosLighting(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-void shiny_lighting_water()
-{
-	vec4 color = diffuseLookup(vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = atmosLighting(color.rgb);
-	color.a = 1.0;
-	frag_color = applyWaterFog(color);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
deleted file mode 100644
index c607fa64cb7..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-/** 
- * @file class1\lighting\lightShinyWaterNonIndexedF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-uniform sampler2D diffuseMap;
-uniform samplerCube environmentMap;
-
-vec3 atmosLighting(vec3 light);
-vec4 applyWaterFog(vec4 color);
-
-void shiny_lighting_water()
-{
-	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy);
-	color.rgb *= vertex_color.rgb;
-	
-	vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb;	
-	color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a);
-
-	color.rgb = atmosLighting(color.rgb);
-	color.a = 1.0;
-	frag_color = applyWaterFog(color);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
deleted file mode 100644
index 5e39d1629d2..00000000000
--- a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file class1\lighting\lightV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-// All lights, no specular highlights
-vec3 atmosAmbient();
-vec4 sumLights(vec3 pos, vec3 norm, vec4 color);
-float getAmbientClamp();
-
-vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)
-{
-	vec4 c = sumLights(pos, norm, color);
-
-#if !defined(AMBIENT_KILL)
-    c.rgb += atmosAmbient() * color.rgb * 0.5 * getAmbientClamp();
-#endif
-
-    return c;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl b/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
deleted file mode 100644
index d762239e511..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * @file emissiveV.glsl
- *
-  * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-void passTextureIndex();
-ATTRIBUTE vec4 emissive;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-void calcAtmospherics(vec3 inPositionEye);
-
-#ifdef HAS_SKIN
-mat4 getObjectSkinnedTransform();
-uniform mat4 projection_matrix;
-#endif
-
-void main()
-{
-	//transform vertex
-	passTextureIndex();
-
-#ifdef HAS_SKIN
-    mat4 mat = getObjectSkinnedTransform();
-    mat = modelview_matrix * mat;
-
-    vec4 pos = mat * vec4(position.xyz, 1.0);
-    gl_Position = projection_matrix * pos;
-#else
-	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0);
-    vec4 pos = (modelview_matrix * vec4(position.xyz, 1.0));
-#endif
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-	
-	
-	calcAtmospherics(pos.xyz);
-
-	vertex_color = emissive;
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
deleted file mode 100644
index 5d6f14230c7..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @file fullbrightNoColorV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-ATTRIBUTE vec3 normal;
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-
-void calcAtmospherics(vec3 inPositionEye);
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-	vec4 pos = (modelview_matrix * vert);
-	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-
-	calcAtmospherics(pos.xyz);
-
-	vertex_color = vec4(1,1,1,1);
-
-	
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
deleted file mode 100644
index b3126650328..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/** 
- * @file fullbrightShinyF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-void fullbright_shiny_lighting();
-
-void main() 
-{
-	fullbright_shiny_lighting();
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
deleted file mode 100644
index 891515ab1e2..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * @file fullbrightShinyV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 texture_matrix1;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-
-void calcAtmospherics(vec3 inPositionEye);
-
-uniform vec4 origin;
-
-
-
-ATTRIBUTE vec3 position;
-void passTextureIndex();
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec4 diffuse_color;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 vary_texcoord1;
-
-#ifdef HAS_SKIN
-mat4 getObjectSkinnedTransform();
-uniform mat4 projection_matrix;
-#endif
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-	passTextureIndex();
-
-#ifdef HAS_SKIN
-    mat4 mat = getObjectSkinnedTransform();
-    mat = modelview_matrix * mat;
-    vec4 pos = mat * vert;
-    gl_Position = projection_matrix * pos;
-	vec3 norm = normalize((mat*vec4(normal.xyz+position.xyz,1.0)).xyz-pos.xyz);
-#else
-	vec4 pos = (modelview_matrix * vert);
-	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
-	vec3 norm = normalize(normal_matrix * normal);
-#endif
-	vec3 ref = reflect(pos.xyz, -norm);
-
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-	vary_texcoord1 = (texture_matrix1 * vec4(ref,1.0)).xyz;
-
-	calcAtmospherics(pos.xyz);
-
-	vertex_color = diffuse_color;
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
deleted file mode 100644
index e1f3919907e..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-/** 
- * @file fullbrightShinyWaterF.glsl
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-void fullbright_shiny_lighting_water();
-
-void main() 
-{
-	fullbright_shiny_lighting_water();
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
deleted file mode 100644
index 5d0ea0a8ddd..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/** 
- * @file fullbrightWaterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-void fullbright_lighting_water();
-
-void main() 
-{
-	fullbright_lighting_water();
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
deleted file mode 100644
index e605676819a..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
+++ /dev/null
@@ -1,61 +0,0 @@
-/** 
- * @file simpleNonIndexedV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec4 diffuse_color;
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-
-vec4 calcLighting(vec3 pos, vec3 norm, vec4 color);
-void calcAtmospherics(vec3 inPositionEye);
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-	
-	gl_Position = modelview_projection_matrix*vert;
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0, 0, 1)).xy;
-	
-	vec4 pos = (modelview_matrix * vert);
-	
-	vec3 norm = normalize(normal_matrix * normal);
-
-	calcAtmospherics(pos.xyz);
-
-	vec4 color = calcLighting(pos.xyz, norm, diffuse_color);
-	vertex_color = color;
-
-	
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
deleted file mode 100644
index 945f80f31ec..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
+++ /dev/null
@@ -1,77 +0,0 @@
-/** 
- * @file simpleV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-void passTextureIndex();
-ATTRIBUTE vec2 texcoord0;
-ATTRIBUTE vec3 normal;
-
-uniform vec4 color;
-uniform vec4 object_plane_t;
-uniform vec4 object_plane_s;
-
-vec4 calcLighting(vec3 pos, vec3 norm, vec4 color);
-void calcAtmospherics(vec3 inPositionEye);
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-vec4 texgen_object(vec4  vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1)
-{
-	vec4 tcoord;
-	
-	tcoord.x = dot(vpos, tp0);
-	tcoord.y = dot(vpos, tp1);
-	tcoord.z = tc.z;
-	tcoord.w = tc.w;
-	
-	tcoord = mat * tcoord; 
-	
-	return tcoord; 
-}
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-	passTextureIndex();
-	vec4 pos = (modelview_matrix * vert);
-	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
-	vary_texcoord0.xy = texgen_object(vec4(position.xyz, 1.0), vec4(texcoord0,0,1), texture_matrix0, object_plane_s, object_plane_t).xy;
-		
-	vec3 norm = normalize(normal_matrix * normal);
-
-	calcAtmospherics(pos.xyz);
-
-	vec4 color = calcLighting(pos.xyz, norm, color);
-	vertex_color = color;
-
-	
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
deleted file mode 100644
index ad8179af297..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * @file simpleV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-void passTextureIndex();
-ATTRIBUTE vec2 texcoord0;
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec4 diffuse_color;
-
-vec4 calcLighting(vec3 pos, vec3 norm, vec4 color);
-void calcAtmospherics(vec3 inPositionEye);
-
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-#ifdef HAS_SKIN
-mat4 getObjectSkinnedTransform();
-uniform mat4 projection_matrix;
-#endif
-
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-
-	passTextureIndex();
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0, 0, 1)).xy;
-
-
-#ifdef HAS_SKIN
-    mat4 mat = getObjectSkinnedTransform();
-    mat = modelview_matrix * mat;
-
-    vec4 pos = mat * vert;
-    vec3 norm = normalize((mat*vec4(normal.xyz+vert.xyz,1.0)).xyz-pos.xyz);
-
-    gl_Position = projection_matrix * pos;
-#else
-	vec4 pos = (modelview_matrix * vert);
-	vec3 norm = normalize(normal_matrix * normal);
-    gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
-#endif
-
-	calcAtmospherics(pos.xyz);
-	vertex_color = calcLighting(pos.xyz, norm, diffuse_color);
-}
diff --git a/indra/newview/app_settings/shaders/class1/objects/treeV.glsl b/indra/newview/app_settings/shaders/class1/objects/treeV.glsl
deleted file mode 100644
index 0227e6e3b84..00000000000
--- a/indra/newview/app_settings/shaders/class1/objects/treeV.glsl
+++ /dev/null
@@ -1,59 +0,0 @@
-/** 
- * @file treeV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec4 diffuse_color;
-
-vec4 calcLighting(vec3 pos, vec3 norm, vec4 color);
-void calcAtmospherics(vec3 inPositionEye);
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-
-void main()
-{
-	//transform vertex
-	vec4 vert = vec4(position.xyz,1.0);
-	
-	gl_Position = modelview_projection_matrix*vert;
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0, 0, 1)).xy;
-	
-	vec4 pos = (modelview_matrix * vert);
-	
-	vec3 norm = normalize(normal_matrix * normal);
-
-	calcAtmospherics(pos.xyz);
-
-	vec4 color = calcLighting(pos.xyz, norm, diffuse_color);
-	vertex_color = color;
-}
diff --git a/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl b/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
deleted file mode 100644
index 449d8d8b4e3..00000000000
--- a/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * @file binormalV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-
-ATTRIBUTE vec4 tangent;
-
-VARYING vec4 tangent_out;
-
-void main()
-{
-	tangent_out = vec4(normal_matrix * tangent.xyz), tangent.w);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/transform/colorV.glsl b/indra/newview/app_settings/shaders/class1/transform/colorV.glsl
deleted file mode 100644
index 59c4a7d8958..00000000000
--- a/indra/newview/app_settings/shaders/class1/transform/colorV.glsl
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * @file colorV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform int color_in;
-
-ATTRIBUTE vec3 position;
-
-VARYING int color_out;
-
-void main()
-{
-	color_out = color_in;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/transform/normalV.glsl b/indra/newview/app_settings/shaders/class1/transform/normalV.glsl
deleted file mode 100644
index a213aa0ae85..00000000000
--- a/indra/newview/app_settings/shaders/class1/transform/normalV.glsl
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * @file normalV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-
-ATTRIBUTE vec3 normal;
-
-VARYING vec4 normal_out;
-
-void main()
-{
-	normal_out = vec4(normalize(normal_matrix * normal), 0.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/transform/positionV.glsl b/indra/newview/app_settings/shaders/class1/transform/positionV.glsl
deleted file mode 100644
index 01eed18de43..00000000000
--- a/indra/newview/app_settings/shaders/class1/transform/positionV.glsl
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * @file positionV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat4 modelview_matrix;
-
-uniform int texture_index_in;
-
-ATTRIBUTE vec3 position;
-
-VARYING vec3 position_out;
-VARYING int texture_index_out;
-
-void main()
-{
-	texture_index_out = texture_index_in;
-	position_out = (modelview_matrix*vec4(position, 1.0)).xyz;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl b/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
deleted file mode 100644
index 0e074f3cec6..00000000000
--- a/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * @file texcoordV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec2 texcoord_out;
-
-void main()
-{
-	texcoord_out = texcoord0;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
deleted file mode 100644
index 4e0618e2761..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
+++ /dev/null
@@ -1,48 +0,0 @@
-/** 
- * @file class1\windlight\atmosphericsF.glsl
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-vec3 atmosFragAmbient(vec3 light, vec3 sunlit)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 atmosFragAffectDirectionalLight(float light, vec3 sunlit)
-{
-   return light * sunlit;
-}
-
-vec3 atmosLighting(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
deleted file mode 100644
index 12f500e2244..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * @file class1\windlight\atmosphericsFuncs.glsl
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2019, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// debug stub
-
-float getAmbientClamp() { return 1.0f; }
-
-// Returns colors in sRGB
-void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive,
-                         out vec3 atten, bool use_ao)
-{
-    amblit = vec3(0.2, 0, 0.2);
-    sunlit = vec3(1,0,1);
-    additive = vec3(0.5,0.5,0.5);
-    atten = vec3(1,0,1);
-}
-
-void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 additive,
-                         out vec3 atten)
-{
-    amblit = vec3(0.2, 0, 0.2);
-    sunlit = vec3(1,0,1);
-    additive = vec3(0.5,0.5,0.5);
-    atten = vec3(1,0,1);
-}
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl
deleted file mode 100644
index fd691659450..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl
+++ /dev/null
@@ -1,49 +0,0 @@
-/** 
- * @file class1\windlight\atmosphericsHelpersF.glsl 
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-uniform vec4 sunlight_color;
-uniform vec4 light_ambient;
-
-vec3 atmosAmbient()
-{
-    return light_ambient.rgb;
-}
-
-vec3 atmosAffectDirectionalLight(float lightIntensity)
-{
-    return sunlight_color.rgb * lightIntensity;
-}
-
-vec3 atmosGetDiffuseSunlightColor()
-{
-    return sunlight_color.rgb;
-}
-
-vec3 scaleDownLight(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
deleted file mode 100644
index 4179eaa9eb4..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
+++ /dev/null
@@ -1,55 +0,0 @@
-/** 
- * @file class1\windlight\atmosphericsHelpersV.glsl 
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-uniform vec4 sunlight_color;
-uniform vec4 light_ambient;
-
-vec3 atmosAmbient()
-{
-    return light_ambient.rgb;
-}
-
-vec3 atmosAffectDirectionalLight(float lightIntensity)
-{
-    return sunlight_color.rgb * lightIntensity;
-}
-
-vec3 atmosGetDiffuseSunlightColor()
-{
-    return sunlight_color.rgb;
-}
-
-vec3 scaleDownLight(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 scaleUpLight(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
deleted file mode 100644
index 20457ad1253..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
+++ /dev/null
@@ -1,35 +0,0 @@
-/** 
- * @file class1\windlight\atmosphericsV.glsl 
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-void setPositionEye(vec3 v);
-
-void calcAtmospherics(vec3 inPositionEye)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    setPositionEye(inPositionEye);
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
deleted file mode 100644
index 3b4d358cfab..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @file class1\windlight\atmosphericVarsF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-VARYING vec3 vary_AdditiveColor;
-VARYING vec3 vary_AtmosAttenuation;
-
-vec3 getAmblitColor() { return vec3(0, 0, 0); }
-
-vec3 getAdditiveColor() { return vary_AdditiveColor; }
-
-vec3 getAtmosAttenuation() { return vec3(vary_AtmosAttenuation); }
-
-vec3 getSunlitColor() { return vec3(0, 0, 0); }
-
-vec3 getPositionEye() { return vec3(0, 0, 0); }
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
deleted file mode 100644
index 1fea2c36289..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @file class1\windlight\atmosphericVarsV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-VARYING vec3 vary_AdditiveColor;
-VARYING vec3 vary_AtmosAttenuation;
-
-vec3 additive_color;
-vec3 atmos_attenuation;
-vec3 sunlit_color;
-vec3 amblit_color;
-vec3 position_eye;
-
-vec3 getSunlitColor() { return sunlit_color; }
-void setSunlitColor(vec3 v) { sunlit_color = v; }
-
-vec3 getAdditiveColor() { return additive_color; }
-void setAdditiveColor(vec3 v)
-{
-    additive_color     = v;
-    vary_AdditiveColor = v;
-}
-
-vec3 getAmblitColor() { return amblit_color; }
-void setAmblitColor(vec3 v) { amblit_color = v; }
-
-vec3 getAtmosAttenuation() { return atmos_attenuation; }
-void setAtmosAttenuation(vec3 v)
-{
-    atmos_attenuation     = v;
-    vary_AtmosAttenuation = v;
-}
-
-vec3 getPositionEye() { return position_eye; }
-void setPositionEye(vec3 v) { position_eye = v; }
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
deleted file mode 100644
index f83434b7ec9..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * @file class1\windlight\atmosphericVarsWaterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-VARYING vec3 vary_PositionEye;
-VARYING vec3 vary_AdditiveColor;
-VARYING vec3 vary_AtmosAttenuation;
-
-vec3 getSunlitColor() { return vec3(0, 0, 0); }
-
-vec3 getAmblitColor() { return vec3(0, 0, 0); }
-
-vec3 getAdditiveColor() { return vary_AdditiveColor; }
-
-vec3 getAtmosAttenuation() { return vary_AtmosAttenuation; }
-
-vec3 getPositionEye() { return vary_PositionEye; }
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
deleted file mode 100644
index 65d11767778..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @file class1\windlight\atmosphericVarsWaterV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-VARYING vec3 vary_PositionEye;
-VARYING vec3 vary_AdditiveColor;
-VARYING vec3 vary_AtmosAttenuation;
-
-vec3 atmos_attenuation;
-vec3 sunlit_color;
-vec3 amblit_color;
-
-vec3 getSunlitColor() { return sunlit_color; }
-void setSunlitColor(vec3 v) { sunlit_color = v; }
-
-vec3 getAmblitColor() { return amblit_color; }
-void setAmblitColor(vec3 v) { amblit_color = v; }
-
-vec3 getAdditiveColor() { return vary_AdditiveColor; }
-void setAdditiveColor(vec3 v) { vary_AdditiveColor = v; }
-
-vec3 getAtmosAttenuation() { return atmos_attenuation; }
-void setAtmosAttenuation(vec3 v)
-{
-    atmos_attenuation     = v;
-    vary_AtmosAttenuation = v;
-}
-
-vec3 getPositionEye() { return vary_PositionEye; }
-void setPositionEye(vec3 v) { vary_PositionEye = v; }
diff --git a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
deleted file mode 100644
index b1db147572b..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
+++ /dev/null
@@ -1,50 +0,0 @@
-/** 
- * @file class1\windlight\gammaF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-vec3 scaleSoftClipFrag(vec3 light)
-{
-	// For compatibility with lower cards. Do nothing.
-	return light;
-}
-
-/// Soft clips the light with a gamma correction
-vec3 scaleSoftClip(vec3 light)
-{
-	// For compatibility with lower cards. Do nothing
-	return light;
-}
-
-vec3 fullbrightScaleSoftClipFrag(vec3 light, vec3 additive, vec3 atten)
-{
-	// For compatibility with lower cards. Do nothing
-	return light;
-}
-
-vec3 fullbrightScaleSoftClip(vec3 light)
-{
-	// For compatibility with lower cards. Do nothing
-    return light;
-}
-
diff --git a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
deleted file mode 100644
index fb864d1951f..00000000000
--- a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-/** 
- * @file class1/windlight/transportF.glsl
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-vec3 atmosTransportFrag(vec3 light, vec3 additive, vec3 atten)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-	return light;
-}
-
-vec3 atmosTransport(vec3 light)
-{
-	/* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 fullbrightAtmosTransportFrag(vec3 light, vec3 additive, vec3 atten)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 fullbrightAtmosTransport(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
-
-vec3 fullbrightShinyAtmosTransport(vec3 light)
-{
-    /* stub function for fallback compatibility on class1 hardware */
-    return light;
-}
diff --git a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl b/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
deleted file mode 100644
index 563c5f562b9..00000000000
--- a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
+++ /dev/null
@@ -1,62 +0,0 @@
-/** 
- * @file eyeballV.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-uniform mat3 normal_matrix;
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_matrix;
-uniform mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec4 diffuse_color;
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-
-vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor);
-void calcAtmospherics(vec3 inPositionEye);
-
-void main()
-{
-	//transform vertex
-	vec3 pos = (modelview_matrix * vec4(position.xyz, 1.0)).xyz;
-	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0);
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-		
-	vec3 norm = normalize(normal_matrix * normal);
-
-	calcAtmospherics(pos.xyz);
-	
-	// vec4 specular = specularColor;
-	vec4 specular = vec4(1.0);
-	vec4 color = calcLightingSpecular(pos, norm, diffuse_color, specular);
-			
-	vertex_color = color;
-	
-
-}
-
diff --git a/indra/newview/app_settings/shaders/class2/deferred/indirect.glsl b/indra/newview/app_settings/shaders/class2/deferred/indirect.glsl
deleted file mode 100644
index 67b98e0fb13..00000000000
--- a/indra/newview/app_settings/shaders/class2/deferred/indirect.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-/** 
- * @file class2/deferred/indirect.glsl
- *
- * $LicenseInfo:firstyear=2018&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-float calcAmbientOcclusion(vec4 pos, vec3 norm, vec2 pos_screen);
-
-vec3 getIndirect(vec3 ambient, vec3 norm, vec4 pos, vec2 pos_screen)
-{
-    return ambient * calcAmbientOcclusion(pos, norm, pos_screen);
-}
-
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
deleted file mode 100644
index ba419e7a650..00000000000
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ /dev/null
@@ -1,298 +0,0 @@
-/** 
- * @file multiSpotLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D depthMap;
-uniform sampler2D normalMap;
-uniform samplerCube environmentMap;
-uniform sampler2D lightMap;
-uniform sampler2D noiseMap;
-uniform sampler2D projectionMap;
-uniform sampler2D lightFunc;
-
-uniform mat4 proj_mat; //screen space to light space
-uniform float proj_near; //near clip for projection
-uniform vec3 proj_p; //plane projection is emitting from (in screen space)
-uniform vec3 proj_n;
-uniform float proj_focus; //distance from plane to begin blurring
-uniform float proj_lod;  //(number of mips in proj map)
-uniform float proj_range; //range between near clip and far clip plane of projection
-uniform float proj_ambient_lod;
-uniform float proj_ambiance;
-uniform float near_clip;
-uniform float far_clip;
-
-uniform vec3 proj_origin; //origin of projection to be used for angular attenuation
-uniform float sun_wash;
-uniform int proj_shadow_idx;
-uniform float shadow_fade;
-
-uniform vec3 center;
-uniform float size;
-uniform vec3 color;
-uniform float falloff;
-
-VARYING vec4 vary_fragcoord;
-uniform vec2 screen_res;
-
-uniform mat4 inv_proj;
-
-vec3 srgb_to_linear(vec3 cs);
-vec3 getNorm(vec2 pos_screen);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-    vec4 ret = texture2DLod(projectionMap, tc, lod);
-    ret.rgb = srgb_to_linear(ret.rgb);
-    vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-    
-    float det = min(lod/(proj_lod*0.5), 1.0);
-    
-    float d = min(dist.x, dist.y);
-    
-    d *= min(1, d * (proj_lod - lod));
-    
-    float edge = 0.25*det;
-    
-    ret *= clamp(d/edge, 0.0, 1.0);
-    
-    return ret;
-}
-
-vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
-{
-    vec4 ret = texture2DLod(projectionMap, tc, lod);
-    ret.rgb = srgb_to_linear(ret.rgb);
-
-    vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-    
-    float det = min(lod/(proj_lod*0.5), 1.0);
-    
-    float d = min(dist.x, dist.y);
-    
-    float edge = 0.25*det;
-        
-    ret *= clamp(d/edge, 0.0, 1.0);
-    
-    return ret;
-}
-
-vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
-{
-    vec4 ret = texture2DLod(projectionMap, tc, lod);
-    ret.rgb = srgb_to_linear(ret.rgb);
-
-    vec2 dist = tc-vec2(0.5);
-    
-    float d = dot(dist,dist);
-        
-    ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
-    
-    return ret;
-}
-
-vec4 getPosition(vec2 pos_screen);
-
-void main() 
-{
-
-    vec3 col = vec3(0,0,0);
-
-#if defined(LOCAL_LIGHT_KILL)
-    discard;
-#else
-    vec4 frag = vary_fragcoord;
-    frag.xyz /= frag.w;
-    frag.xyz = frag.xyz*0.5+0.5;
-    
-    vec3 pos = getPosition(frag.xy).xyz;
-    vec3 lv = center.xyz-pos.xyz;
-    float dist = length(lv);
-
-    if (dist >= size)
-    {
-        discard;
-    }
-    dist /= size;
-
-    float shadow = 1.0;
-    
-    if (proj_shadow_idx >= 0)
-    {
-        vec4 shd = texture2D(lightMap, frag.xy);
-        shadow = (proj_shadow_idx==0)?shd.b:shd.a;
-        shadow += shadow_fade;
-        shadow = clamp(shadow, 0.0, 1.0);        
-    }
-    
-    vec3 norm = texture2D(normalMap, frag.xy).xyz;
-    
-    float envIntensity = norm.z;
-
-    norm = getNorm(frag.xy);
-    
-    norm = normalize(norm);
-    float l_dist = -dot(lv, proj_n);
-    
-    vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0));
-    if (proj_tc.z < 0.0)
-    {
-        discard;
-    }
-    
-    proj_tc.xyz /= proj_tc.w;
-    
-    float fa = falloff+1.0;
-    float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
-    dist_atten *= dist_atten;
-    dist_atten *= 2.0;
-    if (dist_atten <= 0.0)
-    {
-        discard;
-    }
-    
-    lv = proj_origin-pos.xyz;
-    lv = normalize(lv);
-    float da = dot(norm, lv);
-        
-    vec3 diff_tex = texture2D(diffuseRect, frag.xy).rgb;
- 
-    vec4 spec = texture2D(specularRect, frag.xy);
-
-    vec3 dlit = vec3(0, 0, 0);
-
-    float noise = texture2D(noiseMap, frag.xy).b;
-    if (proj_tc.z > 0.0 &&
-        proj_tc.x < 1.0 &&
-        proj_tc.y < 1.0 &&
-        proj_tc.x > 0.0 &&
-        proj_tc.y > 0.0)
-    {
-        float amb_da = proj_ambiance;
-        float lit = 0.0;
-
-        if (da > 0.0)
-        {
-            lit = da * dist_atten * noise;
-
-            float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
-            float lod = diff * proj_lod;
-            
-            vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
-        
-            dlit = color.rgb * plcol.rgb * plcol.a;
-            
-            col = dlit*lit*diff_tex*shadow;
-
-            // unshadowed for consistency between forward and deferred?
-            amb_da += (da*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;
-        }
-        
-        //float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
-        vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
-
-        // use unshadowed for consistency between forward and deferred?
-        amb_da += (da*da*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;
-        amb_da *= dist_atten * noise;
-        amb_da = min(amb_da, 1.0-lit);
-
-        col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a;
-    }
-    
-
-    if (spec.a > 0.0)
-    {
-        vec3 npos = -normalize(pos);
-        dlit *= min(da*6.0, 1.0) * dist_atten;
-
-        //vec3 ref = dot(pos+lv, norm);
-        vec3 h = normalize(lv+npos);
-        float nh = dot(norm, h);
-        float nv = dot(norm, npos);
-        float vh = dot(npos, h);
-        float sa = nh;
-        float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
-
-        float gtdenom = 2 * nh;
-        float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
-                                
-        if (nh > 0.0)
-        {
-            float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
-            vec3 speccol = dlit*scol*spec.rgb*shadow;
-            speccol = clamp(speccol, vec3(0), vec3(1));
-            col += speccol;
-        }
-    }   
-
-    if (envIntensity > 0.0)
-    {
-        vec3 ref = reflect(normalize(pos), norm);
-        
-        //project from point pos in direction ref to plane proj_p, proj_n
-        vec3 pdelta = proj_p-pos;
-        float ds = dot(ref, proj_n);
-        
-        if (ds < 0.0)
-        {
-            vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds;
-            
-            vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0));
-
-            if (stc.z > 0.0)
-            {
-                stc /= stc.w;
-                                
-                if (stc.x < 1.0 &&
-                    stc.y < 1.0 &&
-                    stc.x > 0.0 &&
-                    stc.y > 0.0)
-                {
-                    col += color.rgb * texture2DLodSpecular(projectionMap, stc.xy, (1 - spec.a) * (proj_lod * 0.6)).rgb * shadow * envIntensity;
-                }
-            }
-        }
-    }
-#endif
-
-    //not sure why, but this line prevents MATBUG-194
-    col = max(col, vec3(0.0));
-
-    //output linear
-    frag_color.rgb = col;
-    frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
deleted file mode 100644
index fab227f5a41..00000000000
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * @file class2/deferred/softenLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D normalMap;
-uniform sampler2D lightMap;
-uniform sampler2D depthMap;
-uniform samplerCube   environmentMap;
-uniform sampler2D     lightFunc;
-
-uniform float blur_size;
-uniform float blur_fidelity;
-
-// Inputs
-uniform mat3 env_mat;
-
-uniform vec3 sun_dir;
-uniform vec3 moon_dir;
-uniform int  sun_up_factor;
-VARYING vec2 vary_fragcoord;
-
-uniform mat4 inv_proj;
-uniform vec2 screen_res;
-
-vec3 getNorm(vec2 pos_screen);
-vec4 getPositionWithDepth(vec2 pos_screen, float depth);
-float getDepth(vec2 pos_screen);
-
-void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten, bool use_ao);
-float getAmbientClamp();
-vec3  atmosFragLighting(vec3 l, vec3 additive, vec3 atten);
-vec3  scaleSoftClipFrag(vec3 l);
-vec3  fullbrightAtmosTransportFrag(vec3 light, vec3 additive, vec3 atten);
-vec3  fullbrightScaleSoftClip(vec3 light);
-
-vec3 linear_to_srgb(vec3 c);
-vec3 srgb_to_linear(vec3 c);
-
-#ifdef WATER_FOG
-vec4 applyWaterFogView(vec3 pos, vec4 color);
-#endif
-
-void main()
-{
-    vec2  tc           = vary_fragcoord.xy;
-    float depth        = getDepth(tc.xy);
-    vec4  pos          = getPositionWithDepth(tc, depth);
-    vec4  norm         = texture2D(normalMap, tc);
-    float envIntensity = norm.z;
-    norm.xyz           = getNorm(tc);
-
-    vec3  light_dir   = (sun_up_factor == 1) ? sun_dir : moon_dir;
-    float da          = clamp(dot(norm.xyz, light_dir.xyz), 0.0, 1.0);
-    float light_gamma = 1.0 / 1.3;
-    da                = pow(da, light_gamma);
-
-    vec4 diffuse     = texture2D(diffuseRect, tc);
-         diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14035
-    vec4 spec        = texture2D(specularRect, vary_fragcoord.xy);
-
-    vec2 scol_ambocc = texture2D(lightMap, vary_fragcoord.xy).rg;
-    scol_ambocc      = pow(scol_ambocc, vec2(light_gamma));
-    float scol       = max(scol_ambocc.r, diffuse.a);
-    float ambocc     = scol_ambocc.g;
-
-    vec3  color = vec3(0);
-    float bloom = 0.0;
-
-    vec3 sunlit;
-    vec3 amblit;
-    vec3 additive;
-    vec3 atten;
-    calcAtmosphericVars(pos.xyz, light_dir, ambocc, sunlit, amblit, additive, atten, true);
-
-    color.rgb = amblit;
-
-    float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0);
-    ambient *= 0.5;
-    ambient *= ambient;
-    ambient = (1.0 - ambient);
-    color.rgb *= ambient;
-
-    vec3 sun_contrib = min(da, scol) * sunlit;
-    color.rgb += sun_contrib;
-    color.rgb *= diffuse.rgb;
-
-    vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
-
-    if (spec.a > 0.0)  // specular reflection
-    {
-        float sa        = dot(refnormpersp, light_dir.xyz);
-        vec3  dumbshiny = sunlit * scol * (texture2D(lightFunc, vec2(sa, spec.a)).r);
-
-        // add the two types of shiny together
-        vec3 spec_contrib = dumbshiny * spec.rgb;
-        bloom             = dot(spec_contrib, spec_contrib) / 6;
-        color.rgb += spec_contrib;
-    }
-
-    color.rgb = mix(color.rgb, diffuse.rgb, diffuse.a);
-
-    if (envIntensity > 0.0)
-    {  // add environmentmap
-        vec3 env_vec         = env_mat * refnormpersp;
-        vec3 reflected_color = textureCube(environmentMap, env_vec).rgb;
-        color                = mix(color.rgb, reflected_color, envIntensity);
-    }
-
-    if (GET_GBUFFER_FLAG(GBUFFER_FLAG_HAS_ATMOS))
-    {
-        color = mix(atmosFragLighting(color, additive, atten), fullbrightAtmosTransportFrag(color, additive, atten), diffuse.a);
-        color = mix(scaleSoftClipFrag(color), fullbrightScaleSoftClip(color), diffuse.a);
-    }
-
-#ifdef WATER_FOG
-    vec4 fogged = applyWaterFogView(pos.xyz, vec4(color, bloom));
-    color       = fogged.rgb;
-    bloom       = fogged.a;
-#endif
-
-    // convert to linear as fullscreen lights need to sum in linear colorspace
-    // and will be gamma (re)corrected downstream...
-    frag_color.rgb = pos.xyz;// srgb_to_linear(color.rgb);
-    frag_color.a   = bloom;
-}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
deleted file mode 100644
index e6a627fbf75..00000000000
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ /dev/null
@@ -1,292 +0,0 @@
-/** 
- * @file spotLightF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-#extension GL_ARB_texture_rectangle : enable
-#extension GL_ARB_shader_texture_lod : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseRect;
-uniform sampler2D specularRect;
-uniform sampler2D depthMap;
-uniform sampler2D normalMap;
-uniform samplerCube environmentMap;
-uniform sampler2D lightMap;
-uniform sampler2D noiseMap;
-uniform sampler2D projectionMap;
-uniform sampler2D lightFunc;
-
-uniform mat4 proj_mat; //screen space to light space
-uniform float proj_near; //near clip for projection
-uniform vec3 proj_p; //plane projection is emitting from (in screen space)
-uniform vec3 proj_n;
-uniform float proj_focus; //distance from plane to begin blurring
-uniform float proj_lod;  //(number of mips in proj map)
-uniform float proj_range; //range between near clip and far clip plane of projection
-uniform float proj_ambient_lod;
-uniform float proj_ambiance;
-uniform float near_clip;
-uniform float far_clip;
-
-uniform vec3 proj_origin; //origin of projection to be used for angular attenuation
-uniform float sun_wash;
-uniform int proj_shadow_idx;
-uniform float shadow_fade;
-
-uniform float size;
-uniform vec3 color;
-uniform float falloff;
-
-VARYING vec3 trans_center;
-VARYING vec4 vary_fragcoord;
-uniform vec2 screen_res;
-
-uniform mat4 inv_proj;
-
-vec3 getNorm(vec2 pos_screen);
-vec3 srgb_to_linear(vec3 c);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-    
-    d *= min(1, d * (proj_lod - lod));
-	
-	float edge = 0.25*det;
-    
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
-	
-	float det = min(lod/(proj_lod*0.5), 1.0);
-	
-	float d = min(dist.x, dist.y);
-	
-	float edge = 0.25*det;
-		
-	ret *= clamp(d/edge, 0.0, 1.0);
-	
-	return ret;
-}
-
-vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
-{
-	vec4 ret = texture2DLod(projectionMap, tc, lod);
-	ret.rgb = srgb_to_linear(ret.rgb);
-	
-	vec2 dist = tc-vec2(0.5);
-	
-	float d = dot(dist,dist);
-		
-	ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
-	
-	return ret;
-}
-
-vec4 getPosition(vec2 pos_screen);
-
-void main() 
-{
-	vec3 col = vec3(0,0,0);
-
-#if defined(LOCAL_LIGHT_KILL)
-    discard;
-#else
-	vec4 frag = vary_fragcoord;
-	frag.xyz /= frag.w;
-	frag.xyz = frag.xyz*0.5+0.5;
-	
-	vec3 pos = getPosition(frag.xy).xyz;
-	vec3 lv = trans_center.xyz-pos.xyz;
-	float dist = length(lv);
-
-    if (dist >= size)
-    {
-        discard;
-    }
-	dist /= size;
-
-	float shadow = 1.0;
-	
-	if (proj_shadow_idx >= 0)
-	{
-		vec4 shd = texture2D(lightMap, frag.xy);
-        shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-        shadow += shadow_fade;
-		shadow = clamp(shadow, 0.0, 1.0);        
-	}
-	
-	vec3 norm = texture2D(normalMap, frag.xy).xyz;
-	float envIntensity = norm.z;
-	norm = getNorm(frag.xy);
-	
-	norm = normalize(norm);
-	float l_dist = -dot(lv, proj_n);
-	
-	vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0));
-	if (proj_tc.z < 0.0)
-	{
-		discard;
-	}
-	
-	proj_tc.xyz /= proj_tc.w;
-	
-	float fa = falloff+1.0;
-	float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
-	dist_atten *= dist_atten;
-	dist_atten *= 2.0;
-
-	if (dist_atten <= 0.0)
-	{
-		discard;
-	}
-	
-	lv = proj_origin-pos.xyz;
-	lv = normalize(lv);
-	float da = dot(norm, lv);
-		
-	vec3 diff_tex = texture2D(diffuseRect, frag.xy).rgb;
-	vec4 spec = texture2D(specularRect, frag.xy);
-	vec3 dlit = vec3(0, 0, 0);
-
-	float noise = texture2D(noiseMap, frag.xy).b;
-	if (proj_tc.z > 0.0 &&
-		proj_tc.x < 1.0 &&
-		proj_tc.y < 1.0 &&
-		proj_tc.x > 0.0 &&
-		proj_tc.y > 0.0)
-	{
-		float amb_da = proj_ambiance;
-		float lit = 0.0;
-		
-		if (da > 0.0)
-		{
-			lit = da * dist_atten * noise;
-
-			float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
-			float lod = diff * proj_lod;
-			
-			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
-		
-			dlit = color.rgb * plcol.rgb * plcol.a;
-		
-			col = dlit*lit*diff_tex*shadow;
-
-			amb_da += (da*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;
-		}
-		
-		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
-		vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
-							
-		amb_da += (da*da*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;
-		amb_da *= dist_atten * noise;
-		amb_da = min(amb_da, 1.0-lit);
-	
-	    col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a;
-	}
-
-	if (spec.a > 0.0)
-	{
-		dlit *= min(da*6.0, 1.0) * dist_atten;
-		vec3 npos = -normalize(pos);
-
-		//vec3 ref = dot(pos+lv, norm);
-		vec3 h = normalize(lv+npos);
-		float nh = dot(norm, h);
-		float nv = dot(norm, npos);
-		float vh = dot(npos, h);
-		float sa = nh;
-		float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
-
-		float gtdenom = 2 * nh;
-		float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
-								
-		if (nh > 0.0)
-		{
-			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
-			vec3 speccol = dlit*scol*spec.rgb*shadow;
-            speccol = clamp(speccol, vec3(0), vec3(1));
-			col += speccol;
-		}
-	}	
-
-	if (envIntensity > 0.0)
-	{
-		vec3 ref = reflect(normalize(pos), norm);
-		
-		//project from point pos in direction ref to plane proj_p, proj_n
-		vec3 pdelta = proj_p-pos;
-		float ds = dot(ref, proj_n);
-		
-		if (ds < 0.0)
-		{
-			vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds;
-			
-			vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0));
-
-			if (stc.z > 0.0)
-			{
-				stc /= stc.w;
-								
-				if (stc.x < 1.0 &&
-					stc.y < 1.0 &&
-					stc.x > 0.0 &&
-					stc.y > 0.0)
-				{
-					col += color.rgb * texture2DLodSpecular(projectionMap, stc.xy, (1 - spec.a) * (proj_lod * 0.6)).rgb * shadow * envIntensity;
-				}
-			}
-		}
-	}
-#endif
-	
-	//not sure why, but this line prevents MATBUG-194
-	col = max(col, vec3(0.0));
-
-	//output linear colors as gamma correction happens down stream
-	frag_color.rgb = col;	
-	frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class2/environment/waterF.glsl b/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
deleted file mode 100644
index d485379a560..00000000000
--- a/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
+++ /dev/null
@@ -1,170 +0,0 @@
-/** 
- * @file waterF.glsl
- *
- * $LicenseInfo:firstyear=2007&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2007, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-//class2/environment/waterF.glsl
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-vec3 scaleSoftClip(vec3 inColor);
-vec3 atmosTransport(vec3 inColor);
-
-uniform sampler2D bumpMap;
-uniform sampler2D bumpMap2;
-uniform float     blend_factor;
-uniform sampler2D screenTex;
-uniform sampler2D refTex;
-
-uniform float sunAngle;
-uniform float sunAngle2;
-uniform vec3 lightDir;
-uniform vec3 specular;
-uniform float lightExp;
-uniform float refScale;
-uniform float kd;
-uniform vec2 screenRes;
-uniform vec3 normScale;
-uniform float fresnelScale;
-uniform float fresnelOffset;
-uniform float blurMultiplier;
-
-
-//bigWave is (refCoord.w, view.w);
-VARYING vec4 refCoord;
-VARYING vec4 littleWave;
-VARYING vec4 view;
-
-vec3 BlendNormal(vec3 bump1, vec3 bump2)
-{
-    vec3 n = mix(bump1, bump2, blend_factor);
-    return n;
-}
-
-
-void main() 
-{
-	vec4 color;
-	
-	float dist = length(view.xy);
-	
-	//normalize view vector
-	vec3 viewVec = normalize(view.xyz);
-	
-	//get wave normals
-    vec2 bigwave = vec2(refCoord.w, view.w);
-    vec3 wave1_a = texture2D(bumpMap, bigwave      ).xyz*2.0-1.0;
-    vec3 wave2_a = texture2D(bumpMap, littleWave.xy).xyz*2.0-1.0;
-    vec3 wave3_a = texture2D(bumpMap, littleWave.zw).xyz*2.0-1.0;
-
-
-    vec3 wave1_b = texture2D(bumpMap2, bigwave      ).xyz*2.0-1.0;
-    vec3 wave2_b = texture2D(bumpMap2, littleWave.xy).xyz*2.0-1.0;
-    vec3 wave3_b = texture2D(bumpMap2, littleWave.zw).xyz*2.0-1.0;
-
-    vec3 wave1 = BlendNormal(wave1_a, wave1_b);
-    vec3 wave2 = BlendNormal(wave2_a, wave2_b);
-    vec3 wave3 = BlendNormal(wave3_a, wave3_b);
-
-
-	//get base fresnel components	
-	
-	vec3 df = vec3(
-					dot(viewVec, wave1),
-					dot(viewVec, (wave2 + wave3) * 0.5),
-					dot(viewVec, wave3)
-				 ) * fresnelScale + fresnelOffset;
-	df *= df;
-		    
-	vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
-	
-	float dist2 = dist;
-	dist = max(dist, 5.0);
-	
-	float dmod = sqrt(dist);
-	
-	vec2 dmod_scale = vec2(dmod*dmod, dmod);
-	
-	//get reflected color
-	vec2 refdistort1 = wave1.xy*normScale.x;
-	vec2 refvec1 = distort+refdistort1/dmod_scale;
-	vec4 refcol1 = texture2D(refTex, refvec1);
-	
-	vec2 refdistort2 = wave2.xy*normScale.y;
-	vec2 refvec2 = distort+refdistort2/dmod_scale;
-	vec4 refcol2 = texture2D(refTex, refvec2);
-	
-	vec2 refdistort3 = wave3.xy*normScale.z;
-	vec2 refvec3 = distort+refdistort3/dmod_scale;
-	vec4 refcol3 = texture2D(refTex, refvec3);
-
-	vec4 refcol = refcol1 + refcol2 + refcol3;
-	float df1 = df.x + df.y + df.z;
-	refcol *= df1 * 0.333;
-	
-	vec3 wavef = (wave1 + wave2 * 0.4 + wave3 * 0.6) * 0.5;
-	
-	wavef.z *= max(-viewVec.z, 0.1);
-	wavef = normalize(wavef);
-	
-	float df2 = dot(viewVec, wavef) * fresnelScale+fresnelOffset;
-	
-	vec2 refdistort4 = wavef.xy*0.125;
-	refdistort4.y -= abs(refdistort4.y);
-	vec2 refvec4 = distort+refdistort4/dmod;
-	float dweight = min(dist2*blurMultiplier, 1.0);
-	vec4 baseCol = texture2D(refTex, refvec4);
-	refcol = mix(baseCol*df2, refcol, dweight);
-
-	//get specular component
-	float spec = clamp(dot(lightDir, (reflect(viewVec,wavef))),0.0,1.0);
-		
-	//harden specular
-	spec = pow(spec, 128.0);
-
-	//figure out distortion vector (ripply)   
-	vec2 distort2 = distort+wavef.xy*refScale/max(dmod*df1, 1.0);
-		
-	vec4 fb = texture2D(screenTex, distort2);
-	
-	//mix with reflection
-	// Note we actually want to use just df1, but multiplying by 0.999999 gets around and nvidia compiler bug
-	color.rgb = mix(fb.rgb, refcol.rgb, df1 * 0.99999);
-	color.rgb += spec * specular;
-	
-	color.rgb = atmosTransport(color.rgb);
-	color.rgb = scaleSoftClip(color.rgb);
-	color.a = spec * sunAngle2;
-	
-	frag_color = color;
-
-#if defined(WATER_EDGE)
-    gl_FragDepth = 0.9999847f;
-#endif
-	
-}
-
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
deleted file mode 100644
index 89d9d1bde37..00000000000
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file class2\lighting\sumLightsSpecularV.glsl
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-
-
-float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
-vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol);
-
-vec3 atmosAmbient();
-vec3 atmosAffectDirectionalLight(float lightIntensity);
-vec3 atmosGetDiffuseSunlightColor();
-vec3 scaleDownLight(vec3 light);
-
-uniform vec4 light_position[8];
-uniform vec4 light_attenuation[8]; 
-uniform vec3 light_diffuse[8];
-
-vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor)
-{
-	vec4 col = vec4(0.0, 0.0, 0.0, color.a);
-	
-	vec3 view = normalize(pos);
-	
-	/// collect all the specular values from each calcXXXLightSpecular() function
-	vec4 specularSum = vec4(0.0);
-	
-	// Collect normal lights (need to be divided by two, as we later multiply by 2)
-	col.rgb += light_diffuse[1].rgb * calcDirectionalLightSpecular(specularColor, view, norm, light_position[1].xyz,light_diffuse[1].rgb, 1.0);
-	col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, light_position[2].xyz, light_attenuation[2].x, light_attenuation[2].y, light_diffuse[2].rgb); 
-	col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, light_position[3].xyz, light_attenuation[3].x, light_attenuation[3].y, light_diffuse[3].rgb); 
-	col.rgb = scaleDownLight(col.rgb);
-						
-	// Add windlight lights
-	col.rgb += atmosAmbient();
-	col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, light_position[0].xyz, atmosGetDiffuseSunlightColor(), 1.0));
-
-	col.rgb = min(col.rgb*color.rgb, 1.0);
-	specularColor.rgb = min(specularColor.rgb*specularSum.rgb, 1.0);
-	col.rgb += specularColor.rgb;
-
-	return col;	
-}
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
deleted file mode 100644
index 30ca88afd2e..00000000000
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * @file class2\lighting\sumLightsV.glsl
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2005, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
- 
-float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight);
-
-vec3 atmosAffectDirectionalLight(float lightIntensity);
-vec3 scaleDownLight(vec3 light);
-
-uniform vec4 light_position[8];
-uniform vec3 light_direction[8];
-uniform vec3 light_attenuation[8]; 
-uniform vec3 light_diffuse[8];
-
-vec4 sumLights(vec3 pos, vec3 norm, vec4 color)
-{
-	vec4 col = vec4(0.0, 0.0, 0.0, color.a);
-	
-	// Collect normal lights (need to be divided by two, as we later multiply by 2)
-	col.rgb += light_diffuse[1].rgb * calcDirectionalLight(norm, light_position[1].xyz);
-	col.rgb += light_diffuse[2].rgb*calcPointLightOrSpotLight(pos.xyz, norm, light_position[2], light_direction[2], light_attenuation[2].x, light_attenuation[2].y, light_attenuation[2].z);
-	col.rgb += light_diffuse[3].rgb*calcPointLightOrSpotLight(pos.xyz, norm, light_position[3], light_direction[3], light_attenuation[3].x, light_attenuation[3].y, light_attenuation[3].z);
-	col.rgb = scaleDownLight(col.rgb);
-
-#if defined(LOCAL_LIGHT_KILL)
-    col.rgb = vec3(0);
-i#endif
-
-	// Add windlight lights
-	col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, light_position[0].xyz));
-
-#if !defined(SUNLIGHT_KILL)
-	col.rgb = min(col.rgb*color.rgb, 1.0);
-#endif
-
-	return col;	
-}
-
diff --git a/indra/newview/lldrawpoolsky.cpp b/indra/newview/lldrawpoolsky.cpp
index c39d728c954..3c5bfe4a1c5 100644
--- a/indra/newview/lldrawpoolsky.cpp
+++ b/indra/newview/lldrawpoolsky.cpp
@@ -28,21 +28,10 @@
 
 #include "lldrawpoolsky.h"
 
-#include "llagent.h"
-#include "lldrawable.h"
-#include "llface.h"
-#include "llsky.h"
-#include "llviewercamera.h"
-#include "llviewertexturelist.h"
-#include "llviewerregion.h"
-#include "llvosky.h"
-#include "llworld.h" // To get water height
-#include "pipeline.h"
-#include "llviewershadermgr.h"
+// DEPRECATED
 
 LLDrawPoolSky::LLDrawPoolSky()
 :	LLFacePool(POOL_SKY),
-	
 	mSkyTex(NULL),
 	mShader(NULL)
 {
@@ -50,103 +39,16 @@ LLDrawPoolSky::LLDrawPoolSky()
 
 void LLDrawPoolSky::prerender()
 {
-	mShaderLevel = LLViewerShaderMgr::instance()->getShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT); 
-    if (gSky.mVOSkyp && gSky.mVOSkyp->mDrawable)
-    {
-        gSky.mVOSkyp->updateGeometry(gSky.mVOSkyp->mDrawable);
-    }
 }
 
 void LLDrawPoolSky::render(S32 pass)
 {
-	gGL.flush();
 
-	if (mDrawFace.empty())
-	{
-		return;
-	}
-
-	// Don't draw the sky box if we can and are rendering the WL sky dome.
-	if (gPipeline.canUseWindLightShaders())
-	{
-		return;
-	}
-	
-	// don't render sky under water (background just gets cleared to fog color)
-	if(mShaderLevel > 0 && LLPipeline::sUnderWaterRender)
-	{
-		return;
-	}
-
-
-    //just use the UI shader (generic single texture no lighting)
-	gOneTextureNoColorProgram.bind();
-
-	LLGLSPipelineDepthTestSkyBox gls_skybox(true, false);
-
-	gGL.pushMatrix();
-	LLVector3 origin = LLViewerCamera::getInstance()->getOrigin();
-	gGL.translatef(origin.mV[0], origin.mV[1], origin.mV[2]);
-
-	S32 face_count = (S32)mDrawFace.size();
-
-	LLVertexBuffer::unbind();
-	gGL.diffuseColor4f(1,1,1,1);
-
-	for (S32 i = 0; i < face_count; ++i)
-	{
-		renderSkyFace(i);
-	}
-
-	gGL.popMatrix();
 }
 
 void LLDrawPoolSky::renderSkyFace(U8 index)
 {
-	LLFace* face = mDrawFace[index];
-
-	if (!face || !face->getGeomCount())
-	{
-		return;
-	}
-
-    if (index < LLVOSky::FACE_SUN) // sky tex...interp
-    {
-        llassert(mSkyTex);
-	    mSkyTex[index].bindTexture(true); // bind the current tex
-
-        face->renderIndexed();
-    }
-    else // Moon
-    if (index == LLVOSky::FACE_MOON)
-    {
-        LLGLSPipelineDepthTestSkyBox gls_skybox(true, true); // SL-14113 Write depth for moon so stars can test if behind it
-
-        LLGLEnable blend(GL_BLEND);
-
-        // if (LLGLSLShader::sNoFixedFunction) // TODO: Necessary? is this always true? We already bailed on gPipeline.canUseWindLightShaders ... above
-        LLViewerTexture* tex = face->getTexture(LLRender::DIFFUSE_MAP);
-        if (tex)
-        {
-            gMoonProgram.bind(); // SL-14113 was gOneTextureNoColorProgram
-            gGL.getTexUnit(0)->bind(tex, true);
-            face->renderIndexed();
-        }
-    }
-    else // heavenly body faces, no interp...
-    {
-        LLGLSPipelineDepthTestSkyBox gls_skybox(true, false); // reset to previous
-
-        LLGLEnable blend(GL_BLEND);
 
-        LLViewerTexture* tex = face->getTexture(LLRender::DIFFUSE_MAP);
-        if (tex)
-        {
-            gOneTextureNoColorProgram.bind();
-            gGL.getTexUnit(0)->bind(tex, true);
-            face->renderIndexed();
-        }
-    }
 }
 
 void LLDrawPoolSky::endRenderPass( S32 pass )
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index 64178f0a594..77189dceae2 100644
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -105,35 +105,9 @@ U32 LLDrawPoolTerrain::getVertexDataMask()
 
 void LLDrawPoolTerrain::prerender()
 {
-	mShaderLevel = LLViewerShaderMgr::instance()->getShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT);
 	sDetailMode = gSavedSettings.getS32("RenderTerrainDetail");
 }
 
-void LLDrawPoolTerrain::beginRenderPass( S32 pass )
-{
-	LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_TERRAIN);
-	LLFacePool::beginRenderPass(pass);
-
-	sShader = LLPipeline::sUnderWaterRender ? 
-					&gTerrainWaterProgram :
-					&gTerrainProgram;	
-
-	if (mShaderLevel > 1 && sShader->mShaderLevel > 0)
-	{
-		sShader->bind();
-	}
-}
-
-void LLDrawPoolTerrain::endRenderPass( S32 pass )
-{
-	LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_TERRAIN);
-	//LLFacePool::endRenderPass(pass);
-
-	if (mShaderLevel > 1 && sShader->mShaderLevel > 0) {
-		sShader->unbind();
-	}
-}
-
 //static
 S32 LLDrawPoolTerrain::getDetailMode()
 {
@@ -152,54 +126,12 @@ void LLDrawPoolTerrain::boostTerrainDetailTextures()
 	}
 }
 
-void LLDrawPoolTerrain::render(S32 pass)
-{
-	LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_TERRAIN);
-	
-	if (mDrawFace.empty())
-	{
-		return;
-	}
-
-	boostTerrainDetailTextures();
-
-	LLOverrideFaceColor override(this, 1.f, 1.f, 1.f, 1.f);
-
-	LLGLSPipeline gls;
-	
-	if (mShaderLevel > 1 && sShader->mShaderLevel > 0)
-	{
-		gPipeline.enableLightsDynamic();
-
-		renderFullShader();
-	}
-	else
-	{
-		gPipeline.enableLightsStatic();
-
-		if (sDetailMode == 0)
-		{
-			renderSimple();
-		} 
-		else 
-		{
-			renderFull4TU();
-		}
-	}
-
-	// Special-case for land ownership feedback
-	if (gSavedSettings.getBOOL("ShowParcelOwners"))
-	{
-		hilightParcelOwners(false);
-	}
-}
-
 void LLDrawPoolTerrain::beginDeferredPass(S32 pass)
 {
 	LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_TERRAIN);
 	LLFacePool::beginRenderPass(pass);
 
-	sShader = LLPipeline::sUnderWaterRender ? &gDeferredTerrainWaterProgram : &gDeferredTerrainProgram;
+	sShader = &gDeferredTerrainProgram;
 
 	sShader->bind();
 }
@@ -226,7 +158,7 @@ void LLDrawPoolTerrain::renderDeferred(S32 pass)
 	// Special-case for land ownership feedback
 	if (gSavedSettings.getBOOL("ShowParcelOwners"))
 	{
-		hilightParcelOwners(true);
+		hilightParcelOwners();
 	}
 
 }
@@ -390,13 +322,12 @@ void LLDrawPoolTerrain::renderFullShader()
 	gGL.getTexUnit(detail0)->activate();
 }
 
-void LLDrawPoolTerrain::hilightParcelOwners(bool deferred)
+void LLDrawPoolTerrain::hilightParcelOwners()
 {
-	if (mShaderLevel > 1)
 	{ //use fullbright shader for highlighting
 		LLGLSLShader* old_shader = sShader;
 		sShader->unbind();
-		sShader = deferred ? &gDeferredHighlightProgram : &gHighlightProgram;
+		sShader = &gDeferredHighlightProgram;
 		sShader->bind();
 		gGL.diffuseColor4f(1, 1, 1, 1);
 		LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL);
@@ -405,11 +336,7 @@ void LLDrawPoolTerrain::hilightParcelOwners(bool deferred)
 		sShader = old_shader;
 		sShader->bind();
 	}
-	else
-	{
-		gPipeline.disableLights();
-		renderOwnership();
-	}
+	
 }
 
 void LLDrawPoolTerrain::renderFull4TU()
diff --git a/indra/newview/lldrawpoolterrain.h b/indra/newview/lldrawpoolterrain.h
index e00e0c4720d..03bef315416 100644
--- a/indra/newview/lldrawpoolterrain.h
+++ b/indra/newview/lldrawpoolterrain.h
@@ -57,10 +57,7 @@ class LLDrawPoolTerrain : public LLFacePool
 	/*virtual*/ void endShadowPass(S32 pass);
 	/*virtual*/ void renderShadow(S32 pass);
 
-	/*virtual*/ void render(S32 pass = 0);
 	/*virtual*/ void prerender();
-	/*virtual*/ void beginRenderPass( S32 pass );
-	/*virtual*/ void endRenderPass( S32 pass );
 	/*virtual*/ void dirtyTextures(const std::set<LLViewerFetchedTexture*>& textures);
 	/*virtual*/ LLViewerTexture *getTexture();
 	/*virtual*/ LLViewerTexture *getDebugTexture();
@@ -85,7 +82,7 @@ class LLDrawPoolTerrain : public LLFacePool
 	void drawLoop();
 
 private:
-	void hilightParcelOwners(bool deferred);
+	void hilightParcelOwners();
 };
 
 #endif // LL_LLDRAWPOOLSIMPLE_H
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index cb3ef55edd4..14f3142e1b5 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -41,7 +41,6 @@
 #include "llsky.h"
 #include "llviewertexturelist.h"
 #include "llviewerregion.h"
-#include "llvosky.h"
 #include "llvowater.h"
 #include "llworld.h"
 #include "pipeline.h"
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 45e77094092..a74950dad2f 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -47,7 +47,6 @@
 #include "llviewercamera.h"
 #include "llviewertexturelist.h"
 #include "llvopartgroup.h"
-#include "llvosky.h"
 #include "llvovolume.h"
 #include "pipeline.h"
 #include "llviewerregion.h"
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 0aa2462dddb..7487c1c9f91 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -78,7 +78,6 @@
 #include "llviewerthrottle.h"
 #include "llvoavatarself.h"
 #include "llvotree.h"
-#include "llvosky.h"
 #include "llfloaterpathfindingconsole.h"
 // linden library includes
 #include "llavatarnamecache.h"
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 3ecbc73c2dc..341f94241ae 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -51,7 +51,6 @@
 #include "llviewerwindow.h"
 #include "llvoavatarself.h"
 #include "llvoiceclient.h"
-#include "llvosky.h"
 #include "llvotree.h"
 #include "llvovolume.h"
 #include "llworld.h"
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index fa7d8297840..3c0a08cee1b 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -84,10 +84,10 @@
 #include "llvoavatar.h"
 #include "llvoavatarself.h"
 #include "llvograss.h"
+#include "llvosky.h"
 #include "llvolume.h"
 #include "llvolumemessage.h"
 #include "llvopartgroup.h"
-#include "llvosky.h"
 #include "llvosurfacepatch.h"
 #include "llvotree.h"
 #include "llvovolume.h"
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 3c2208c7272..7b7ad964255 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -38,7 +38,6 @@
 #include "llatmosphere.h"
 #include "llworld.h"
 #include "llsky.h"
-#include "llvosky.h"
 
 #include "pipeline.h"
 
@@ -49,8 +48,6 @@
 #include "lljoint.h"
 #include "llskinningutil.h"
 
-//#pragma optimize("", off)
-
 static LLStaticHashedString sTexture0("texture0");
 static LLStaticHashedString sTexture1("texture1");
 static LLStaticHashedString sTex0("tex0");
@@ -74,22 +71,16 @@ LLVector4			gShinyOrigin;
 LLGLSLShader	gOcclusionProgram;
 LLGLSLShader    gSkinnedOcclusionProgram;
 LLGLSLShader	gOcclusionCubeProgram;
-LLGLSLShader	gCustomAlphaProgram; // SL-14113 This used to be used for the stars with Atmospheric Shaders: OFF
 LLGLSLShader	gGlowCombineProgram;
-LLGLSLShader	gSplatTextureRectProgram;
 LLGLSLShader	gReflectionMipProgram;
 LLGLSLShader	gRadianceGenProgram;
 LLGLSLShader	gIrradianceGenProgram;
 LLGLSLShader	gGlowCombineFXAAProgram;
-LLGLSLShader	gTwoTextureAddProgram;
 LLGLSLShader	gTwoTextureCompareProgram;
 LLGLSLShader	gOneTextureFilterProgram;
-LLGLSLShader	gOneTextureNoColorProgram;
 LLGLSLShader	gDebugProgram;
 LLGLSLShader    gSkinnedDebugProgram;
 LLGLSLShader	gClipProgram;
-LLGLSLShader	gDownsampleDepthProgram;
-LLGLSLShader	gDownsampleDepthRectProgram;
 LLGLSLShader	gAlphaMaskProgram;
 LLGLSLShader	gBenchmarkProgram;
 LLGLSLShader    gReflectionProbeDisplayProgram;
@@ -107,10 +98,6 @@ LLGLSLShader		gObjectAlphaMaskNoColorProgram;
 LLGLSLShader		gObjectAlphaMaskNoColorWaterProgram;
 
 //environment shaders
-LLGLSLShader		gMoonProgram;
-LLGLSLShader		gStarsProgram;
-LLGLSLShader		gTerrainProgram;
-LLGLSLShader		gTerrainWaterProgram;
 LLGLSLShader		gWaterProgram;
 LLGLSLShader        gWaterEdgeProgram;
 LLGLSLShader		gUnderWaterProgram;
@@ -122,8 +109,6 @@ LLGLSLShader		gHighlightNormalProgram;
 LLGLSLShader		gHighlightSpecularProgram;
 
 LLGLSLShader		gDeferredHighlightProgram;
-LLGLSLShader		gDeferredHighlightNormalProgram;
-LLGLSLShader		gDeferredHighlightSpecularProgram;
 
 LLGLSLShader		gPathfindingProgram;
 LLGLSLShader		gPathfindingNoNormalsProgram;
@@ -135,23 +120,13 @@ LLGLSLShader		gAvatarEyeballProgram;
 LLGLSLShader		gAvatarPickProgram;
 LLGLSLShader		gImpostorProgram;
 
-// WindLight shader handles
-LLGLSLShader			gWLSkyProgram;
-LLGLSLShader			gWLCloudProgram;
-LLGLSLShader            gWLSunProgram;
-LLGLSLShader            gWLMoonProgram;
-
 // Effects Shaders
 LLGLSLShader			gGlowProgram;
 LLGLSLShader			gGlowExtractProgram;
-LLGLSLShader			gPostColorFilterProgram;
-LLGLSLShader            gPostNightVisionProgram;
 LLGLSLShader			gPostScreenSpaceReflectionProgram;
 
 // Deferred rendering shaders
 LLGLSLShader			gDeferredImpostorProgram;
-LLGLSLShader			gDeferredWaterProgram;
-LLGLSLShader			gDeferredUnderWaterProgram;
 LLGLSLShader			gDeferredDiffuseProgram;
 LLGLSLShader			gDeferredDiffuseAlphaMaskProgram;
 LLGLSLShader            gDeferredSkinnedDiffuseAlphaMaskProgram;
@@ -258,10 +233,6 @@ LLViewerShaderMgr::LLViewerShaderMgr() :
 {   
     /// Make sure WL Sky is the first program
     //ONLY shaders that need WL Param management should be added here
-	mShaderList.push_back(&gWLSkyProgram);
-	mShaderList.push_back(&gWLCloudProgram);
-	mShaderList.push_back(&gWLSunProgram);
-	mShaderList.push_back(&gWLMoonProgram);
 	mShaderList.push_back(&gAvatarProgram);
 	mShaderList.push_back(&gWaterProgram);
 	mShaderList.push_back(&gWaterEdgeProgram);
@@ -274,8 +245,6 @@ LLViewerShaderMgr::LLViewerShaderMgr() :
     mShaderList.push_back(&gSkinnedObjectFullbrightAlphaMaskProgram);
 	mShaderList.push_back(&gObjectAlphaMaskNoColorProgram);
 	mShaderList.push_back(&gObjectAlphaMaskNoColorWaterProgram);
-	mShaderList.push_back(&gTerrainProgram);
-	mShaderList.push_back(&gTerrainWaterProgram);
 	mShaderList.push_back(&gAvatarWaterProgram);
 	mShaderList.push_back(&gUnderWaterProgram);
 	mShaderList.push_back(&gDeferredSunProgram);
@@ -309,8 +278,6 @@ LLViewerShaderMgr::LLViewerShaderMgr() :
 	mShaderList.push_back(&gDeferredEmissiveProgram);
     mShaderList.push_back(&gDeferredSkinnedEmissiveProgram);
 	mShaderList.push_back(&gDeferredAvatarEyesProgram);
-	mShaderList.push_back(&gDeferredWaterProgram);
-	mShaderList.push_back(&gDeferredUnderWaterProgram);	
     mShaderList.push_back(&gDeferredTerrainWaterProgram);
 	mShaderList.push_back(&gDeferredAvatarAlphaProgram);
 	mShaderList.push_back(&gDeferredWLSkyProgram);
@@ -485,47 +452,18 @@ void LLViewerShaderMgr::setShaders()
 
     gPipeline.mShadersLoaded = true;
 
-    // Load all shaders to set max levels
-    BOOL loaded = loadShadersEnvironment();
+    BOOL loaded = loadShadersWater();
 
     if (loaded)
     {
-        LL_INFOS() << "Loaded environment shaders." << LL_ENDL;
+        LL_INFOS() << "Loaded water shaders." << LL_ENDL;
     }
     else
     {
-        LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;
+        LL_WARNS() << "Failed to load water shaders." << LL_ENDL;
         llassert(loaded);
     }
 
-    if (loaded)
-    {
-        loaded = loadShadersWater();
-        if (loaded)
-        {
-            LL_INFOS() << "Loaded water shaders." << LL_ENDL;
-        }
-        else
-        {
-            LL_WARNS() << "Failed to load water shaders." << LL_ENDL;
-            llassert(loaded);
-        }
-    }
-
-    if (loaded)
-    {
-        loaded = loadShadersWindLight();
-        if (loaded)
-        {
-            LL_INFOS() << "Loaded windlight shaders." << LL_ENDL;
-        }
-        else
-        {
-            LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL;
-            llassert(loaded);
-        }
-    }
-
     if (loaded)
     {
         loaded = loadShadersEffects();
@@ -598,25 +536,19 @@ void LLViewerShaderMgr::unloadShaders()
 	gDebugProgram.unload();
     gSkinnedDebugProgram.unload();
 	gClipProgram.unload();
-	gDownsampleDepthProgram.unload();
-	gDownsampleDepthRectProgram.unload();
 	gBenchmarkProgram.unload();
     gReflectionProbeDisplayProgram.unload();
 	gAlphaMaskProgram.unload();
 	gUIProgram.unload();
 	gPathfindingProgram.unload();
 	gPathfindingNoNormalsProgram.unload();
-	gCustomAlphaProgram.unload();
 	gGlowCombineProgram.unload();
-	gSplatTextureRectProgram.unload();
-    gReflectionMipProgram.unload();
+	gReflectionMipProgram.unload();
     gRadianceGenProgram.unload();
     gIrradianceGenProgram.unload();
 	gGlowCombineFXAAProgram.unload();
-	gTwoTextureAddProgram.unload();
 	gTwoTextureCompareProgram.unload();
 	gOneTextureFilterProgram.unload();
-	gOneTextureNoColorProgram.unload();
 	gSolidColorProgram.unload();
 
 	gObjectPreviewProgram.unload();
@@ -634,10 +566,6 @@ void LLViewerShaderMgr::unloadShaders()
     gWaterEdgeProgram.unload();
 	gUnderWaterProgram.unload();
 
-	gMoonProgram.unload();
-	gStarsProgram.unload();
-	gTerrainProgram.unload();
-	gTerrainWaterProgram.unload();
 	gGlowProgram.unload();
 	gGlowExtractProgram.unload();
 	gAvatarProgram.unload();
@@ -649,14 +577,7 @@ void LLViewerShaderMgr::unloadShaders()
 	gHighlightNormalProgram.unload();
 	gHighlightSpecularProgram.unload();
 
-	gWLSkyProgram.unload();
-	gWLCloudProgram.unload();
-    gWLSunProgram.unload();
-    gWLMoonProgram.unload();
-
-	gPostColorFilterProgram.unload();
-	gPostNightVisionProgram.unload();
-    gPostScreenSpaceReflectionProgram.unload();
+	gPostScreenSpaceReflectionProgram.unload();
 
 	gDeferredDiffuseProgram.unload();
 	gDeferredDiffuseAlphaMaskProgram.unload();
@@ -847,77 +768,6 @@ std::string LLViewerShaderMgr::loadBasicShaders()
 	return std::string();
 }
 
-BOOL LLViewerShaderMgr::loadShadersEnvironment()
-{
-    LL_PROFILE_ZONE_SCOPED;
-#if 1 // DEPRECATED -- forward rendering is deprecated
-	BOOL success = TRUE;
-
-	if (mShaderLevel[SHADER_ENVIRONMENT] == 0)
-	{
-		gTerrainProgram.unload();
-		return TRUE;
-	}
-
-	if (success)
-	{
-		gTerrainProgram.mName = "Terrain Shader";
-		gTerrainProgram.mFeatures.calculatesLighting = true;
-		gTerrainProgram.mFeatures.calculatesAtmospherics = true;
-		gTerrainProgram.mFeatures.hasAtmospherics = true;
-		gTerrainProgram.mFeatures.hasTransport = true;
-		gTerrainProgram.mFeatures.hasGamma = true;
-		gTerrainProgram.mFeatures.hasSrgb = true;
-		gTerrainProgram.mFeatures.mIndexedTextureChannels = 0;
-		gTerrainProgram.mFeatures.disableTextureIndex = true;
-		gTerrainProgram.mFeatures.hasGamma = true;
-        gTerrainProgram.mShaderFiles.clear();
-        gTerrainProgram.mShaderFiles.push_back(make_pair("environment/terrainV.glsl", GL_VERTEX_SHADER));
-        gTerrainProgram.mShaderFiles.push_back(make_pair("environment/terrainF.glsl", GL_FRAGMENT_SHADER));
-        gTerrainProgram.mShaderLevel = mShaderLevel[SHADER_ENVIRONMENT];
-        success = gTerrainProgram.createShader(NULL, NULL);
-		llassert(success);
-	}
-
-	if (success)
-	{
-		gStarsProgram.mName = "Environment Stars Shader";
-		gStarsProgram.mShaderFiles.clear();
-		gStarsProgram.mShaderFiles.push_back(make_pair("environment/starsV.glsl", GL_VERTEX_SHADER_ARB));
-		gStarsProgram.mShaderFiles.push_back(make_pair("environment/starsF.glsl", GL_FRAGMENT_SHADER_ARB));
-		gStarsProgram.mShaderLevel = mShaderLevel[SHADER_ENVIRONMENT];
-        gStarsProgram.addConstant( LLGLSLShader::SHADER_CONST_STAR_DEPTH ); // SL-14113
-		success = gStarsProgram.createShader(NULL, NULL);
-		llassert(success);
-	}
-
-	if (success)
-	{
-		gMoonProgram.mName = "Environment Moon Shader";
-		gMoonProgram.mShaderFiles.clear();
-		gMoonProgram.mShaderFiles.push_back(make_pair("environment/moonV.glsl", GL_VERTEX_SHADER_ARB));
-		gMoonProgram.mShaderFiles.push_back(make_pair("environment/moonF.glsl", GL_FRAGMENT_SHADER_ARB));
-		gMoonProgram.mShaderLevel = mShaderLevel[SHADER_ENVIRONMENT];
-        gMoonProgram.addConstant( LLGLSLShader::SHADER_CONST_CLOUD_MOON_DEPTH ); // SL-14113
-		success = gMoonProgram.createShader(NULL, NULL);
-		if (success)
-		{
-			gMoonProgram.bind();
-			gMoonProgram.uniform1i(sTex0, 0);
-		}
-	}
-
-	if (!success)
-	{
-		mShaderLevel[SHADER_ENVIRONMENT] = 0;
-		return FALSE;
-	}
-	
-	LLWorld::getInstance()->updateWaterObjects();
-#endif
-	return TRUE;
-}
-
 BOOL LLViewerShaderMgr::loadShadersWater()
 {
     LL_PROFILE_ZONE_SCOPED;
@@ -930,7 +780,6 @@ BOOL LLViewerShaderMgr::loadShadersWater()
 		gWaterProgram.unload();
 		gWaterEdgeProgram.unload();
 		gUnderWaterProgram.unload();
-		gTerrainWaterProgram.unload();
 		return TRUE;
 	}
 
@@ -1005,33 +854,6 @@ BOOL LLViewerShaderMgr::loadShadersWater()
 		llassert(success);
 	}
 
-	if (success)
-	{
-		//load terrain water shader
-		gTerrainWaterProgram.mName = "Terrain Water Shader";
-		gTerrainWaterProgram.mFeatures.calculatesLighting = true;
-		gTerrainWaterProgram.mFeatures.calculatesAtmospherics = true;
-		gTerrainWaterProgram.mFeatures.hasAtmospherics = true;
-		gTerrainWaterProgram.mFeatures.hasWaterFog = true;
-		gTerrainWaterProgram.mFeatures.mIndexedTextureChannels = 0;
-		gTerrainWaterProgram.mFeatures.disableTextureIndex = true;
-		gTerrainWaterProgram.mShaderFiles.clear();
-		gTerrainWaterProgram.mShaderFiles.push_back(make_pair("environment/terrainWaterV.glsl", GL_VERTEX_SHADER));
-		gTerrainWaterProgram.mShaderFiles.push_back(make_pair("environment/terrainWaterF.glsl", GL_FRAGMENT_SHADER));
-		gTerrainWaterProgram.mShaderLevel = mShaderLevel[SHADER_ENVIRONMENT];
-		gTerrainWaterProgram.mShaderGroup = LLGLSLShader::SG_WATER;
-
-        gTerrainWaterProgram.clearPermutations();
-
-        if (LLPipeline::RenderDeferred)
-        {
-            gTerrainWaterProgram.addPermutation("ALM", "1");
-        }
-
-		terrainWaterSuccess = gTerrainWaterProgram.createShader(NULL, NULL);
-		llassert(terrainWaterSuccess);
-	}	
-
 	/// Keep track of water shader levels
 	if (gWaterProgram.mShaderLevel != mShaderLevel[SHADER_WATER]
 		|| gUnderWaterProgram.mShaderLevel != mShaderLevel[SHADER_WATER])
@@ -1068,8 +890,6 @@ BOOL LLViewerShaderMgr::loadShadersEffects()
 	{
 		gGlowProgram.unload();
 		gGlowExtractProgram.unload();
-		gPostColorFilterProgram.unload();	
-		gPostNightVisionProgram.unload();
 		return TRUE;
 	}
 
@@ -1180,8 +1000,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 		gDeferredDoFCombineProgram.unload();
 		gDeferredPostGammaCorrectProgram.unload();
 		gFXAAProgram.unload();
-		gDeferredWaterProgram.unload();
-		gDeferredUnderWaterProgram.unload();
 		gDeferredWLSkyProgram.unload();
 		gDeferredWLCloudProgram.unload();
         gDeferredWLSunProgram.unload();
@@ -1195,9 +1013,7 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         gDeferredSkinnedFullbrightAlphaMaskAlphaProgram.unload();
 
         gDeferredHighlightProgram.unload();
-        gDeferredHighlightNormalProgram.unload();
-        gDeferredHighlightSpecularProgram.unload();
-
+        
 		gNormalMapGenProgram.unload();
         gDeferredGenBrdfLutProgram.unload();
 
@@ -1227,26 +1043,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 		success = gDeferredHighlightProgram.createShader(NULL, NULL);
 	}
 
-	if (success)
-	{
-		gDeferredHighlightNormalProgram.mName = "Deferred Highlight Normals Shader";
-		gDeferredHighlightNormalProgram.mShaderFiles.clear();
-		gDeferredHighlightNormalProgram.mShaderFiles.push_back(make_pair("interface/highlightNormV.glsl", GL_VERTEX_SHADER));
-		gDeferredHighlightNormalProgram.mShaderFiles.push_back(make_pair("deferred/highlightF.glsl", GL_FRAGMENT_SHADER));
-		gDeferredHighlightNormalProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];		
-		success = gHighlightNormalProgram.createShader(NULL, NULL);
-	}
-
-	if (success)
-	{
-		gDeferredHighlightSpecularProgram.mName = "Deferred Highlight Spec Shader";
-		gDeferredHighlightSpecularProgram.mShaderFiles.clear();
-		gDeferredHighlightSpecularProgram.mShaderFiles.push_back(make_pair("interface/highlightSpecV.glsl", GL_VERTEX_SHADER));
-		gDeferredHighlightSpecularProgram.mShaderFiles.push_back(make_pair("deferred/highlightF.glsl", GL_FRAGMENT_SHADER));
-		gDeferredHighlightSpecularProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];		
-		success = gDeferredHighlightSpecularProgram.createShader(NULL, NULL);
-	}
-
 	if (success)
 	{
 		gDeferredDiffuseProgram.mName = "Deferred Diffuse Shader";
@@ -2311,46 +2107,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 		llassert(success);
 	}
 
-	if (success)
-	{
-		// load water shader
-		gDeferredWaterProgram.mName = "Deferred Water Shader";
-		gDeferredWaterProgram.mFeatures.calculatesAtmospherics = true;
-		gDeferredWaterProgram.mFeatures.hasGamma = true;
-		gDeferredWaterProgram.mFeatures.hasTransport = true;
-		gDeferredWaterProgram.mFeatures.encodesNormal = true;
-        gDeferredWaterProgram.mFeatures.hasSrgb = true;
-
-		gDeferredWaterProgram.mShaderFiles.clear();
-		gDeferredWaterProgram.mShaderFiles.push_back(make_pair("deferred/waterV.glsl", GL_VERTEX_SHADER));
-		gDeferredWaterProgram.mShaderFiles.push_back(make_pair("deferred/waterF.glsl", GL_FRAGMENT_SHADER));
-		gDeferredWaterProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-		gDeferredWaterProgram.mShaderGroup = LLGLSLShader::SG_WATER;
-		success = gDeferredWaterProgram.createShader(NULL, NULL);
-		llassert(success);
-	}
-
-	if (success)
-	{
-		// load water shader
-		gDeferredUnderWaterProgram.mName = "Deferred Under Water Shader";
-		gDeferredUnderWaterProgram.mFeatures.calculatesAtmospherics = true;
-		gDeferredUnderWaterProgram.mFeatures.hasWaterFog = true;
-		gDeferredUnderWaterProgram.mFeatures.hasGamma = true;
-		gDeferredUnderWaterProgram.mFeatures.hasTransport = true;
-		gDeferredUnderWaterProgram.mFeatures.hasSrgb = true;
-		gDeferredUnderWaterProgram.mFeatures.encodesNormal = true;
-		//gDeferredUnderWaterProgram.mFeatures.hasShadows = true;
-
-		gDeferredUnderWaterProgram.mShaderFiles.clear();
-		gDeferredUnderWaterProgram.mShaderFiles.push_back(make_pair("deferred/waterV.glsl", GL_VERTEX_SHADER));
-		gDeferredUnderWaterProgram.mShaderFiles.push_back(make_pair("deferred/underWaterF.glsl", GL_FRAGMENT_SHADER));
-		gDeferredUnderWaterProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-        gDeferredUnderWaterProgram.mShaderGroup = LLGLSLShader::SG_WATER;
-		success = gDeferredUnderWaterProgram.createShader(NULL, NULL);
-		llassert(success);
-	}
-
 	if (success)
 	{
 		gDeferredSoftenProgram.mName = "Deferred Soften Shader";
@@ -3223,32 +2979,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
 		success = gPathfindingNoNormalsProgram.createShader(NULL, NULL);
 	}
 
-	if (success)
-	{
-		gCustomAlphaProgram.mName = "Custom Alpha Shader";
-		gCustomAlphaProgram.mShaderFiles.clear();
-		gCustomAlphaProgram.mShaderFiles.push_back(make_pair("interface/customalphaV.glsl", GL_VERTEX_SHADER));
-		gCustomAlphaProgram.mShaderFiles.push_back(make_pair("interface/customalphaF.glsl", GL_FRAGMENT_SHADER));
-		gCustomAlphaProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gCustomAlphaProgram.createShader(NULL, NULL);
-	}
-
-	if (success)
-	{
-		gSplatTextureRectProgram.mName = "Splat Texture Rect Shader";
-		gSplatTextureRectProgram.mShaderFiles.clear();
-		gSplatTextureRectProgram.mShaderFiles.push_back(make_pair("interface/splattexturerectV.glsl", GL_VERTEX_SHADER));
-		gSplatTextureRectProgram.mShaderFiles.push_back(make_pair("interface/splattexturerectF.glsl", GL_FRAGMENT_SHADER));
-		gSplatTextureRectProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gSplatTextureRectProgram.createShader(NULL, NULL);
-		if (success)
-		{
-			gSplatTextureRectProgram.bind();
-			gSplatTextureRectProgram.uniform1i(sScreenMap, 0);
-			gSplatTextureRectProgram.unbind();
-		}
-	}
-
 	if (success)
 	{
 		gGlowCombineProgram.mName = "Glow Combine Shader";
@@ -3283,22 +3013,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
 		}
 	}
 
-	if (success)
-	{
-		gTwoTextureAddProgram.mName = "Two Texture Add Shader";
-		gTwoTextureAddProgram.mShaderFiles.clear();
-		gTwoTextureAddProgram.mShaderFiles.push_back(make_pair("interface/twotextureaddV.glsl", GL_VERTEX_SHADER));
-		gTwoTextureAddProgram.mShaderFiles.push_back(make_pair("interface/twotextureaddF.glsl", GL_FRAGMENT_SHADER));
-		gTwoTextureAddProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gTwoTextureAddProgram.createShader(NULL, NULL);
-		if (success)
-		{
-			gTwoTextureAddProgram.bind();
-			gTwoTextureAddProgram.uniform1i(sTex0, 0);
-			gTwoTextureAddProgram.uniform1i(sTex1, 1);
-		}
-	}
-
 #ifdef LL_WINDOWS
 	if (success)
 	{
@@ -3333,21 +3047,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
 	}
 #endif
 
-	if (success)
-	{
-		gOneTextureNoColorProgram.mName = "One Texture No Color Shader";
-		gOneTextureNoColorProgram.mShaderFiles.clear();
-		gOneTextureNoColorProgram.mShaderFiles.push_back(make_pair("interface/onetexturenocolorV.glsl", GL_VERTEX_SHADER));
-		gOneTextureNoColorProgram.mShaderFiles.push_back(make_pair("interface/onetexturenocolorF.glsl", GL_FRAGMENT_SHADER));
-		gOneTextureNoColorProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gOneTextureNoColorProgram.createShader(NULL, NULL);
-		if (success)
-		{
-			gOneTextureNoColorProgram.bind();
-			gOneTextureNoColorProgram.uniform1i(sTex0, 0);
-		}
-	}
-
 	if (success)
 	{
 		gSolidColorProgram.mName = "Solid Color Shader";
@@ -3418,16 +3117,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
 		success = gClipProgram.createShader(NULL, NULL);
 	}
 
-	if (success)
-	{
-		gDownsampleDepthProgram.mName = "DownsampleDepth Shader";
-		gDownsampleDepthProgram.mShaderFiles.clear();
-		gDownsampleDepthProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthV.glsl", GL_VERTEX_SHADER));
-		gDownsampleDepthProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthF.glsl", GL_FRAGMENT_SHADER));
-		gDownsampleDepthProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gDownsampleDepthProgram.createShader(NULL, NULL);
-	}
-
 	if (success)
 	{
 		gBenchmarkProgram.mName = "Benchmark Shader";
@@ -3477,16 +3166,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
         success = gCopyDepthProgram.createShader(NULL, NULL);
     }
     
-	if (success)
-	{
-		gDownsampleDepthRectProgram.mName = "DownsampleDepthRect Shader";
-		gDownsampleDepthRectProgram.mShaderFiles.clear();
-		gDownsampleDepthRectProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthV.glsl", GL_VERTEX_SHADER));
-		gDownsampleDepthRectProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthRectF.glsl", GL_FRAGMENT_SHADER));
-		gDownsampleDepthRectProgram.mShaderLevel = mShaderLevel[SHADER_INTERFACE];
-		success = gDownsampleDepthRectProgram.createShader(NULL, NULL);
-	}
-
 	if (success)
 	{
 		gAlphaMaskProgram.mName = "Alpha Mask Shader";
@@ -3546,90 +3225,6 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
 	return TRUE;
 }
 
-BOOL LLViewerShaderMgr::loadShadersWindLight()
-{	
-    LL_PROFILE_ZONE_SCOPED;
-	BOOL success = TRUE;
-#if 1 // DEPRECATED -- forward rendering is deprecated
-	if (mShaderLevel[SHADER_WINDLIGHT] < 2)
-	{
-		gWLSkyProgram.unload();
-		gWLCloudProgram.unload();
-		gWLSunProgram.unload();
-		gWLMoonProgram.unload();
-		return TRUE;
-	}
-
-    if (success)
-    {
-        gWLSkyProgram.mName = "Windlight Sky Shader";
-        gWLSkyProgram.mShaderFiles.clear();
-        gWLSkyProgram.mFeatures.calculatesAtmospherics = true;
-        gWLSkyProgram.mFeatures.hasTransport = true;
-        gWLSkyProgram.mFeatures.hasGamma = true;
-        gWLSkyProgram.mFeatures.hasSrgb = true;
-        gWLSkyProgram.mShaderFiles.push_back(make_pair("windlight/skyV.glsl", GL_VERTEX_SHADER));
-        gWLSkyProgram.mShaderFiles.push_back(make_pair("windlight/skyF.glsl", GL_FRAGMENT_SHADER));
-        gWLSkyProgram.mShaderLevel = mShaderLevel[SHADER_WINDLIGHT];
-        gWLSkyProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        success = gWLSkyProgram.createShader(NULL, NULL);
-    }
-
-    if (success)
-    {
-        gWLCloudProgram.mName = "Windlight Cloud Program";
-        gWLCloudProgram.mShaderFiles.clear();
-        gWLCloudProgram.mFeatures.calculatesAtmospherics = true;
-        gWLCloudProgram.mFeatures.hasTransport = true;
-        gWLCloudProgram.mFeatures.hasGamma = true;
-        gWLCloudProgram.mFeatures.hasSrgb = true;
-        gWLCloudProgram.mShaderFiles.push_back(make_pair("windlight/cloudsV.glsl", GL_VERTEX_SHADER));
-        gWLCloudProgram.mShaderFiles.push_back(make_pair("windlight/cloudsF.glsl", GL_FRAGMENT_SHADER));
-        gWLCloudProgram.mShaderLevel = mShaderLevel[SHADER_WINDLIGHT];
-        gWLCloudProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        gWLCloudProgram.addConstant( LLGLSLShader::SHADER_CONST_CLOUD_MOON_DEPTH ); // SL-14113
-        success = gWLCloudProgram.createShader(NULL, NULL);
-    }
-
-    if (success)
-    {
-        gWLSunProgram.mName = "Windlight Sun Program";
-        gWLSunProgram.mShaderFiles.clear();
-        gWLSunProgram.mFeatures.calculatesAtmospherics = true;
-        gWLSunProgram.mFeatures.hasTransport = true;
-        gWLSunProgram.mFeatures.hasGamma = true;
-        gWLSunProgram.mFeatures.hasAtmospherics = true;
-        gWLSunProgram.mFeatures.isFullbright = true;
-        gWLSunProgram.mFeatures.disableTextureIndex = true;
-        gWLSunProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        gWLSunProgram.mShaderFiles.push_back(make_pair("windlight/sunDiscV.glsl", GL_VERTEX_SHADER));
-        gWLSunProgram.mShaderFiles.push_back(make_pair("windlight/sunDiscF.glsl", GL_FRAGMENT_SHADER));
-        gWLSunProgram.mShaderLevel = mShaderLevel[SHADER_WINDLIGHT];
-        gWLSunProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        success = gWLSunProgram.createShader(NULL, NULL);
-    }
-
-    if (success)
-    {
-        gWLMoonProgram.mName = "Windlight Moon Program";
-        gWLMoonProgram.mShaderFiles.clear();
-        gWLMoonProgram.mFeatures.calculatesAtmospherics = true;
-        gWLMoonProgram.mFeatures.hasTransport = true;
-        gWLMoonProgram.mFeatures.hasGamma = true;
-        gWLMoonProgram.mFeatures.hasAtmospherics = true;
-        gWLMoonProgram.mFeatures.isFullbright = true;
-        gWLMoonProgram.mFeatures.disableTextureIndex = true;
-        gWLMoonProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        gWLMoonProgram.mShaderFiles.push_back(make_pair("windlight/moonV.glsl", GL_VERTEX_SHADER));
-        gWLMoonProgram.mShaderFiles.push_back(make_pair("windlight/moonF.glsl", GL_FRAGMENT_SHADER));
-        gWLMoonProgram.mShaderLevel = mShaderLevel[SHADER_WINDLIGHT];
-        gWLMoonProgram.mShaderGroup = LLGLSLShader::SG_SKY;
-        gWLMoonProgram.addConstant( LLGLSLShader::SHADER_CONST_CLOUD_MOON_DEPTH ); // SL-14113
-        success = gWLMoonProgram.createShader(NULL, NULL);
-    }
-#endif
-	return success;
-}
 
 std::string LLViewerShaderMgr::getShaderDirPrefix(void)
 {
diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h
index 904fa9370e0..31b87d08c9b 100644
--- a/indra/newview/llviewershadermgr.h
+++ b/indra/newview/llviewershadermgr.h
@@ -58,10 +58,8 @@ class LLViewerShaderMgr: public LLShaderMgr
 	BOOL loadShadersDeferred();
 	BOOL loadShadersObject();
 	BOOL loadShadersAvatar();
-	BOOL loadShadersEnvironment();
 	BOOL loadShadersWater();
 	BOOL loadShadersInterface();
-	BOOL loadShadersWindLight();
 
 	std::vector<S32> mShaderLevel;
 	S32	mMaxAvatarShaderLevel;
@@ -151,30 +149,23 @@ extern LLVector4			gShinyOrigin;
 //utility shaders
 extern LLGLSLShader			gOcclusionProgram;
 extern LLGLSLShader			gOcclusionCubeProgram;
-extern LLGLSLShader			gCustomAlphaProgram;
 extern LLGLSLShader			gGlowCombineProgram;
-extern LLGLSLShader			gSplatTextureRectProgram;
 extern LLGLSLShader			gReflectionMipProgram;
 extern LLGLSLShader         gRadianceGenProgram;
 extern LLGLSLShader         gIrradianceGenProgram;
 extern LLGLSLShader			gGlowCombineFXAAProgram;
 extern LLGLSLShader			gDebugProgram;
 extern LLGLSLShader			gClipProgram;
-extern LLGLSLShader			gDownsampleDepthProgram;
-extern LLGLSLShader			gDownsampleDepthRectProgram;
 extern LLGLSLShader			gBenchmarkProgram;
 extern LLGLSLShader         gReflectionProbeDisplayProgram;
 extern LLGLSLShader         gCopyProgram;
 extern LLGLSLShader         gCopyDepthProgram;
 
-//output tex0[tc0] + tex1[tc1]
-extern LLGLSLShader			gTwoTextureAddProgram;
 //output tex0[tc0] - tex1[tc1]
 extern LLGLSLShader			gTwoTextureCompareProgram;
 //discard some fragments based on user-set color tolerance
 extern LLGLSLShader			gOneTextureFilterProgram;
 						
-extern LLGLSLShader			gOneTextureNoColorProgram;
 
 //object shaders
 extern LLGLSLShader		gObjectPreviewProgram;
@@ -187,10 +178,6 @@ extern LLGLSLShader		gObjectAlphaMaskNoColorProgram;
 extern LLGLSLShader		gObjectAlphaMaskNoColorWaterProgram;
 
 //environment shaders
-extern LLGLSLShader			gMoonProgram;
-extern LLGLSLShader			gStarsProgram;
-extern LLGLSLShader			gTerrainProgram;
-extern LLGLSLShader			gTerrainWaterProgram;
 extern LLGLSLShader			gWaterProgram;
 extern LLGLSLShader			gWaterEdgeProgram;
 extern LLGLSLShader			gUnderWaterProgram;
@@ -203,8 +190,6 @@ extern LLGLSLShader			gHighlightNormalProgram;
 extern LLGLSLShader			gHighlightSpecularProgram;
 
 extern LLGLSLShader			gDeferredHighlightProgram;
-extern LLGLSLShader			gDeferredHighlightNormalProgram;
-extern LLGLSLShader			gDeferredHighlightSpecularProgram;
 
 extern LLGLSLShader			gPathfindingProgram;
 extern LLGLSLShader			gPathfindingNoNormalsProgram;
@@ -216,21 +201,11 @@ extern LLGLSLShader			gAvatarEyeballProgram;
 extern LLGLSLShader			gAvatarPickProgram;
 extern LLGLSLShader			gImpostorProgram;
 
-// WindLight shader handles
-extern LLGLSLShader			gWLSkyProgram;
-extern LLGLSLShader			gWLCloudProgram;
-extern LLGLSLShader			gWLSunProgram;
-extern LLGLSLShader			gWLMoonProgram;
-
 // Post Process Shaders
-extern LLGLSLShader			gPostColorFilterProgram;
-extern LLGLSLShader			gPostNightVisionProgram;
 extern LLGLSLShader         gPostScreenSpaceReflectionProgram;
 
 // Deferred rendering shaders
 extern LLGLSLShader			gDeferredImpostorProgram;
-extern LLGLSLShader			gDeferredWaterProgram;
-extern LLGLSLShader			gDeferredUnderWaterProgram;
 extern LLGLSLShader			gDeferredDiffuseProgram;
 extern LLGLSLShader			gDeferredDiffuseAlphaMaskProgram;
 extern LLGLSLShader			gDeferredNonIndexedDiffuseAlphaMaskProgram;
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index 56faab92c56..0bbf47e5e03 100644
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -38,7 +38,6 @@
 #include "llsky.h"
 #include "llsurface.h"
 #include "llsurfacepatch.h"
-#include "llvosky.h"
 #include "llviewercamera.h"
 #include "llviewertexturelist.h"
 #include "llviewerregion.h"
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index 2356e72aaba..608d2cb799c 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -35,7 +35,6 @@
 #include "llface.h"
 #include "llsky.h"
 #include "llsurface.h"
-#include "llvosky.h"
 #include "llviewercamera.h"
 #include "llviewertexturelist.h"
 #include "llviewerregion.h"
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index c602b71679e..c1bab497474 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1343,14 +1343,12 @@ bool LLPipeline::shadersLoaded()
 
 bool LLPipeline::canUseWindLightShaders() const
 {
-	return (gWLSkyProgram.mProgramObject != 0 &&
-			LLViewerShaderMgr::instance()->getShaderLevel(LLViewerShaderMgr::SHADER_WINDLIGHT) > 1);
+    return true;
 }
 
 bool LLPipeline::canUseWindLightShadersOnObjects() const
 {
-	return (canUseWindLightShaders() 
-		&& LLViewerShaderMgr::instance()->getShaderLevel(LLViewerShaderMgr::SHADER_OBJECT) > 0);
+    return true;
 }
 
 bool LLPipeline::canUseAntiAliasing() const
@@ -2431,64 +2429,6 @@ void LLPipeline::markOccluder(LLSpatialGroup* group)
 	}
 }
 
-void LLPipeline::downsampleDepthBuffer(LLRenderTarget& source, LLRenderTarget& dest, LLRenderTarget* scratch_space)
-{
-    LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE;
-    LL_PROFILE_GPU_ZONE("downsampleDepthBuffer");
-
-	LLGLSLShader* last_shader = LLGLSLShader::sCurBoundShaderPtr;
-
-	LLGLSLShader* shader = NULL;
-
-	if (scratch_space)
-	{
-#if 0  // TODO -- restore occlusion culling functionality
-        GLint bits = 0;
-        bits = GL_DEPTH_BUFFER_BIT;
-		scratch_space->copyContents(source,
-									0, 0, source.getWidth(), source.getHeight(), 
-									0, 0, scratch_space->getWidth(), scratch_space->getHeight(), bits, GL_NEAREST);
-#endif
-	}
-
-	dest.bindTarget();
-	dest.clear(GL_DEPTH_BUFFER_BIT);
-
-	if (source.getUsage() == LLTexUnit::TT_TEXTURE)
-	{
-		shader = &gDownsampleDepthRectProgram;
-		shader->bind();
-		shader->uniform2f(sDelta, 1.f, 1.f);
-		shader->uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, source.getWidth(), source.getHeight());
-	}
-	else
-	{
-		shader = &gDownsampleDepthProgram;
-		shader->bind();
-		shader->uniform2f(sDelta, 1.f/source.getWidth(), 1.f/source.getHeight());
-		shader->uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, 1.f, 1.f);
-	}
-
-	gGL.getTexUnit(0)->bind(scratch_space ? scratch_space : &source, TRUE);
-
-	{
-		LLGLDepthTest depth(GL_TRUE, GL_TRUE, GL_ALWAYS);
-        mScreenTriangleVB->setBuffer();
-        mScreenTriangleVB->drawArrays(LLRender::TRIANGLES, 0, 3);
-	}
-	
-	dest.flush();
-	
-	if (last_shader)
-	{
-		last_shader->bind();
-	}
-	else
-	{
-		shader->unbind();
-	}
-}
-
 void LLPipeline::doOcclusion(LLCamera& camera)
 {
     LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE;
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index f5b77a5e080..123186e1544 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -169,10 +169,6 @@ class LLPipeline
 	void        markVisible(LLDrawable *drawablep, LLCamera& camera);
 	void		markOccluder(LLSpatialGroup* group);
 
-	//downsample source to dest, taking the maximum depth value per pixel in source and writing to dest
-	// if source's depth buffer cannot be bound for reading, a scratch space depth buffer must be provided
-	void		downsampleDepthBuffer(LLRenderTarget& source, LLRenderTarget& dest, LLRenderTarget* scratch_space = NULL);
-
 	void		doOcclusion(LLCamera& camera);
 	void		markNotCulled(LLSpatialGroup* group, LLCamera &camera);
 	void        markMoved(LLDrawable *drawablep, bool damped_motion = false);
-- 
GitLab