diff --git a/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowF.glsl
deleted file mode 100644
index d973326f9353e790d72aa7eeaf7494db7513a8eb..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowF.glsl
+++ /dev/null
@@ -1,44 +0,0 @@
-/** 
- * @file avatarShadowF.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 vec4 pos;
-VARYING vec2 vary_texcoord0;
-
-vec4 computeMoments(float depth, float a);
-
-void main() 
-{
-    frag_color = computeMoments(length(pos), 1.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowV.glsl b/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowV.glsl
deleted file mode 100644
index 1a655e64671577f23718b263f2e1fdddf3ab7ed4..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/attachmentShadowV.glsl
+++ /dev/null
@@ -1,49 +0,0 @@
-/** 
- * @file attachmentShadowV.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 projection_matrix;
-uniform mat4 modelview_matrix;
-uniform mat4 texture_matrix0;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-mat4 getObjectSkinnedTransform();
-
-VARYING vec4 pos;
-
-void main()
-{
-	//transform vertex
-	mat4 mat = getObjectSkinnedTransform();
-	
-	mat = modelview_matrix * mat;
-	pos = (mat*vec4(position.xyz, 1.0));
-	pos = projection_matrix * vec4(pos.xyz, 1.0);
-
-#if !defined(DEPTH_CLAMP)
-	pos.z = max(pos.z, -pos.w+0.01);
-#endif
-	gl_Position = pos;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/avatarShadowF.glsl
deleted file mode 100644
index 48eefc7a73c7ccb9f4b86459925b63b8087ac901..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/avatarShadowF.glsl
+++ /dev/null
@@ -1,52 +0,0 @@
-/** 
- * @file avatarShadowF.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;
-
-#if !defined(DEPTH_CLAMP)
-VARYING vec4 post_pos;
-#endif
-
-VARYING vec4 pos;
-
-vec4 computeMoments(float depth, float a);
-
-void main() 
-{
-    frag_color = computeMoments(length(pos), 1.0);
-
-#if !defined(DEPTH_CLAMP)
-	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);
-#endif
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class3/deferred/avatarShadowV.glsl
deleted file mode 100644
index 164b355f2088cc42b69a2e5d5841be5762be5d77..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/avatarShadowV.glsl
+++ /dev/null
@@ -1,68 +0,0 @@
-/** 
- * @file avatarShadowV.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 projection_matrix;
-
-mat4 getSkinnedTransform();
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec3 normal;
-ATTRIBUTE vec2 texcoord0;
-
-#if !defined(DEPTH_CLAMP)
-VARYING vec4 post_pos;
-#endif
-
-VARYING vec4 pos;
-
-void main()
-{
-	vec3 norm;
-	
-	vec4 pos_in = vec4(position.xyz, 1.0);
-	mat4 trans = getSkinnedTransform();
-
-	pos.x = dot(trans[0], pos_in);
-	pos.y = dot(trans[1], pos_in);
-	pos.z = dot(trans[2], pos_in);
-	pos.w = 1.0;
-	
-	norm.x = dot(trans[0].xyz, normal);
-	norm.y = dot(trans[1].xyz, normal);
-	norm.z = dot(trans[2].xyz, normal);
-	norm = normalize(norm);
-	
-	pos = projection_matrix * pos;
-
-#if !defined(DEPTH_CLAMP)
-	post_pos = pos;
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-
-}
-
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl
deleted file mode 100644
index 32210f60dc25a1f043aae0a00fe63da42b8a974c..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl
+++ /dev/null
@@ -1,119 +0,0 @@
-/** 
- * @file class3/deferred/cloudsF.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$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseMap;
-
-VARYING vec4 pos;
-VARYING float target_pos_x;
-VARYING float vary_CloudDensity;
-VARYING vec2 vary_texcoord0;
-VARYING vec2 vary_texcoord1;
-VARYING vec2 vary_texcoord2;
-VARYING vec2 vary_texcoord3;
-
-uniform sampler2D cloud_noise_texture;
-uniform sampler2D cloud_noise_texture_next;
-uniform float blend_factor;
-uniform vec4 cloud_pos_density1;
-uniform vec4 cloud_pos_density2;
-uniform vec4 cloud_color;
-uniform float cloud_shadow;
-uniform float cloud_scale;
-uniform float cloud_variance;
-uniform vec3 camPosLocal;
-uniform vec3 sun_dir;
-uniform float sun_size;
-uniform float far_z;
-
-vec4 cloudNoise(vec2 uv)
-{
-   vec4 a = texture2D(cloud_noise_texture, uv);
-   vec4 b = texture2D(cloud_noise_texture_next, uv);
-   vec4 cloud_noise_sample = mix(a, b, blend_factor);
-   return normalize(cloud_noise_sample);
-}
-
-vec4 computeMoments(float depth, float alpha);
-
-void main()
-{
-    if (cloud_scale >= 0.001)
-    {
-        // Set variables
-        vec2 uv1 = vary_texcoord0.xy;
-        vec2 uv2 = vary_texcoord1.xy;
-        vec2 uv3 = vary_texcoord2.xy;
-        float cloudDensity = 2.0 * (cloud_shadow - 0.25);
-    
-        vec2 uv4 = vary_texcoord3.xy;
-    
-        vec2 disturbance  = vec2(cloudNoise(uv1 / 8.0f).x, cloudNoise((uv3 + uv1) / 16.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);
-        vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);
-    
-        // Offset texture coords
-        uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density
-        uv2 += cloud_pos_density1.xy;   //large texture, self shadow
-        uv3 += cloud_pos_density2.xy;   //small texture, visible density
-        uv4 += cloud_pos_density2.xy;   //small texture, self shadow
-    
-        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);
-    
-        cloudDensity *= 1.0 - (density_variance * density_variance);
-    
-        // Compute alpha1, the main cloud opacity
-        float alpha1 = (cloudNoise(uv1).x - 0.5) + (cloudNoise(uv3).x - 0.5) * cloud_pos_density2.z;
-        alpha1 = min(max(alpha1 + cloudDensity, 0.) * 10 * cloud_pos_density1.z, 1.);
-    
-        // And smooth
-        alpha1 = 1. - alpha1 * alpha1;
-        alpha1 = 1. - alpha1 * alpha1;  
-    
-        if (alpha1 < 0.001f)
-        {
-            discard;
-        }
-    
-        // Compute alpha2, for self shadowing effect
-        // (1 - alpha2) will later be used as percentage of incoming sunlight
-        float alpha2 = (cloudNoise(uv2).x - 0.5);
-        alpha2 = min(max(alpha2 + cloudDensity, 0.) * 2.5 * cloud_pos_density1.z, 1.);
-    
-        // And smooth
-        alpha2 = 1. - alpha2;
-        alpha2 = 1. - alpha2 * alpha2;  
-    
-        frag_color = computeMoments(length(pos), alpha1);
-    }
-    else
-    {
-        frag_color = vec4(0);
-    }
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowV.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudShadowV.glsl
deleted file mode 100644
index effb070f934ed4422f333c5b3cca100d0357742c..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowV.glsl
+++ /dev/null
@@ -1,63 +0,0 @@
-/** 
- * @file cloudShadowV.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_projection_matrix;
-uniform float shadow_target_width;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec4 diffuse_color;
-ATTRIBUTE vec2 texcoord0;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING vec4 pos;
-VARYING float target_pos_x;
-VARYING vec2 vary_texcoord0;
-VARYING vec4 vertex_color;
-
-void passTextureIndex();
-
-void main()
-{
-	//transform vertex
-	vec4 pre_pos = vec4(position.xyz, 1.0);
-	pos = modelview_projection_matrix * pre_pos;
-	target_pos_x = 0.5 * (shadow_target_width - 1.0) * pos.x;
-
-#if !defined(DEPTH_CLAMP)
-	pos_zd2 = pos.z * 0.5;
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-	
-	passTextureIndex();
-
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-	vertex_color = diffuse_color;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
deleted file mode 100644
index e40d7e7c75381f3678f5721492e2a322b737b2b8..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
+++ /dev/null
@@ -1,166 +0,0 @@
-/** 
- * @file class3/deferred/cloudsF.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$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-/////////////////////////////////////////////////////////////////////////
-// The fragment shader for the sky
-/////////////////////////////////////////////////////////////////////////
-
-VARYING vec4 vary_CloudColorSun;
-VARYING vec4 vary_CloudColorAmbient;
-VARYING float vary_CloudDensity;
-VARYING vec2 vary_texcoord0;
-VARYING vec2 vary_texcoord1;
-VARYING vec2 vary_texcoord2;
-VARYING vec2 vary_texcoord3;
-VARYING vec3 vary_pos;
-
-uniform sampler2D cloud_noise_texture;
-uniform sampler2D cloud_noise_texture_next;
-uniform float blend_factor;
-uniform vec4 cloud_pos_density1;
-uniform vec4 cloud_pos_density2;
-uniform vec4 cloud_color;
-uniform float cloud_shadow;
-uniform float cloud_scale;
-uniform float cloud_variance;
-uniform vec3 camPosLocal;
-uniform vec3 sun_dir;
-uniform float sun_size;
-uniform float far_z;
-
-uniform sampler2D transmittance_texture;
-uniform sampler3D scattering_texture;
-uniform sampler3D single_mie_scattering_texture;
-uniform sampler2D irradiance_texture;
-uniform sampler2D sh_input_r;
-uniform sampler2D sh_input_g;
-uniform sampler2D sh_input_b;
-
-vec3 GetSkyLuminance(vec3 camPos, vec3 view_dir, float shadow_length, vec3 dir, out vec3 transmittance);
-
-/// Soft clips the light with a gamma correction
-vec3 scaleSoftClip(vec3 light);
-
-vec4 cloudNoise(vec2 uv)
-{
-   vec4 a = texture2D(cloud_noise_texture, uv);
-   vec4 b = texture2D(cloud_noise_texture_next, uv);
-   vec4 cloud_noise_sample = mix(a, b, blend_factor);
-   return cloud_noise_sample;
-}
-
-void main()
-{
-    // Set variables
-    vec2 uv1 = vary_texcoord0.xy;
-    vec2 uv2 = vary_texcoord1.xy;
-    vec2 uv3 = vary_texcoord2.xy;
-    float cloudDensity = 2.0 * (cloud_shadow - 0.25);
-
-    if (cloud_scale < 0.001)
-    {
-        discard;
-    }
-
-    vec2 uv4 = vary_texcoord3.xy;
-
-    vec2 disturbance = vec2(cloudNoise(uv1 / 16.0f).x, cloudNoise((uv3 + uv1) / 16.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);
-
-    // Offset texture coords
-    uv1 += cloud_pos_density1.xy + (disturbance * 0.2); //large texture, visible density
-    uv2 += cloud_pos_density1.xy;   //large texture, self shadow
-    uv3 += cloud_pos_density2.xy; //small texture, visible density
-    uv4 += cloud_pos_density2.xy;   //small texture, self shadow
-
-    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0) * 4.0);
-
-    cloudDensity *= 1.0 - (density_variance * density_variance);
-
-    // Compute alpha1, the main cloud opacity
-    float alpha1 = (cloudNoise(uv1).x - 0.5) + (cloudNoise(uv3).x - 0.5) * cloud_pos_density2.z;
-    alpha1 = min(max(alpha1 + cloudDensity, 0.) * 10 * cloud_pos_density1.z, 1.);
-
-    // And smooth
-    alpha1 = 1. - alpha1 * alpha1;
-    alpha1 = 1. - alpha1 * alpha1;  
-
-    if (alpha1 < 0.001f)
-    {
-        discard;
-    }
-
-    // Compute alpha2, for self shadowing effect
-    // (1 - alpha2) will later be used as percentage of incoming sunlight
-    float alpha2 = (cloudNoise(uv2).x - 0.5);
-    alpha2 = min(max(alpha2 + cloudDensity, 0.) * 2.5 * cloud_pos_density1.z, 1.);
-
-    // And smooth
-    alpha2 = 1. - alpha2;
-    alpha2 = 1. - alpha2 * alpha2;  
-
-    vec3 view_ray = vary_pos.xyz + camPosLocal;
-
-    vec3 view_direction = normalize(view_ray);
-    vec3 sun_direction  = normalize(sun_dir);
-    vec3 earth_center   = vec3(0, 0, -6360.0f);
-    vec3 camPos = (camPosLocal / 1000.0f) - earth_center;
-
-    vec3 transmittance;
-    vec3 radiance_sun  = GetSkyLuminance(camPos, view_direction, 1.0 - alpha1, sun_direction, transmittance);
-
-    vec3 sun_color = vec3(1.0) - exp(-radiance_sun * 0.0001);
-
-    // Combine
-    vec4 color;
-
-    vec4 l1tap = vec4(1.0/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265));
-
-    vec4 l1r = texture2D(sh_input_r, vec2(0,0));
-    vec4 l1g = texture2D(sh_input_g, vec2(0,0));
-    vec4 l1b = texture2D(sh_input_b, vec2(0,0));
-
-    vec3 sun_indir = vec3(-view_direction.xy, view_direction.z);
-    vec3 amb = vec3(dot(l1r, l1tap * vec4(1, sun_indir)),
-                    dot(l1g, l1tap * vec4(1, sun_indir)),
-                    dot(l1b, l1tap * vec4(1, sun_indir)));
-
-
-    amb = max(vec3(0), amb);
-
-    color.rgb = sun_color * cloud_color.rgb * (1. - alpha2);
-    color.rgb = pow(color.rgb, vec3(1.0 / 2.2));
-    color.rgb += amb;
-
-    frag_data[0] = vec4(color.rgb, alpha1);
-    frag_data[1] = vec4(0);
-    frag_data[2] = vec4(0,1,0,1);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudsV.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudsV.glsl
deleted file mode 100644
index 71e422ddf06598fdde9bb87cafc2ae9772ac25e1..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/cloudsV.glsl
+++ /dev/null
@@ -1,70 +0,0 @@
-/** 
- * @file WLCloudsV.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 mat4 modelview_projection_matrix;
-uniform mat4 modelview_matrix;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-//////////////////////////////////////////////////////////////////////////
-// The vertex shader for creating the atmospheric sky
-///////////////////////////////////////////////////////////////////////////////
-
-// Output parameters
-VARYING vec2 vary_texcoord0;
-VARYING vec2 vary_texcoord1;
-VARYING vec2 vary_texcoord2;
-VARYING vec2 vary_texcoord3;
-VARYING vec3 vary_pos;
-
-// Inputs
-uniform float cloud_scale;
-uniform vec4  lightnorm;
-uniform vec3  camPosLocal;
-
-void main()
-{
-    vary_pos = position;
-
-    // World / view / projection
-    gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0);
-
-    // Texture coords
-    vary_texcoord0 = texcoord0;
-    vary_texcoord0.xy -= 0.5;
-    vary_texcoord0.xy /= max(0.001, cloud_scale);
-    vary_texcoord0.xy += 0.5;
-
-    vary_texcoord1 = vary_texcoord0;
-    vary_texcoord1.x += lightnorm.x * 0.0125;
-    vary_texcoord1.y += lightnorm.z * 0.0125;
-
-    vary_texcoord2 = vary_texcoord0 * 16.;
-    vary_texcoord3 = vary_texcoord1 * 16.;
-
-    // END CLOUDS
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/depthToShadowVolumeG.glsl b/indra/newview/app_settings/shaders/class3/deferred/depthToShadowVolumeG.glsl
deleted file mode 100644
index cdaff4b09f7eb2950cd0a6db34ee837343deb00d..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/depthToShadowVolumeG.glsl
+++ /dev/null
@@ -1,202 +0,0 @@
-/** 
- * @file depthToShadowVolumeG.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-#extension GL_ARB_geometry_shader4  : enable
-#extension GL_ARB_texture_rectangle : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-layout (triangles) in;
-layout (triangle_strip, max_vertices = 128) out;
-
-uniform sampler2DRect depthMap;
-uniform mat4 shadowMatrix[6]; 
-uniform vec4 lightpos;
-
-VARYING vec2 vary_texcoord0;
-
-out vec3 to_vec;
-
-void cross_products(out vec4 ns[3], int a, int b, int c)
-{
-   ns[0] = cross(gl_PositionIn[b].xyz - gl_PositionIn[a].xyz, gl_PositionIn[c].xyz - gl_PositionIn[a].xyz);
-   ns[1] = cross(gl_PositionIn[c].xyz - gl_PositionIn[b].xyz, gl_PositionIn[a].xyz - gl_PositionIn[b].xyz);
-   ns[2] = cross(gl_PositionIn[a].xyz - gl_PositionIn[c].xyz, gl_PositionIn[b].xyz - gl_PositionIn[c].xyz);
-}
-
-vec3 getLightDirection(vec4 lightpos, vec3 pos)
-{
-
-    vec3 lightdir = lightpos.xyz - lightpos.w * pos;
-    return lightdir;
-}
-
-void emitTri(vec4 v[3])
-{
-    gl_Position = proj_matrix * v[0];
-    EmitVertex();
-
-    gl_Position = proj_matrix * v[1];
-    EmitVertex();
-
-    gl_Position = proj_matrix * v[2];
-    EmitVertex();
-
-    EndPrimitive();
-}
-
-void emitQuad(vec4 v[4]
-{
-    // Emit a quad as a triangle strip.
-    gl_Position = proj_matrix*v[0];
-    EmitVertex();
-
-    gl_Position = proj_matrix*v[1];
-    EmitVertex();
-
-    gl_Position = proj_matrix*v[2];
-    EmitVertex();
-
-    gl_Position = proj_matrix*v[3];
-    EmitVertex(); 
-
-    EndPrimitive();
-}
-
-void emitPrimitives(int layer)
-{
-    int i = layer;
-    gl_Layer = i;
-
-    vec4 depth1 = vec4(texture2DRect(depthMap, tc0).rg, texture2DRect(depthMap, tc1).rg));
-    vec3 depth2 = vec4(texture2DRect(depthMap, tc2).rg, texture2DRect(depthMap, tc3).rg));
-    vec3 depth3 = vec4(texture2DRect(depthMap, tc4).rg, texture2DRect(depthMap, tc5).rg));
-    vec3 depth4 = vec4(texture2DRect(depthMap, tc6).rg, texture2DRect(depthMap, tc7).rg));
-
-    depth1 = min(depth1, depth2);
-    depth1 = min(depth1, depth3);
-    depth1 = min(depth1, depth4);
-
-    vec2 depth = min(depth1.xy, depth1.zw);
-
-    int side = sqrt(gl_VerticesIn);
-
-    for (int j = 0; j < side; j++)
-    {
-        for (int k = 0; k < side; ++k)
-        {
-            vec3 pos = gl_PositionIn[(j * side) + k].xyz;
-            vec4 v = shadowMatrix[i] * vec4(pos, 1.0);
-            gl_Position = v;
-            to_vec = pos - light_position.xyz * depth;
-            EmitVertex();
-        }
-
-        EndPrimitive();
-    }
-
-    vec3 norms[3]; // Normals
-    vec3 lightdir3]; // Directions toward light
-
-    vec4 v[4]; // Temporary vertices
-
-    vec4 or_pos[3] =
-    {  // Triangle oriented toward light source
-        gl_PositionIn[0],
-        gl_PositionIn[2],
-        gl_PositionIn[4]
-    };
-
-    // Compute normal at each vertex.
-    cross_products(n, 0, 2, 4);
-
-    // Compute direction from vertices to light.
-    lightdir[0] = getLightDirection(lightpos, gl_PositionIn[0].xyz);
-    lightdir[1] = getLightDirection(lightpos, gl_PositionIn[2].xyz);
-    lightdir[2] = getLightDirection(lightpos, gl_PositionIn[4].xyz);
-
-    // Check if the main triangle faces the light.
-    bool faces_light = true;
-    if (!(dot(ns[0],d[0]) > 0
-         |dot(ns[1],d[1]) > 0
-         |dot(ns[2],d[2]) > 0))
-    {
-        // Flip vertex winding order in or_pos.
-        or_pos[1] = gl_PositionIn[4];
-        or_pos[2] = gl_PositionIn[2];
-        faces_light = false;
-    }
-
-    // Near cap: simply render triangle.
-    emitTri(or_pos);
-
-    // Far cap: extrude positions to infinity.
-    v[0] =vec4(lightpos.w * or_pos[0].xyz - lightpos.xyz,0);
-    v[1] =vec4(lightpos.w * or_pos[2].xyz - lightpos.xyz,0);
-    v[2] =vec4(lightpos.w * or_pos[1].xyz - lightpos.xyz,0);
-
-    emitTri(v);
-
-    // Loop over all edges and extrude if needed.
-    for ( int i=0; i<3; i++ ) 
-    {
-       // Compute indices of neighbor triangle.
-       int v0 = i*2;
-       int nb = (i*2+1);
-       int v1 = (i*2+2) % 6;
-       cross_products(n, v0, nb, v1);
-
-       // Compute direction to light, again as above.
-       d[0] =lightpos.xyz-lightpos.w*gl_PositionIn[v0].xyz;
-       d[1] =lightpos.xyz-lightpos.w*gl_PositionIn[nb].xyz;
-       d[2] =lightpos.xyz-lightpos.w*gl_PositionIn[v1].xyz;
-
-       bool is_parallel = gl_PositionIn[nb].w < 1e-5;
-
-       // Extrude the edge if it does not have a
-       // neighbor, or if it's a possible silhouette.
-       if (is_parallel ||
-          ( faces_light != (dot(ns[0],d[0])>0 ||
-                            dot(ns[1],d[1])>0 ||
-                            dot(ns[2],d[2])>0) ))
-       {
-           // Make sure sides are oriented correctly.
-           int i0 = faces_light ? v0 : v1;
-           int i1 = faces_light ? v1 : v0;
-
-           v[0] = gl_PositionIn[i0];
-           v[1] = vec4(lightpos.w*gl_PositionIn[i0].xyz - lightpos.xyz, 0);
-           v[2] = gl_PositionIn[i1];
-           v[3] = vec4(lightpos.w*gl_PositionIn[i1].xyz - lightpos.xyz, 0);
-
-           emitQuad(v);
-       }
-    }
-}
-
-void main()
-{
-    // Output
-    emitPrimitives(0);
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShF.glsl b/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShF.glsl
deleted file mode 100644
index 34d26cddea8b452893fa22e9436fb2754a3d35a4..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShF.glsl
+++ /dev/null
@@ -1,70 +0,0 @@
-/** 
- * @file class3/deferred/gatherSkyShF.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$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-VARYING vec2 vary_frag;
-
-uniform vec2 screen_res;
-uniform sampler2D sh_input_r;
-uniform sampler2D sh_input_g;
-uniform sampler2D sh_input_b;
-
-void main()
-{
-    vec2 offset	  = vec2(2.0) / screen_res;
-
-    vec4 r = vec4(0);
-    vec4 g = vec4(0);
-    vec4 b = vec4(0);
-
-    vec2 tc = vary_frag * 2.0;
-
-	r += texture2D(sh_input_r, tc + vec2(0,        0));
-	r += texture2D(sh_input_r, tc + vec2(offset.x, 0));
-	r += texture2D(sh_input_r, tc + vec2(0,        offset.y));
-	r += texture2D(sh_input_r, tc + vec2(offset.x, offset.y));
-    r /= 4.0f;
-
-	g += texture2D(sh_input_g, tc + vec2(0,        0));
-	g += texture2D(sh_input_g, tc + vec2(offset.x, 0));
-	g += texture2D(sh_input_g, tc + vec2(0,        offset.y));
-	g += texture2D(sh_input_g, tc + vec2(offset.x, offset.y));
-    g /= 4.0f;
-
-	b += texture2D(sh_input_b, tc + vec2(0,        0));
-	b += texture2D(sh_input_b, tc + vec2(offset.x, 0));
-	b += texture2D(sh_input_b, tc + vec2(0,        offset.y));
-	b += texture2D(sh_input_b, tc + vec2(offset.x, offset.y));
-    b /= 4.0f;
-
-    frag_data[0] = r;
-    frag_data[1] = g;
-    frag_data[2] = b;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShV.glsl b/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShV.glsl
deleted file mode 100644
index 337c8a50fe5985e8a9591534898ef49239a9eef7..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/gatherSkyShV.glsl
+++ /dev/null
@@ -1,40 +0,0 @@
-/** 
- * @file gatherSkyShV.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$
- */
- 
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec2 vary_frag;
-uniform vec2 screen_res;
-
-void main()
-{
-    // pass through untransformed fullscreen pos
-    float oo_divisor = screen_res.x / 64.0;
-    vec3 pos = (position.xyz * oo_divisor) + vec3(oo_divisor - 1, oo_divisor - 1, 0);
-	gl_Position = vec4(pos.xyz, 1.0);
-    vary_frag = texcoord0 * oo_divisor;
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/genSkyShF.glsl b/indra/newview/app_settings/shaders/class3/deferred/genSkyShF.glsl
deleted file mode 100644
index d5d91c88f07c78a6159f68f1c819cdcdf8a4e324..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/genSkyShF.glsl
+++ /dev/null
@@ -1,111 +0,0 @@
-/** 
- * @file class3/deferred/genSkyShF.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$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-VARYING vec2 vary_frag;
-
-uniform vec3 sun_dir;
-
-uniform sampler2D transmittance_texture;
-uniform sampler3D scattering_texture;
-uniform sampler3D single_mie_scattering_texture;
-uniform sampler2D irradiance_texture;
-
-vec3 GetSkyLuminance(vec3 camPos, vec3 view_dir, float shadow_length, vec3 dir, out vec3 transmittance);
-
-vec3 calcDirection(vec2 tc)
-{
-     float phi = tc.y * 2.0 * 3.14159265;
-     float cosTheta = sqrt(1.0 - tc.x);
-     float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
-     return vec3(cos(phi) * sinTheta, sin(phi) * sinTheta, cosTheta);
-}
-
-// reverse mapping above to convert a hemisphere direction into phi/theta values
-void getPhiAndThetaFromDirection(vec3 dir, out float phi, out float theta)
-{
-     float sin_theta;
-     float cos_theta;
-     cos_theta = dir.z;
-     theta     = acos(cos_theta);
-     sin_theta = sin(theta);
-     phi       = abs(sin_theta) > 0.0001 ? acos(dir.x / sin_theta) : 1.0;
-}
-
-// reverse mapping above to convert a hemisphere direction into an SH texture sample pos
-vec2 calcShUvFromDirection(vec3 dir)
-{
-    vec2 uv;
-    float phi;
-    float theta;
-    getPhiAndThetaFromDirection(dir, phi, theta);
-    uv.y = phi   / 2.0 * 3.14159265;
-    uv.x = theta / 2.0 * 3.14159265;
-    return uv;
-}
-
-void projectToL1(vec3 n, vec3 c, vec4 basis, out vec4 coeffs[3])
-{
-    coeffs[0] = vec4(basis.x, n * basis.yzw * c.r);
-    coeffs[1] = vec4(basis.x, n * basis.yzw * c.g);
-    coeffs[2] = vec4(basis.x, n * basis.yzw * c.b);
-}
-
-void main()
-{
-    float Y00 = sqrt(1.0 / 3.14159265) * 0.5;
-    float Y1x = sqrt(3.0 / 3.14159265) * 0.5;
-    float Y1y = Y1x;
-    float Y1z = Y1x;
-
-    vec4 L1 = vec4(Y00, Y1x, Y1y, Y1z);
-
-    vec3 view_direction = calcDirection(vary_frag);
-    vec3 sun_direction  = normalize(sun_dir);
-    vec3 cam_pos        = vec3(0, 0, 6360);
-
-    vec3 transmittance;
-    vec3 radiance = GetSkyLuminance(cam_pos, view_direction, 0.0f, sun_direction, transmittance);
-
-    vec3 color = vec3(1.0) - exp(-radiance * 0.0001);
-
-    color = pow(color, vec3(1.0/2.2));
-
-    vec4 coeffs[3];
-    coeffs[0] = vec4(0);
-    coeffs[1] = vec4(0);
-    coeffs[2] = vec4(0);
-
-    projectToL1(view_direction, color.rgb, L1, coeffs);
-
-    frag_data[0] = coeffs[0];
-    frag_data[1] = coeffs[1];
-    frag_data[2] = coeffs[2];
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/genSkyShV.glsl b/indra/newview/app_settings/shaders/class3/deferred/genSkyShV.glsl
deleted file mode 100644
index b466883dc7e23ea80bf0f740f698f3b80a39c024..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/genSkyShV.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/** 
- * @file genSkyShV.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$
- */
- 
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec2 vary_frag;
-
-void main()
-{
-    // pass through untransformed fullscreen pos
-	gl_Position = vec4(position.xyz, 1.0);
-    vary_frag = texcoord0;
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl
deleted file mode 100644
index dee97a8e5157b06acfe6acc8a0d3b023e038fd9d..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl
+++ /dev/null
@@ -1,287 +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 sampler2DRect diffuseRect;
-uniform sampler2DRect specularRect;
-uniform sampler2DRect depthMap;
-uniform sampler2DRect normalMap;
-uniform samplerCube environmentMap;
-uniform sampler2DRect 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 getNormWithEnvIntensity(vec2 screenpos, out float envIntensity);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-    vec4 ret = texture2DLod(projectionMap, tc, lod);
-    
-    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);
-
-    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);
-
-    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() 
-{
-    vec4 frag = vary_fragcoord;
-    frag.xyz /= frag.w;
-    frag.xyz = frag.xyz*0.5+0.5;
-    frag.xy *= screen_res;
-    
-    vec3 pos = getPosition(frag.xy).xyz;
-    vec3 lv = center.xyz-pos.xyz;
-    float dist = length(lv);
-    dist /= size;
-    if (dist > 1.0)
-    {
-        discard;
-    }
-    
-    float shadow = 1.0;
-    
-    if (proj_shadow_idx >= 0)
-    {
-        vec4 shd = texture2DRect(lightMap, frag.xy);
-        shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-        shadow += shadow_fade;
-        shadow = clamp(shadow, 0.0, 1.0);        
-    }
-    
-    float envIntensity;
-    vec3 norm = getNormWithEnvIntensity(frag.xy, envIntensity);
-
-    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*0.5)+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 col = vec3(0,0,0);
-        
-    vec3 diff_tex = srgb_to_linear(texture2DRect(diffuseRect, frag.xy).rgb);
-    
-    vec4 spec = texture2DRect(specularRect, frag.xy);
-
-    vec3 dlit = vec3(0, 0, 0);
-
-    float noise = texture2D(noiseMap, frag.xy/128.0).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)*(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)
-    {
-        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);
-            col += dlit*scol*spec.rgb*shadow;
-            //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 * shadow * envIntensity;
-                }
-            }
-        }
-    }
-
-    //not sure why, but this line prevents MATBUG-194
-    col = max(col, vec3(0.0));
-
-    col = scaleDownLight(col);
-
-    //output linear space color as gamma correction happens down stream
-    frag_color.rgb = col;   
-    frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/pointShadowBlurF.glsl b/indra/newview/app_settings/shaders/class3/deferred/pointShadowBlurF.glsl
deleted file mode 100644
index ca9ce3a2e1b818aca6e25d07a1b43f24094d4efa..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/pointShadowBlurF.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/** 
- * @file pointShadowBlur.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 samplerCube cube_map; 
-
-in vec3 to_vec;
-
-out vec4 fragColor;
-
-void main() 
-{
-	vec4 vcol = texture(cube_map, to_vec);
-	fragColor = vec4(vcol.rgb, 1.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shVisF.glsl b/indra/newview/app_settings/shaders/class3/deferred/shVisF.glsl
deleted file mode 100644
index c8991f7a181adcc13efca7b69df099acce572d97..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shVisF.glsl
+++ /dev/null
@@ -1,73 +0,0 @@
-/** 
- * @file class3/deferred/shVisF.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
-
-/////////////////////////////////////////////////////////////////////////
-// Fragment shader for L1 SH debug rendering
-/////////////////////////////////////////////////////////////////////////
-
-uniform sampler2D sh_input_r;
-uniform sampler2D sh_input_g;
-uniform sampler2D sh_input_b;
-
-uniform mat3 inv_modelviewprojection;
-
-VARYING vec4 vary_pos;
-
-void main(void) 
-{
-    vec2 coord = vary_pos.xy + vec2(0.5,0.5);
-
-    coord.x *= (1.6/0.9);
-
-    if (dot(coord, coord) > 0.25)
-    {
-        discard;
-    }
-
-    vec4 n = vec4(coord*2.0, 0.0, 1);
-    //n.y = -n.y;
-    n.z = sqrt(max(1.0-n.x*n.x-n.y*n.y, 0.0));
-    //n.xyz = inv_modelviewprojection * n.xyz;
-
-    vec4 l1tap = vec4(1.0/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265));
-    vec4 l1r = texture2D(sh_input_r, vec2(0,0));
-    vec4 l1g = texture2D(sh_input_g, vec2(0,0));
-    vec4 l1b = texture2D(sh_input_b, vec2(0,0));
-    vec3 indirect = vec3(
-                      dot(l1r, l1tap * n),
-                      dot(l1g, l1tap * n),
-                      dot(l1b, l1tap * n));
-
-    //indirect = pow(indirect, vec3(0.45));
-    indirect *= 3.0;
-
-	frag_color = vec4(indirect, 1.0);
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shVisV.glsl b/indra/newview/app_settings/shaders/class3/deferred/shVisV.glsl
deleted file mode 100644
index 8f32dfde79d4f84e2fe38bb7c84cf3140a02b0da..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shVisV.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-/** 
- * @file class3/deferred/shVisV.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_pos;
-
-void main()
-{
-    // Output
-    vary_pos = vec4(position, 1);
-    gl_Position = vary_pos;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendF.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendF.glsl
deleted file mode 100644
index 345c07a354e407f21ae05d01998b7966fa485974..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendF.glsl
+++ /dev/null
@@ -1,58 +0,0 @@
-/** 
- * @file shadowAlphaMaskF.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseMap;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING float pos_w;
-
-VARYING float target_pos_x;
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-VARYING vec3 pos;
-
-vec4 computeMoments(float depth, float a);
-
-void main() 
-{
-	float alpha = diffuseLookup(vary_texcoord0.xy).a * vertex_color.a;
-
-    frag_color = computeMoments(length(pos), float a);
-
-#if !defined(DEPTH_CLAMP)
-	gl_FragDepth = max(pos_zd2/pos_w+0.5, 0.0);
-#endif
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendV.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendV.glsl
deleted file mode 100644
index af1461c297c7c332d63c7be1c4f1fa5e030e8214..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaBlendV.glsl
+++ /dev/null
@@ -1,66 +0,0 @@
-/** 
- * @file shadowAlphaMaskV.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_projection_matrix;
-uniform float shadow_target_width;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec4 diffuse_color;
-ATTRIBUTE vec2 texcoord0;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING float target_pos_x;
-VARYING vec4 pos;
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-void passTextureIndex();
-
-void main()
-{
-	//transform vertex
-	vec4 pre_pos = vec4(position.xyz, 1.0);
-	vec4 pos = modelview_projection_matrix * pre_pos;
-	target_pos_x = 0.5 * (shadow_target_width - 1.0) * pos.x;
-
-	pos_w = pos.w;
-
-#if !defined(DEPTH_CLAMP)
-	pos_zd2 = pos.z * 0.5;
-	
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-	
-	passTextureIndex();
-
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-	vertex_color = diffuse_color;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskF.glsl
deleted file mode 100644
index 50f1ffd6266ba9c873856b72b1a5d835d03c7655..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskF.glsl
+++ /dev/null
@@ -1,74 +0,0 @@
-/** 
- * @file class3/deferred/shadowAlphaMaskF.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseMap;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING float pos_w;
-
-VARYING float target_pos_x;
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-vec4 getPosition(vec2 screen_coord);
-vec4 computeMoments(float depth, float a);
-
-void main() 
-{
-    vec4 pos = getPosition(vary_texcoord0.xy);
-
-    float alpha = diffuseLookup(vary_texcoord0.xy).a * vertex_color.a;
-
-    if (alpha < 0.05) // treat as totally transparent
-    {
-        discard;
-    }
-
-    if (alpha < 0.88) // treat as semi-transparent
-    {
-        if (fract(0.5*floor(target_pos_x / pos_w )) < 0.25)
-        {
-            discard;
-        }
-    }
-
-    frag_color = computeMoments(length(pos.xyz), alpha);
-    
-#if !defined(DEPTH_CLAMP)
-    gl_FragDepth = max(pos_zd2/pos_w+0.5, 0.0);
-#endif
-
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskV.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskV.glsl
deleted file mode 100644
index 6a646f5e9e95a5da561b61e3ec628879914cf8c1..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowAlphaMaskV.glsl
+++ /dev/null
@@ -1,67 +0,0 @@
-/** 
- * @file class3/deferred/shadowAlphaMaskV.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-uniform mat4 texture_matrix0;
-uniform mat4 modelview_projection_matrix;
-uniform float shadow_target_width;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec4 diffuse_color;
-ATTRIBUTE vec2 texcoord0;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING vec4 pos;
-VARYING float target_pos_x;
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-void passTextureIndex();
-
-void main()
-{
-	//transform vertex
-	vec4 pre_pos = vec4(position.xyz, 1.0);
-
-	pos = modelview_projection_matrix * pre_pos;
-
-	target_pos_x = 0.5 * (shadow_target_width - 1.0) * pos.x;
-
-#if !defined(DEPTH_CLAMP)
-	pos_zd2 = pos.z * 0.5;
-	
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-	
-	passTextureIndex();
-
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-
-	vertex_color = diffuse_color;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowCubeV.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowCubeV.glsl
deleted file mode 100644
index db8c75fb8ad4a6d1016e9a1864176b04a0697e2c..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowCubeV.glsl
+++ /dev/null
@@ -1,50 +0,0 @@
-/** 
- * @file class3/deferred/shadowCubeV.glsl
- *
- * $LicenseInfo:firstyear=2011&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;
-
-#if !defined(DEPTH_CLAMP)
-VARYING vec4 post_pos;
-#endif
-
-uniform vec3 box_center;
-uniform vec3 box_size;
-
-void main()
-{
-	//transform vertex
-	vec3 p = position*box_size+box_center;
-	vec4 pos = modelview_projection_matrix*vec4(p.xyz, 1.0);
-
-#if !defined(DEPTH_CLAMP)
-	post_pos = pos;
-
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowF.glsl
deleted file mode 100644
index 3350267130b69b9ae99d0ad21e6e081ed31e1f07..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowF.glsl
+++ /dev/null
@@ -1,49 +0,0 @@
-/** 
- * @file class3/deferred/shadowF.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2D diffuseMap;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING vec4 pos;
-VARYING float target_pos_x;
-
-vec4 computeMoments(float depth, float a);
-
-void main() 
-{
-    frag_color = computeMoments(length(pos), 1.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowUtil.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowUtil.glsl
deleted file mode 100644
index 2f69a353e869cc700d097ff80764e8a4e53ade2d..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowUtil.glsl
+++ /dev/null
@@ -1,157 +0,0 @@
-/** 
- * @file class3/deferred/shadowUtil.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 sampler2D       shadowMap0;
-uniform sampler2D       shadowMap1;
-uniform sampler2D       shadowMap2;
-uniform sampler2D       shadowMap3;
-uniform sampler2D       shadowMap4;
-uniform sampler2D       shadowMap5;
-
-uniform vec3 sun_dir;
-uniform vec3 moon_dir;
-uniform vec2 shadow_res;
-uniform vec2 proj_shadow_res;
-uniform mat4 shadow_matrix[6];
-uniform vec4 shadow_clip;
-uniform float shadow_bias;
-
-uniform float spot_shadow_bias;
-uniform float spot_shadow_offset;
-
-float getDepth(vec2 screenpos);
-vec3 getNorm(vec2 screenpos);
-vec4 getPosition(vec2 pos_screen);
-
-float ReduceLightBleeding(float p_max, float Amount)
-{
-    return smoothstep(Amount, 1, p_max);
-}
-
-float ChebyshevUpperBound(vec2 m, float t, float min_v, float Amount)
-{
-    float p = (t <= m.x) ? 1.0 : 0.0;
-
-    float v = m.y - (m.x*m.x);
-    v = max(v, min_v);
-
-    float d = t - m.x;
-
-    float p_max = v / (v + d*d);
-
-    p_max = ReduceLightBleeding(p_max, Amount);
-
-    return max(p, p_max);
-}
-
-vec4 computeMoments(float depth, float a)
-{
-    float m1 = depth;
-    float dx = dFdx(depth);
-    float dy = dFdy(depth);
-    float m2 = m1*m1 + 0.25 * a * (dx*dx + dy*dy);
-    return vec4(m1, m2, a, max(dx, dy));
-}
-
-float vsmDirectionalSample(vec4 stc, float depth, sampler2D shadowMap, mat4 shadowMatrix)
-{
-    vec4 lpos = shadowMatrix * stc;
-    vec4 moments = texture2D(shadowMap, lpos.xy);
-    return ChebyshevUpperBound(moments.rg, depth - shadow_bias * 256.0f, 0.125, 0.9);
-}
-
-float vsmSpotSample(vec4 stc, float depth, sampler2D shadowMap, mat4 shadowMatrix)
-{
-    vec4 lpos = shadowMatrix * stc;
-    vec4 moments = texture2D(shadowMap, lpos.xy);
-    lpos.xyz /= lpos.w;
-    lpos.xy *= 0.5;
-    lpos.xy += 0.5;
-    return ChebyshevUpperBound(moments.rg, depth - spot_shadow_bias * 16.0f, 0.125, 0.9);
-}
-
-#if VSM_POINT_SHADOWS
-float vsmPointSample(float lightDistance, vec3 lightDirection, samplerCube shadow_cube_map)
-{
-    vec4 moments = textureCube(shadow_cube_map, light_direction);
-    return ChebyshevUpperBound(moments.rg, light_distance, 0.01, 0.25);
-}
-#endif
-
-float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen)
-{
-	if (pos.z < -shadow_clip.w)
-    {
-        discard;
-    }
-
-    float depth = getDepth(pos_screen);
-
-    vec4 spos       = vec4(pos,1.0);
-    vec4 near_split = shadow_clip*-0.75;
-    vec4 far_split  = shadow_clip*-1.25;
-
-    float shadow = 0.0f;
-    float weight = 1.0;
-
-    if (spos.z < near_split.z)
-    {
-        shadow += vsmDirectionalSample(spos, depth, shadowMap3, shadow_matrix[3]);
-        weight += 1.0f;
-    }
-    if (spos.z < near_split.y)
-    {
-        shadow += vsmDirectionalSample(spos, depth, shadowMap2, shadow_matrix[2]);
-        weight += 1.0f;
-    }
-    if (spos.z < near_split.x)
-    {
-        shadow += vsmDirectionalSample(spos, depth, shadowMap1, shadow_matrix[1]);
-        weight += 1.0f;
-    }
-    if (spos.z > far_split.x)
-    {
-        shadow += vsmDirectionalSample(spos, depth, shadowMap0, shadow_matrix[0]);
-        weight += 1.0f;
-    }
-
-    shadow /= weight;
-
-    return shadow;
-}
-
-float sampleSpotShadow(vec3 pos, vec3 norm, int index, vec2 pos_screen)
-{
-	if (pos.z < -shadow_clip.w)
-    {
-        discard;
-    }
-
-    float depth = getDepth(pos_screen);
-
-    pos += norm * spot_shadow_offset;
-    return vsmSpotSample(vec4(pos, 1.0), depth, (index == 0) ? shadowMap4 : shadowMap5, shadow_matrix[4 + index]);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/shadowV.glsl b/indra/newview/app_settings/shaders/class3/deferred/shadowV.glsl
deleted file mode 100644
index 6577fe0ecfe61f2adea98a0bc3bbff9ac7386595..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/shadowV.glsl
+++ /dev/null
@@ -1,62 +0,0 @@
-/** 
- * @file class3/deferred/shadowV.glsl
- *
- * $LicenseInfo:firstyear=2011&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$
- */
-
-uniform mat4 modelview_projection_matrix;
-uniform float shadow_target_width;
-uniform mat4 texture_matrix0;
-
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-#if !defined(DEPTH_CLAMP)
-VARYING float pos_zd2;
-#endif
-
-VARYING vec4 pos;
-VARYING float target_pos_x;
-VARYING vec4 vertex_color;
-VARYING vec2 vary_texcoord0;
-
-void passTextureIndex();
-
-void main()
-{
-	//transform vertex
-	vec4 pre_pos = vec4(position.xyz, 1.0);
-
-	pos = modelview_projection_matrix * pre_pos;
-
-	target_pos_x = 0.5 * (shadow_target_width - 1.0) * pos.x;
-
-#if !defined(DEPTH_CLAMP)
-	pos_zd2 = pos.z * 0.5;
-	
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-#else
-	gl_Position = pos;
-#endif
-	
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class3/deferred/skyF.glsl
deleted file mode 100644
index a0b082ed7ccb7f5e44931f7fbd9410392e903ad2..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/skyF.glsl
+++ /dev/null
@@ -1,126 +0,0 @@
-/** 
- * @file class3/deferred/skyF.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$
- */
- 
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-VARYING vec2 vary_frag;
-
-uniform vec3 camPosLocal;
-uniform vec3 sun_dir;
-uniform float sun_size;
-uniform float far_z;
-uniform mat4 inv_proj;
-uniform mat4 inv_modelview;
-
-uniform sampler2D transmittance_texture;
-uniform sampler3D scattering_texture;
-uniform sampler3D single_mie_scattering_texture;
-uniform sampler2D irradiance_texture;
-uniform sampler2D rainbow_map;
-uniform sampler2D halo_map;
-
-uniform float moisture_level;
-uniform float droplet_radius;
-uniform float ice_level;
-
-vec3 GetSolarLuminance();
-vec3 GetSkyLuminance(vec3 camPos, vec3 view_dir, float shadow_length, vec3 dir, out vec3 transmittance);
-vec3 GetSkyLuminanceToPoint(vec3 camPos, vec3 pos, float shadow_length, vec3 dir, out vec3 transmittance);
-
-vec3 ColorFromRadiance(vec3 radiance);
-vec3 rainbow(float d)
-{
-    // d is the dot product of view and sun directions, so ranging -1.0..1.0
-    // 'interesting' values of d are the range -0.75..-0.825, when view is nearly opposite of sun vec
-    // Rainbox texture mode is GL_REPEAT, so tc of -.75 is equiv to 0.25, -0.825 equiv to 0.175.
-
-    // SL-13629 Rainbow texture has colors within the correct .175...250 range, but order is inverted.
-    // Rather than replace the texture, we mirror and translate the y tc to keep the colors within the
-    // interesting range, but in reversed order:  i.e. d = (1 - d) - 1.575
-    d = clamp(-0.575 - d, 0.0, 1.0);
-
-    // With the colors in the lower 1/4 of the texture, inverting the coords leaves most of it inaccessible.
-    // So, we can stretch the texcoord above the colors (ie > 0.25) to fill the entire remaining coordinate
-    // space. This improves gradation, reduces banding within the rainbow interior. (1-0.25) / (0.425/0.25) = 4.2857
-    float interior_coord = max(0.0, d - 0.25) * 4.2857;
-    d = clamp(d, 0.0, 0.25) + interior_coord;
-
-    float rad = (droplet_radius - 5.0f) / 1024.0f;
-    return pow(texture2D(rainbow_map, vec2(rad, d)).rgb, vec3(1.8)) * moisture_level;
-}
-
-vec3 halo22(float d)
-{
-   float v = sqrt(max(0, 1 - (d*d)));
-   return texture2D(halo_map, vec2(0, v)).rgb * ice_level;
-}
-
-void main()
-{
-    vec3 pos      = vec3((vary_frag * 2.0) - vec2(1.0, 1.0f), 1.0);
-    vec4 view_pos = (inv_proj * vec4(pos, 1.0f));
-
-    view_pos /= view_pos.w;
-
-    vec3 view_ray = (inv_modelview * vec4(view_pos.xyz, 0.0f)).xyz + camPosLocal;
-
-    vec3 view_direction = normalize(view_ray);
-    vec3 sun_direction  = normalize(sun_dir);
-    vec3 earth_center   = vec3(0, 0, -6360.0f);
-    vec3 camPos = (camPosLocal / 1000.0f) - earth_center;
-
-    vec3 transmittance;
-    vec3 radiance_sun  = GetSkyLuminance(camPos, view_direction, 0.0f, sun_direction, transmittance);
-    vec3 solar_luminance = GetSolarLuminance();
-
-    // If the view ray intersects the Sun, add the Sun radiance.
-    float s = dot(view_direction, sun_direction);
-
-    // cheesy solar disc...
-    if (s >= (sun_size * 0.999))
-    {
-        radiance_sun += pow(smoothstep(0.0, 1.3, (s - (sun_size * 0.9))), 2.0) * solar_luminance * transmittance;
-    }
-    s = smoothstep(0.9, 1.0, s) * 16.0f;
-
-    vec3 color = ColorFromRadiance(radiance_sun);
-
-    float optic_d = dot(view_direction, sun_direction);
-    vec3 halo_22 = halo22(optic_d);
-
-    color.rgb += rainbow(optic_d) * optic_d;
-    color.rgb += halo_22;
-
-    color = pow(color, vec3(1.0/2.2));
-
-    frag_data[0] = vec4(color, 1.0 + s);
-    frag_data[1] = vec4(0.0);
-    frag_data[2] = vec4(0.0, 1.0, 0.0, 1.0);
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/skyV.glsl b/indra/newview/app_settings/shaders/class3/deferred/skyV.glsl
deleted file mode 100644
index 2eb222ada4aab9b8b68138b1dc876f2d02cf279a..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/skyV.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-/** 
- * @file class3/deferred/skyV.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$
- */
- 
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec2 vary_frag;
-
-void main()
-{
-    // pass through untransformed fullscreen pos at back of frustum for proper sky depth testing
-	gl_Position = vec4(position.xy, 1.0f, 1.0);
-    vary_frag = texcoord0;
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
deleted file mode 100644
index 5e9ea6ddcb5ea5ae22bf8d75906286c67f56f241..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
+++ /dev/null
@@ -1,179 +0,0 @@
-/** 
- * @file class3/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
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform sampler2DRect diffuseRect;
-uniform sampler2DRect specularRect;
-uniform sampler2DRect normalMap;
-uniform sampler2DRect lightMap;
-uniform sampler2DRect depthMap;
-uniform sampler2D     lightFunc;
-
-uniform samplerCube environmentMap;
-uniform float blur_size;
-uniform float blur_fidelity;
-
-// Inputs
-uniform vec4 morphFactor;
-uniform vec3 camPosLocal;
-uniform float cloud_shadow;
-uniform float max_y;
-uniform vec4 glow;
-uniform mat3 env_mat;
-uniform vec4 shadow_clip;
-
-uniform vec3 sun_dir;
-VARYING vec2 vary_fragcoord;
-
-uniform mat4 inv_proj;
-uniform mat4 inv_modelview;
-
-uniform vec2 screen_res;
-
-uniform sampler2D transmittance_texture;
-uniform sampler3D scattering_texture;
-uniform sampler3D single_mie_scattering_texture;
-uniform sampler2D irradiance_texture;
-
-uniform sampler2D sh_input_r;
-uniform sampler2D sh_input_g;
-uniform sampler2D sh_input_b;
-
-vec3 GetSunAndSkyIrradiance(vec3 camPos, vec3 norm, vec3 dir, out vec3 sky_irradiance);
-vec3 GetSkyLuminance(vec3 camPos, vec3 view_dir, float shadow_length, vec3 dir, out vec3 transmittance);
-vec3 GetSkyLuminanceToPoint(vec3 camPos, vec3 pos, float shadow_length, vec3 dir, out vec3 transmittance);
-
-vec3 ColorFromRadiance(vec3 radiance);
-vec4 getPositionWithDepth(vec2 pos_screen, float depth);
-vec4 getPosition(vec2 pos_screen);
-vec3 getNorm(vec2 pos_screen);
-
-vec3 decode_normal(vec2 enc);
-
-#ifdef WATER_FOG
-vec4 applyWaterFogView(vec3 pos, vec4 color);
-#endif
-
-void main() 
-{
-    vec2 tc = vary_fragcoord.xy;
-    float depth = texture2DRect(depthMap, tc.xy).r;
-    vec3 pos = getPositionWithDepth(tc, depth).xyz;
-    vec4 norm = texture2DRect(normalMap, tc);
-    float envIntensity = norm.z;
-    norm.xyz = decode_normal(norm.xy);
-
-    float da = max(dot(norm.xyz, sun_dir.xyz), 0.0);
-
-    vec4 diffuse = texture2DRect(diffuseRect, tc); // sRGB
-    diffuse.rgb = srgb_to_linear(diffuse.rgb);
-
-    vec3 col;
-    float bloom = 0.0;
-    {
-        vec3 camPos = (camPosLocal / 1000.0f) + vec3(0, 0, 6360.0f);
-
-        vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);
-        
-        vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
-
-        float scol = max(scol_ambocc.r, diffuse.a); 
-
-        float ambocc = scol_ambocc.g;
-
-        vec4 l1tap = vec4(1.0/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265));
-        vec4 l1r = texture2D(sh_input_r, vec2(0,0));
-        vec4 l1g = texture2D(sh_input_g, vec2(0,0));
-        vec4 l1b = texture2D(sh_input_b, vec2(0,0));
-
-        vec3 indirect = vec3(dot(l1r, l1tap * vec4(1, norm.xyz)),
-                             dot(l1g, l1tap * vec4(1, norm.xyz)),
-                             dot(l1b, l1tap * vec4(1, norm.xyz)));
-
-        indirect = clamp(indirect, vec3(0), vec3(1.0));
-
-        vec3 transmittance;
-        vec3 sky_irradiance;
-        vec3 sun_irradiance = GetSunAndSkyIrradiance(camPos, norm.xyz, sun_dir, sky_irradiance);
-        vec3 inscatter = GetSkyLuminanceToPoint(camPos, (pos / 1000.f) + vec3(0, 0, 6360.0f), scol, sun_dir, transmittance);
-
-        vec3 radiance   = scol * (sun_irradiance + sky_irradiance) + inscatter;
-        vec3 atmo_color = ColorFromRadiance(radiance);
-
-        col = atmo_color + indirect;
-        col *= transmittance;
-        col *= diffuse.rgb;
-
-        vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
-
-        if (spec.a > 0.0) // specular reflection
-        {
-            // the old infinite-sky shiny reflection
-            //
-            float sa = dot(refnormpersp, sun_dir.xyz);
-            vec3 dumbshiny = scol * texture2D(lightFunc, vec2(sa, spec.a)).r * atmo_color;
-            
-            // add the two types of shiny together
-            vec3 spec_contrib = dumbshiny * spec.rgb * 0.25;
-            bloom = dot(spec_contrib, spec_contrib);
-            col += spec_contrib;
-        }
-
-        col = mix(col, diffuse.rgb, diffuse.a);
-
-        if (envIntensity > 0.0)
-        { //add environmentmap
-            vec3 env_vec = env_mat * refnormpersp;
-            vec3 sun_direction  = (inv_modelview * vec4(sun_dir, 1.0)).xyz;
-            vec3 radiance_sun  = GetSkyLuminance(camPos, env_vec, 0.0f, sun_direction, transmittance);
-            vec3 refcol = ColorFromRadiance(radiance_sun);
-            col = mix(col.rgb, refcol, envIntensity);
-        }
-                        
-        /*if (norm.w < 0.5)
-        {
-            col = scaleSoftClipFrag(col);
-        }*/
-
-        #ifdef WATER_FOG
-            vec4 fogged = applyWaterFogView(pos,vec4(col, bloom));
-            col = fogged.rgb;
-            bloom = fogged.a;
-        #endif
-    }
-
-    //output linear since gamma correction happens down stream
-    frag_color.rgb = col;
-    frag_color.a = bloom;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl
deleted file mode 100644
index 9d872b8df81951912ebbd5091af838f18d9b6cf6..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl
+++ /dev/null
@@ -1,38 +0,0 @@
-/** 
- * @file class3/deferred/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;
-
-VARYING vec2 vary_fragcoord;
-
-uniform mat4 modelview_projection_matrix;
-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)*screen_res;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl
deleted file mode 100644
index 10e9fe7b6d6a01cd67e0aece334c373fb136f117..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl
+++ /dev/null
@@ -1,285 +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 sampler2DRect diffuseRect;
-uniform sampler2DRect specularRect;
-uniform sampler2DRect depthMap;
-uniform sampler2DRect normalMap;
-uniform samplerCube environmentMap;
-uniform sampler2DRect 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 getNormWithEnvIntensity(vec2 screenpos, out float envIntensity);
-
-vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
-{
-    vec4 ret = texture2DLod(projectionMap, tc, lod);
-    
-    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);
-    
-    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);
-    
-    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() 
-{
-    vec4 frag = vary_fragcoord;
-    frag.xyz /= frag.w;
-    frag.xyz = frag.xyz*0.5+0.5;
-    frag.xy *= screen_res;
-    
-    vec3 pos = getPosition(frag.xy).xyz;
-    vec3 lv = trans_center.xyz-pos.xyz;
-    float dist = length(lv);
-    dist /= size;
-    if (dist > 1.0)
-    {
-        discard;
-    }
-    
-    float shadow = 1.0;
-    
-    if (proj_shadow_idx >= 0)
-    {
-        vec4 shd = texture2DRect(lightMap, frag.xy);
-        shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-        shadow += shadow_fade;
-        shadow = clamp(shadow, 0.0, 1.0);
-    }
-    
-    float envIntensity;
-    vec3 norm = getNormWithEnvIntensity(frag.xy, envIntensity);
-
-    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*0.5) + 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 col = vec3(0,0,0);
-        
-    vec3 diff_tex = srgb_to_linear(texture2DRect(diffuseRect, frag.xy).rgb);
-        
-    vec4 spec = texture2DRect(specularRect, frag.xy);
-
-    vec3 dlit = vec3(0, 0, 0);
-
-    float noise = texture2D(noiseMap, frag.xy/128.0).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)*(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);
-            col += dlit*scol*spec.rgb*shadow;
-        }
-    }   
-    
-
-    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;
-                }
-            }
-        }
-    }
-    
-    //not sure why, but this line prevents MATBUG-194
-    col = max(col, vec3(0.0));
-
-    frag_color.rgb = col;   
-    frag_color.a = 0.0;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/sunLightF.glsl
deleted file mode 100644
index 112b498c9029878cbf8755dcf7bd9c4f8191c8a0..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/sunLightF.glsl
+++ /dev/null
@@ -1,57 +0,0 @@
-/** 
- * @file class3\deferred\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$
- */
-
-#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 2, shadows, no SSAO
-
-// Inputs
-VARYING vec2 vary_fragcoord;
-
-vec4 getPosition(vec2 pos_screen);
-vec3 getNorm(vec2 pos_screen);
-
-float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen); 
-float sampleSpotShadow(vec3 pos, vec3 norm, int index, vec2 pos_screen); 
-
-void main() 
-{
-	vec2 pos_screen = vary_fragcoord.xy;
-	vec4 pos = getPosition(pos_screen);
-	vec3 norm = getNorm(pos_screen);
-
-	frag_color.r = sampleDirectionalShadow(pos.xyz, norm, pos_screen);
-	frag_color.g = 1.0f;
-    frag_color.b = sampleSpotShadow(pos.xyz, norm, 0, pos_screen);
-    frag_color.a = sampleSpotShadow(pos.xyz, norm, 1, pos_screen);
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class3/deferred/sunLightSSAOF.glsl
deleted file mode 100644
index 342a2ff3ede256469bdc4f2688317245e9f2904c..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/sunLightSSAOF.glsl
+++ /dev/null
@@ -1,61 +0,0 @@
-/** 
- * @file class3\deferred\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 2 -- shadows and SSAO
-
-// Inputs
-VARYING vec2 vary_fragcoord;
-
-uniform vec3 sun_dir;
-
-vec4 getPosition(vec2 pos_screen);
-vec3 getNorm(vec2 pos_screen);
-
-float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen);
-float sampleSpotShadow(vec3 pos, vec3 norm, int index, 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;
-	vec4 pos        = getPosition(pos_screen);
-	vec3 norm       = getNorm(pos_screen);
-
-	frag_color.r = sampleDirectionalShadow(pos.xyz, norm, pos_screen);
-    frag_color.b = calcAmbientOcclusion(pos, norm, pos_screen);
-    frag_color.b = sampleSpotShadow(pos.xyz, norm, 0, pos_screen);
-    frag_color.a = sampleSpotShadow(pos.xyz, norm, 1, pos_screen);
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class3/deferred/sunLightV.glsl
deleted file mode 100644
index bc5eb5181d0317864c5982fc27b17366760462e6..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/sunLightV.glsl
+++ /dev/null
@@ -1,41 +0,0 @@
-/** 
- * @file sunLightV.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;
-
-VARYING vec2 vary_fragcoord;
-
-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)*screen_res;	
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/treeShadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/treeShadowF.glsl
deleted file mode 100644
index 41673d16694fa63f925fb69d89ba416692720a05..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/treeShadowF.glsl
+++ /dev/null
@@ -1,59 +0,0 @@
-/** 
- * @file treeShadowF.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$
- */
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_color;
-#else
-#define frag_color gl_FragColor
-#endif
-
-uniform float minimum_alpha;
-
-uniform sampler2D diffuseMap;
-
-VARYING vec4 pos;
-VARYING vec2 vary_texcoord0;
-
-vec4 computeMoments(float d, float a);
-
-void main() 
-{
-	float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a;
-
-	if (alpha < minimum_alpha)
-	{
-		discard;
-	}
-
-    frag_color = computeMoments(length(pos), 1.0);
-
-#if !defined(DEPTH_CLAMP)
-	gl_FragDepth = max(pos.z/pos.w*0.5+0.5, 0.0);
-#endif
-
-}
-
diff --git a/indra/newview/app_settings/shaders/class3/deferred/treeShadowV.glsl b/indra/newview/app_settings/shaders/class3/deferred/treeShadowV.glsl
deleted file mode 100644
index 15e769ac10f97383074d1e8c613ece6f3e04cd12..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/treeShadowV.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file treeShadowV.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_projection_matrix;
- 
-ATTRIBUTE vec3 position;
-ATTRIBUTE vec2 texcoord0;
-
-VARYING vec4 pos;
-VARYING vec2 vary_texcoord0;
-
-void main()
-{
-	//transform vertex
-	pos = modelview_projection_matrix*vec4(position.xyz, 1.0);
-
-	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
-	
-	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/underWaterF.glsl b/indra/newview/app_settings/shaders/class3/deferred/underWaterF.glsl
deleted file mode 100644
index 77c7df9cac672fafb4b84d30e43cb10abd0f6a30..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/underWaterF.glsl
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * @file 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$
- */
- 
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-uniform sampler2D diffuseMap;
-uniform sampler2D bumpMap;   
-uniform sampler2D screenTex;
-uniform sampler2D refTex;
-uniform sampler2D screenDepth;
-
-uniform vec4 fogCol;
-uniform vec3 lightDir;
-uniform vec3 specular;
-uniform vec2 fbScale;
-uniform float refScale;
-uniform float znear;
-uniform float zfar;
-uniform float kd;
-uniform vec4 waterPlane;
-uniform vec3 eyeVec;
-uniform vec4 waterFogColor;
-uniform float waterFogDensity;
-uniform float waterFogKS;
-uniform vec2 screenRes;
-
-//bigWave is (refCoord.w, view.w);
-VARYING vec4 refCoord;
-VARYING vec4 littleWave;
-VARYING vec4 view;
-
-vec2 encode_normal(vec3 n);
-
-vec4 applyWaterFog(vec4 color, vec3 viewVec)
-{
-	//normalize view vector
-	vec3 view = normalize(viewVec);
-	float es = -view.z;
-
-	//find intersection point with water plane and eye vector
-	
-	//get eye depth
-	float e0 = max(-waterPlane.w, 0.0);
-	
-	//get object depth
-	float depth = length(viewVec);
-		
-	//get "thickness" of water
-	float l = max(depth, 0.1);
-
-	float kd = waterFogDensity;
-	float ks = waterFogKS;
-	vec4 kc = waterFogColor;
-	
-	float F = 0.98;
-	
-	float t1 = -kd * pow(F, ks * e0);
-	float t2 = kd + ks * es;
-	float t3 = pow(F, t2*l) - 1.0;
-	
-	float L = min(t1/t2*t3, 1.0);
-	
-	float D = pow(0.98, l*kd);
-	return color * D + kc * L;
-}
-
-void main() 
-{
-	vec4 color;
-	    
-	//get detail normals
-	vec3 wave1 = texture2D(bumpMap, vec2(refCoord.w, view.w)).xyz*2.0-1.0;
-	vec3 wave2 = texture2D(bumpMap, littleWave.xy).xyz*2.0-1.0;
-	vec3 wave3 = texture2D(bumpMap, littleWave.zw).xyz*2.0-1.0;    
-	vec3 wavef = normalize(wave1+wave2+wave3);
-	
-	//figure out distortion vector (ripply)   
-	vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
-	distort = distort+wavef.xy*refScale;
-		
-	vec4 fb = texture2D(screenTex, distort);
-
-	frag_data[0] = vec4(fb.rgb, 1.0); // diffuse
-	frag_data[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec
-	frag_data[2] = vec4(encode_normal(wavef), 0.0, 0.0); // normalxyz, displace
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class3/deferred/waterF.glsl
deleted file mode 100644
index 3ded216d54850f396fda55188099b47022791f6f..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/waterF.glsl
+++ /dev/null
@@ -1,173 +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$
- */
- 
-#extension GL_ARB_texture_rectangle : enable
-
-/*[EXTRA_CODE_HERE]*/
-
-#ifdef DEFINE_GL_FRAGCOLOR
-out vec4 frag_data[3];
-#else
-#define frag_data gl_FragData
-#endif
-
-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 refScale;
-uniform float kd;
-uniform vec2 screenRes;
-uniform vec3 normScale;
-uniform float fresnelScale;
-uniform float fresnelOffset;
-uniform float blurMultiplier;
-uniform vec2 screen_res;
-uniform mat4 norm_mat; //region space to screen space
-
-//bigWave is (refCoord.w, view.w);
-VARYING vec4 refCoord;
-VARYING vec4 littleWave;
-VARYING vec4 view;
-VARYING vec4 vary_position;
-
-vec3 scaleSoftClip(vec3 c);
-vec2 encode_normal(vec3 n);
-
-vec3 BlendNormal(vec3 bump1, vec3 bump2)
-{
-    //vec3 normal   = bump1.xyz * vec3( 2.0,  2.0, 2.0) - vec3(1.0, 1.0,  0.0);
-    //vec3 normal2  = bump2.xyz * vec3(-2.0, -2.0, 2.0) + vec3(1.0, 1.0, -1.0);
-    //vec3 n        = normalize(normal * dot(normal, normal2) - (normal2 * normal.z));
-    vec3 n = normalize(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
-	vec3 wave1_a = texture2D(bumpMap, vec2(refCoord.w, view.w)).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, vec2(refCoord.w, view.w)).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 an nvidia compiler bug
-	color.rgb = mix(fb.rgb, refcol.rgb, df1 * 0.99999);
-
-    color.rgb *= 2.0f;
-    color.rgb = scaleSoftClip(color.rgb);
-	
-	vec4 pos = vary_position;
-	
-	color.rgb += spec * specular;
-	color.a    = spec * sunAngle2;
-    
-	vec3 screenspacewavef = normalize((norm_mat*vec4(wavef, 1.0)).xyz);
-	
-	frag_data[0] = vec4(color.rgb, color); // diffuse
-	frag_data[1] = vec4(spec * specular, spec);		// speccolor, spec
-	frag_data[2] = vec4(encode_normal(wavef.xyz), 0.05, 0);// normalxy, 0, 0
-}
diff --git a/indra/newview/app_settings/shaders/class3/deferred/waterV.glsl b/indra/newview/app_settings/shaders/class3/deferred/waterV.glsl
deleted file mode 100644
index 02000d90ca4740dd8da18718713d724de169d72c..0000000000000000000000000000000000000000
--- a/indra/newview/app_settings/shaders/class3/deferred/waterV.glsl
+++ /dev/null
@@ -1,95 +0,0 @@
-/** 
- * @file waterV.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 mat4 modelview_projection_matrix;
-
-ATTRIBUTE vec3 position;
-
-
-uniform vec2 d1;
-uniform vec2 d2;
-uniform float time;
-uniform vec3 eyeVec;
-uniform float waterHeight;
-
-VARYING vec4 refCoord;
-VARYING vec4 littleWave;
-VARYING vec4 view;
-
-VARYING vec4 vary_position;
-
-float wave(vec2 v, float t, float f, vec2 d, float s) 
-{
-   return (dot(d, v)*f + t*s)*f;
-}
-
-void main()
-{
-	//transform vertex
-	vec4 pos = vec4(position.xyz, 1.0);
-	mat4 modelViewProj = modelview_projection_matrix;
-	
-	vec4 oPosition;
-		    
-	//get view vector
-	vec3 oEyeVec;
-	oEyeVec.xyz = pos.xyz-eyeVec;
-		
-	float d = length(oEyeVec.xy);
-	float ld = min(d, 2560.0);
-	
-	pos.xy = eyeVec.xy + oEyeVec.xy/d*ld;
-	view.xyz = oEyeVec;
-		
-	d = clamp(ld/1536.0-0.5, 0.0, 1.0);	
-	d *= d;
-		
-	oPosition = vec4(position, 1.0);
-	oPosition.z = mix(oPosition.z, max(eyeVec.z*0.75, 0.0), d);
-	vary_position = modelview_matrix * oPosition;
-	oPosition = modelViewProj * oPosition;
-	
-	refCoord.xyz = oPosition.xyz + vec3(0,0,0.2);
-	
-	//get wave position parameter (create sweeping horizontal waves)
-	vec3 v = pos.xyz;
-	v.x += (cos(v.x*0.08/*+time*0.01*/)+sin(v.y*0.02))*6.0;
-	    
-	//push position for further horizon effect.
-	pos.xyz = oEyeVec.xyz*(waterHeight/oEyeVec.z);
-	pos.w = 1.0;
-	pos = modelview_matrix*pos;
-	
-	//pass wave parameters to pixel shader
-	vec2 bigWave =  (v.xy) * vec2(0.04,0.04)  + d1 * time * 0.055;
-	//get two normal map (detail map) texture coordinates
-	littleWave.xy = (v.xy) * vec2(0.45, 0.9)   + d2 * time * 0.13;
-	littleWave.zw = (v.xy) * vec2(0.1, 0.2) + d1 * time * 0.1;
-	view.w = bigWave.y;
-	refCoord.w = bigWave.x;
-	
-	gl_Position = oPosition;
-}