diff options
Diffstat (limited to 'indra')
108 files changed, 624 insertions, 412 deletions
| diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 946e602fee..79d4415117 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -97,6 +97,8 @@ void APIENTRY gl_debug_callback(GLenum source,  }  #endif +void parse_glsl_version(S32& major, S32& minor); +  void ll_init_fail_log(std::string filename)  {  	gFailLog.open(filename.c_str()); @@ -295,6 +297,7 @@ PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB = NULL;  PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB = NULL;  PFNGLGETUNIFORMIVARBPROC glGetUniformivARB = NULL;  PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer = NULL;  #if LL_WINDOWS  PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL; @@ -341,6 +344,7 @@ PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB = NULL;  PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB = NULL;  PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB = NULL;  PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer = NULL;  PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB = NULL;  PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB = NULL;  PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL; @@ -443,7 +447,8 @@ LLGLManager::LLGLManager() :  	mDriverVersionMinor(0),  	mDriverVersionRelease(0),  	mGLVersion(1.0f), -		 +	mGLSLVersionMajor(0), +	mGLSLVersionMinor(0),		  	mVRAM(0),  	mGLMaxVertexRange(0),  	mGLMaxIndexRange(0) @@ -554,6 +559,11 @@ bool LLGLManager::initGL()  	mGLVersion = mDriverVersionMajor + mDriverVersionMinor * .1f; +	if (mGLVersion >= 2.f) +	{ +		parse_glsl_version(mGLSLVersionMajor, mGLSLVersionMinor); +	} +  	// Trailing space necessary to keep "nVidia Corpor_ati_on" cards  	// from being recognized as ATI.  	if (mGLVendor.substr(0,4) == "ATI ") @@ -1300,6 +1310,7 @@ void LLGLManager::initExtensions()  		glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4uivARB");  		glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4usvARB");  		glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) GLH_EXT_GET_PROC_ADDRESS("glVertexAttribPointerARB"); +		glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) GLH_EXT_GET_PROC_ADDRESS("glVertexAttribIPointer");  		glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) GLH_EXT_GET_PROC_ADDRESS("glEnableVertexAttribArrayARB");  		glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) GLH_EXT_GET_PROC_ADDRESS("glDisableVertexAttribArrayARB");  		glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) GLH_EXT_GET_PROC_ADDRESS("glProgramStringARB"); @@ -2098,6 +2109,55 @@ void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor  	}  } + +void parse_glsl_version(S32& major, S32& minor) +{ +	// GL_SHADING_LANGUAGE_VERSION returns a null-terminated string with the format:  +	// <major>.<minor>[.<release>] [<vendor specific>] + +	const char* version = (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION); +	major = 0; +	minor = 0; +	 +	if( !version ) +	{ +		return; +	} + +	std::string ver_copy( version ); +	S32 len = (S32)strlen( version );	/* Flawfinder: ignore */ +	S32 i = 0; +	S32 start; +	// Find the major version +	start = i; +	for( ; i < len; i++ ) +	{ +		if( '.' == version[i] ) +		{ +			break; +		} +	} +	std::string major_str = ver_copy.substr(start,i-start); +	LLStringUtil::convertToS32(major_str, major); + +	if( '.' == version[i] ) +	{ +		i++; +	} + +	// Find the minor version +	start = i; +	for( ; i < len; i++ ) +	{ +		if( ('.' == version[i]) || isspace(version[i]) ) +		{ +			break; +		} +	} +	std::string minor_str = ver_copy.substr(start,i-start); +	LLStringUtil::convertToS32(minor_str, minor); +} +  LLGLUserClipPlane::LLGLUserClipPlane(const LLPlane& p, const glh::matrix4f& modelview, const glh::matrix4f& projection, bool apply)  {  	mApply = apply; diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index 6a147b8e19..5a33c98708 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -138,6 +138,8 @@ public:  	S32 mDriverVersionMinor;  	S32 mDriverVersionRelease;  	F32 mGLVersion; // e.g = 1.4 +	S32 mGLSLVersionMajor; +	S32 mGLSLVersionMinor;  	std::string mDriverVersionVendorString;  	S32 mVRAM; // VRAM in MB diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h index 10aad202e1..d61ec707f0 100644 --- a/indra/llrender/llglheaders.h +++ b/indra/llrender/llglheaders.h @@ -199,6 +199,7 @@ extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;  extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;  extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;  extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB; +extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;  extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;  extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;  extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB; @@ -460,6 +461,7 @@ extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;  extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;  extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;  extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB; +extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;  extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;  extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;  extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB; @@ -693,6 +695,7 @@ extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;  extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;  extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;  extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB; +extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;  extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;  extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;  extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB; diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 7eba62e59e..a879a18895 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -164,8 +164,9 @@ BOOL LLGLSLShader::createShader(vector<string> * attributes,  		return FALSE;  	} -	if (gGLManager.mGLVersion < 3.1f) -	{ //attachShaderFeatures may have set the number of indexed texture channels, so set to 1 again +	if (gGLManager.mGLSLVersionMajor < 2 && gGLManager.mGLSLVersionMinor < 3) +	{ //indexed texture rendering requires GLSL 1.3 or later +		//attachShaderFeatures may have set the number of indexed texture channels, so set to 1 again  		mFeatures.mIndexedTextureChannels = llmin(mFeatures.mIndexedTextureChannels, 1);  	} diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index d03d349f0f..321b139181 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -575,31 +575,39 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  	GLcharARB* text[4096];  	GLuint count = 0; -	F32 version = gGLManager.mGLVersion; - -//hack to never use GLSL > 1.20 on OSX -#if LL_DARWIN -	version = llmin(version, 2.9f); -#endif - -	if (version < 2.1f) -	{ -		text[count++] = strdup("#version 110\n"); -		text[count++] = strdup("#define ATTRIBUTE attribute\n"); -		text[count++] = strdup("#define VARYING varying\n"); -	} -	else if (version < 3.3f) +	S32 major_version = gGLManager.mGLSLVersionMajor; +	S32 minor_version = gGLManager.mGLSLVersionMinor; +	 +	if (major_version == 1 && minor_version < 30)  	{ -		//set version to 1.20 -		text[count++] = strdup("#version 120\n"); -		text[count++] = strdup("#define FXAA_GLSL_120 1\n"); -		text[count++] = strdup("#define FXAA_FAST_PIXEL_OFFSET 0\n"); -		text[count++] = strdup("#define ATTRIBUTE attribute\n"); -		text[count++] = strdup("#define VARYING varying\n"); +		if (minor_version < 10) +		{ +			//should NEVER get here -- if major version is 1 and minor version is less than 10,  +			// viewer should never attempt to use shaders, continuing will result in undefined behavior +			llerrs << "Unsupported GLSL Version." << llendl; +		} + +		if (minor_version <= 19) +		{ +			text[count++] = strdup("#version 110\n"); +			text[count++] = strdup("#define ATTRIBUTE attribute\n"); +			text[count++] = strdup("#define VARYING varying\n"); +			text[count++] = strdup("#define VARYING_FLAT varying\n"); +		} +		else if (minor_version <= 29) +		{ +			//set version to 1.20 +			text[count++] = strdup("#version 120\n"); +			text[count++] = strdup("#define FXAA_GLSL_120 1\n"); +			text[count++] = strdup("#define FXAA_FAST_PIXEL_OFFSET 0\n"); +			text[count++] = strdup("#define ATTRIBUTE attribute\n"); +			text[count++] = strdup("#define VARYING varying\n"); +			text[count++] = strdup("#define VARYING_FLAT varying\n"); +		}  	}  	else  	{   -		if (version < 4.f) +		if (major_version < 4)  		{  			//set version to 1.30  			text[count++] = strdup("#version 130\n"); @@ -618,13 +626,17 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  		{ //"varying" state is "out" in a vertex program, "in" in a fragment program   			// ("varying" is deprecated after version 1.20)  			text[count++] = strdup("#define VARYING out\n"); +			text[count++] = strdup("#define VARYING_FLAT flat out\n");  		}  		else  		{  			text[count++] = strdup("#define VARYING in\n"); +			text[count++] = strdup("#define VARYING_FLAT flat in\n");  		}  		//backwards compatibility with legacy texture lookup syntax +		text[count++] = strdup("#define texture2D texture\n"); +		text[count++] = strdup("#define texture2DRect texture\n");  		text[count++] = strdup("#define textureCube texture\n");  		text[count++] = strdup("#define texture2DLod textureLod\n");  		text[count++] = strdup("#define	shadow2D(a,b) vec2(texture(a,b))\n"); @@ -651,11 +663,11 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  		.  		uniform sampler2D texN; -		VARYING float vary_texture_index; +		VARYING uvec4 vary_texture_index;  		vec4 diffuseLookup(vec2 texcoord)  		{ -			switch (int(vary_texture_index+0.25)) +			switch (vary_texture_index.r))  			{  				case 0: return texture2D(tex0, texcoord);  				case 1: return texture2D(tex1, texcoord); @@ -679,7 +691,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  		if (texture_index_channels > 1)  		{ -			text[count++] = strdup("VARYING float vary_texture_index;\n"); +			text[count++] = strdup("VARYING_FLAT uvec4 vary_texture_index;\n");  		}  		text[count++] = strdup("vec4 diffuseLookup(vec2 texcoord)\n"); @@ -691,9 +703,9 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  			text[count++] = strdup("return texture2D(tex0, texcoord);\n");  			text[count++] = strdup("}\n");  		} -		else if (gGLManager.mGLVersion >= 3.f) -		{  -			text[count++] = strdup("\tswitch (int(vary_texture_index+0.25))\n"); +		else if (major_version > 1 || minor_version >= 30) +		{  //switches are supported in GLSL 1.30 and later +			text[count++] = strdup("\tswitch (vary_texture_index.r)\n");  			text[count++] = strdup("\t{\n");  			//switch body @@ -708,28 +720,10 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  			text[count++] = strdup("}\n");  		}  		else -		{ -			//switches aren't supported, make block that looks like: -			/* -				int ti = int(vary_texture_index+0.25); -				if (ti == 0) return texture2D(tex0, texcoord); -				if (ti == 1) return texture2D(tex1, texcoord); -				. -				. -				. -				if (ti == N) return texture2D(texN, texcoord); -			*/ -				 -			text[count++] = strdup("int ti = int(vary_texture_index+0.25);\n"); -			for (S32 i = 0; i < texture_index_channels; ++i) -			{ -				std::string if_str = llformat("if (ti == %d) return texture2D(tex%d, texcoord);\n", i, i); -				text[count++] = strdup(if_str.c_str()); -			} - -			text[count++] = strdup("\treturn vec4(1,0,1,1);\n"); -			text[count++] = strdup("}\n"); -		}			 +		{ //should never get here.  Indexed texture rendering requires GLSL 1.30 or later  +			// (for passing integers between vertex and fragment shaders) +			llerrs << "Indexed texture rendering requires GLSL 1.30 or later." << llendl; +		}  	}  	//copy file into memory diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index e4a5cd0299..b2438ef824 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -284,6 +284,12 @@ void LLVertexBuffer::setupClientArrays(U32 data_mask)  	{  		bool error = false; +		if (gGLManager.mGLSLVersionMajor < 2 && gGLManager.mGLSLVersionMinor < 30) +		{ +			//make sure texture index is disabled +			data_mask = data_mask & ~MAP_TEXTURE_INDEX; +		} +  		if (LLGLSLShader::sNoFixedFunction)  		{  			for (U32 i = 0; i < TYPE_MAX; ++i) @@ -1193,7 +1199,7 @@ void LLVertexBuffer::setupVertexArray()  		1, //TYPE_WEIGHT,  		4, //TYPE_WEIGHT4,  		4, //TYPE_CLOTHWEIGHT, -		1, //TYPE_TEXTURE_INDEX +		4, //TYPE_TEXTURE_INDEX  	};  	U32 attrib_type[] = @@ -1210,7 +1216,24 @@ void LLVertexBuffer::setupVertexArray()  		GL_FLOAT, //TYPE_WEIGHT,  		GL_FLOAT, //TYPE_WEIGHT4,  		GL_FLOAT, //TYPE_CLOTHWEIGHT, -		GL_FLOAT, //TYPE_TEXTURE_INDEX +		GL_UNSIGNED_BYTE, //TYPE_TEXTURE_INDEX +	}; + +	bool attrib_integer[] =  +	{ +		false, //TYPE_VERTEX, +		false, //TYPE_NORMAL, +		false, //TYPE_TEXCOORD0, +		false, //TYPE_TEXCOORD1, +		false, //TYPE_TEXCOORD2, +		false, //TYPE_TEXCOORD3, +		false, //TYPE_COLOR, +		false, //TYPE_EMISSIVE, +		false, //TYPE_BINORMAL, +		false, //TYPE_WEIGHT, +		false, //TYPE_WEIGHT4, +		false, //TYPE_CLOTHWEIGHT, +		true, //TYPE_TEXTURE_INDEX  	};  	U32 attrib_normalized[] = @@ -1238,7 +1261,19 @@ void LLVertexBuffer::setupVertexArray()  		if (mTypeMask & (1 << i))  		{  			glEnableVertexAttribArrayARB(i); -			glVertexAttribPointerARB(i, attrib_size[i], attrib_type[i], attrib_normalized[i], sTypeSize[i], (void*) mOffsets[i]);  + +			if (attrib_integer) +			{ +				//glVertexattribIPointer requires GLSL 1.30 or later +				if (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 30) +				{ +					glVertexAttribIPointer(i, attrib_size[i], attrib_type[i], sTypeSize[i], (void*) mOffsets[i]);  +				} +			} +			else +			{ +				glVertexAttribPointerARB(i, attrib_size[i], attrib_type[i], attrib_normalized[i], sTypeSize[i], (void*) mOffsets[i]);  +			}  		}  		else  		{ @@ -2220,11 +2255,12 @@ void LLVertexBuffer::setupVertexBuffer(U32 data_mask)  			void* ptr = (void*)(base + mOffsets[TYPE_CLOTHWEIGHT]);  			glVertexAttribPointerARB(loc, 4, GL_FLOAT, GL_TRUE,  LLVertexBuffer::sTypeSize[TYPE_CLOTHWEIGHT], ptr);  		} -		if (data_mask & MAP_TEXTURE_INDEX) +		if (data_mask & MAP_TEXTURE_INDEX &&  +				(gGLManager.mGLSLVersionMajor >= 2 || gGLManager.mGLSLVersionMinor >= 30)) //indexed texture rendering requires GLSL 1.30 or later  		{  			S32 loc = TYPE_TEXTURE_INDEX;  			void *ptr = (void*) (base + mOffsets[TYPE_VERTEX] + 12); -			glVertexAttribPointerARB(loc, 1, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_VERTEX], ptr); +			glVertexAttribIPointer(loc, 4, GL_UNSIGNED_BYTE, LLVertexBuffer::sTypeSize[TYPE_VERTEX], ptr);  		}  		if (data_mask & MAP_VERTEX)  		{ diff --git a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl index 3e4d438ed3..54e2f04459 100644 --- a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -34,5 +36,5 @@ uniform sampler2D diffuseMap;  void main()   { -	gl_FragColor = vec4(vertex_color.rgb, texture2D(diffuseMap, vary_texcoord0.xy).a); +	frag_color = vec4(vertex_color.rgb, texture2D(diffuseMap, vary_texcoord0.xy).a);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index c012efa056..37fd63b7d5 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -69,6 +71,6 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl index 8641827777..14ac9f1f78 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -81,9 +83,9 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color; -	//gl_FragColor = vec4(1,0,1,1); -	//gl_FragColor = vec4(1,0,1,1)*shadow; +	frag_color = color; +	//frag_color = vec4(1,0,1,1); +	//frag_color = vec4(1,0,1,1)*shadow;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl index c13ea702db..654e272b06 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -79,6 +81,6 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl index 402f681631..b88041490a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl @@ -23,7 +23,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -33,7 +35,7 @@ VARYING vec2 vary_texcoord0;  void main()   { -	//gl_FragColor = vec4(1,1,1,vertex_color.a * texture2D(diffuseMap, vary_texcoord0.xy).a); -	gl_FragColor = vec4(1,1,1,1); +	//frag_color = vec4(1,1,1,vertex_color.a * texture2D(diffuseMap, vary_texcoord0.xy).a); +	frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl index 9a3b2e3e8a..4912c9a50c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform sampler2D diffuseMap; @@ -41,9 +43,9 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(diff.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); +	frag_data[0] = vec4(diff.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0);  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl index 558a88009a..594ed778e3 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -33,7 +35,7 @@ VARYING vec4 post_pos;  void main()   { -	gl_FragColor = vec4(1,1,1,1); +	frag_color = vec4(1,1,1,1);  	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl index 60d4dae99f..a08b018702 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -111,6 +113,6 @@ void main()  	col /= defined_weight.xyxx;  	col.y *= col.y; -	gl_FragColor = col; +	frag_color = col;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl index 6cc5f23aca..141738023d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform sampler2D diffuseMap; @@ -46,9 +48,9 @@ void main()  			  dot(norm,vary_mat1),  			  dot(norm,vary_mat2)); -	gl_FragData[0] = vec4(col, 0.0); -	gl_FragData[1] = vertex_color.aaaa; // spec -	//gl_FragData[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested +	frag_data[0] = vec4(col, 0.0); +	frag_data[1] = vertex_color.aaaa; // spec +	//frag_data[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested  	vec3 nvn = normalize(tnorm); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl index db272cf601..d2afc148b1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl @@ -25,7 +25,9 @@  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  ///////////////////////////////////////////////////////////////////////// @@ -98,8 +100,8 @@ void main()  	color *= 2.;  	/// Gamma correct for WL (soft clip effect). -	gl_FragData[0] = vec4(scaleSoftClip(color.rgb), alpha1); -	gl_FragData[1] = vec4(0.0,0.0,0.0,0.0); -	gl_FragData[2] = vec4(0,0,1,0); +	frag_data[0] = vec4(scaleSoftClip(color.rgb), alpha1); +	frag_data[1] = vec4(0.0,0.0,0.0,0.0); +	frag_data[2] = vec4(0,0,1,0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl index e612efba61..3fcfbf55c4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -83,6 +85,6 @@ void main()  	sc = max(sc, -max_cof);  	vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); -	gl_FragColor.rgb = diff.rgb + bloom.rgb; -	gl_FragColor.a = sc/max_cof*0.5+0.5; +	frag_color.rgb = diff.rgb + bloom.rgb; +	frag_color.a = sc/max_cof*0.5+0.5;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl index e9989a4e48..c8acaee134 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform float minimum_alpha; @@ -44,9 +46,9 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(col.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); // spec +	frag_data[0] = vec4(col.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0); // spec  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl index fdf8d72b38..d960cbc2fe 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  VARYING vec3 vary_normal; @@ -43,8 +45,8 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(col.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); +	frag_data[0] = vec4(col.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0);  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl index bb20e2ca47..b1c9b52569 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl @@ -25,7 +25,9 @@  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform float minimum_alpha; @@ -44,9 +46,9 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(col.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); // spec +	frag_data[0] = vec4(col.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0); // spec  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl index 7bde49eb86..caefe84957 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform sampler2D diffuseMap; @@ -36,10 +38,10 @@ VARYING vec2 vary_texcoord0;  void main()   {  	vec3 col = vertex_color.rgb * texture2D(diffuseMap, vary_texcoord0.xy).rgb; -	gl_FragData[0] = vec4(col, 0.0); -	gl_FragData[1] = vertex_color.aaaa; // spec -	//gl_FragData[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested +	frag_data[0] = vec4(col, 0.0); +	frag_data[1] = vertex_color.aaaa; // spec +	//frag_data[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl index 75b45111e0..c89f389954 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  VARYING vec3 vary_normal; @@ -35,9 +37,9 @@ void main()  {  	vec3 col = vertex_color.rgb * diffuseLookup(vary_texcoord0.xy).rgb; -	gl_FragData[0] = vec4(col, 0.0); -	gl_FragData[1] = vertex_color.aaaa; // spec -	//gl_FragData[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested +	frag_data[0] = vec4(col, 0.0); +	frag_data[1] = vertex_color.aaaa; // spec +	//frag_data[1] = vec4(vec3(vertex_color.a), vertex_color.a+(1.0-vertex_color.a)*vertex_color.a); // spec - from former class3 - maybe better, but not so well tested  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl index 0cf5afc568..f05ea557e3 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -73,5 +75,5 @@ void main()  		diff = mix(diff, col*0.25, a);  	} -	gl_FragColor = mix(diff, dof, a); +	frag_color = mix(diff, dof, a);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl index 92f78125d8..ebe9a66bb4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  vec3 fullbrightAtmosTransport(vec3 light); @@ -45,6 +47,6 @@ void main()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl index 84ae2f9f10..616ffca2d1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -46,6 +48,6 @@ void main()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl index 5af9406452..76b1748813 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  #define FXAA_PC 1 @@ -2113,6 +2115,6 @@ void main()  	//diff = texture2D(diffuseMap, vary_tc); -	gl_FragColor = diff; +	frag_color = diff;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl index 29ca80ae92..28ed70d49d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -184,5 +186,5 @@ void main()  	vec3 norm = texture2DRect(normalMap, pos_screen).xyz;  	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm -	gl_FragColor.xyz = giAmbient(pos, norm); +	frag_color.xyz = giAmbient(pos, norm);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl deleted file mode 100644 index e5d3bb8ea6..0000000000 --- a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl +++ /dev/null @@ -1,48 +0,0 @@ -/**  - * @file giV.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -uniform mat4 modelview_projection_matrix; - -ATTRIBUTE vec3 position; -ATTRIBUTE vec4 diffuse_color; -ATTRIBUTE vec2 texcoord0; - -VARYING vec4 vertex_color; -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;	 -	vec4 tex = vec4(texcoord0,0,1); -	tex.w = 1.0; - -	vertex_color = diffuse_color; -} diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl index a44173a2a4..d7bc8d02d9 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform float minimum_alpha; @@ -45,7 +47,7 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(col.rgb, col.a * 0.005); -	gl_FragData[1] = texture2D(specularMap, vary_texcoord0.xy); -	gl_FragData[2] = vec4(texture2D(normalMap, vary_texcoord0.xy).xyz, 0.0); +	frag_data[0] = vec4(col.rgb, col.a * 0.005); +	frag_data[1] = texture2D(specularMap, vary_texcoord0.xy); +	frag_data[2] = vec4(texture2D(normalMap, vary_texcoord0.xy).xyz, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl index e014a14ad8..31da124cb1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl @@ -26,12 +26,14 @@  uniform sampler2DRect diffuseMap;  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec2 vary_fragcoord;  void main()   { -	gl_FragColor = texture2DRect(diffuseMap, vary_fragcoord.xy); +	frag_color = texture2DRect(diffuseMap, vary_fragcoord.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl index 179c721a2f..cd50e17d7e 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect depthMap; @@ -141,6 +143,6 @@ void main()  		discard;  	} -	gl_FragColor.rgb = out_col; -	gl_FragColor.a = 0.0; +	frag_color.rgb = out_col; +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index 2196d14895..40dd363061 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  //class 1 -- no shadows @@ -242,6 +244,6 @@ void main()  		}  	} -	gl_FragColor.rgb = col;	 -	gl_FragColor.a = 0.0; +	frag_color.rgb = col;	 +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl b/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl index 879942d8fa..32881ef042 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D alphaMap; @@ -52,5 +54,5 @@ void main()  	norm *= 0.5;  	norm += 0.5;	 -	gl_FragColor = vec4(norm, alpha); +	frag_color = vec4(norm, alpha);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl index b673d00d6e..619b7bcd03 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -118,6 +120,6 @@ void main()  		discard;  	} -	gl_FragColor.rgb = col;	 -	gl_FragColor.a = 0.0; +	frag_color.rgb = col;	 +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl index 18d451bf87..e7b2174280 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -122,5 +124,5 @@ void main()  		diff /= w;  	} -	gl_FragColor = diff; +	frag_color = diff;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl index c275434777..ed2352b51f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -40,6 +42,6 @@ void main()  	vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy);  	vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); -	gl_FragColor = diff + bloom; +	frag_color = diff + bloom;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl index 84d65d5b3b..18550b2e12 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl @@ -24,8 +24,10 @@   */   #ifdef DEFINE_GL_FRAGCOLOR - out vec4 gl_FragColor; - #endif +out vec4 frag_color; +#else +#define frag_color gl_FragColor; +#endif  uniform sampler2DRect depthMap;  uniform sampler2DRect normalMap; @@ -96,5 +98,5 @@ void main()  	col = col*col*blur_quad.x + col*blur_quad.y + blur_quad.z; -	gl_FragColor.rgb = col; +	frag_color.rgb = col;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl deleted file mode 100644 index 0d5c8e7287..0000000000 --- a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl +++ /dev/null @@ -1,40 +0,0 @@ -/**  - * @file postgiV.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/class1/deferred/shadowAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl index c1fb7b55d4..7d75b50aa2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -44,7 +46,7 @@ void main()  		discard;  	} -	gl_FragColor = vec4(1,1,1,1); +	frag_color = vec4(1,1,1,1);  	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl index bf75ca262e..3eb733aa51 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl @@ -24,14 +24,16 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 post_pos;  void main()   { -	gl_FragColor = vec4(1,1,1,1); +	frag_color = vec4(1,1,1,1);  	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl index 96ad0aa93a..7d80f07da4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  ///////////////////////////////////////////////////////////////////////// @@ -57,8 +59,8 @@ void main()  	color *= 2.;  	/// Gamma correct for WL (soft clip effect). -	gl_FragData[0] = vec4(scaleSoftClip(color.rgb), 1.0); -	gl_FragData[1] = vec4(0.0,0.0,0.0,0.0); -	gl_FragData[2] = vec4(0,0,1,0); +	frag_data[0] = vec4(scaleSoftClip(color.rgb), 1.0); +	frag_data[1] = vec4(0.0,0.0,0.0,0.0); +	frag_data[2] = vec4(0,0,1,0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index 0c53a4ffa5..70b0f6fbd0 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -322,7 +324,7 @@ void main()  		col = diffuse.rgb;  	} -	gl_FragColor.rgb = col; +	frag_color.rgb = col; -	gl_FragColor.a = bloom; +	frag_color.a = bloom;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl index cc0f4e5b6b..d3d6a155f0 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -27,7 +27,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -184,6 +186,6 @@ void main()  		}  	} -	gl_FragColor.rgb = col;	 -	gl_FragColor.a = 0.0; +	frag_color.rgb = col;	 +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl index 03fccd2766..1cfcca4f5d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  VARYING vec4 vertex_color; @@ -36,7 +38,7 @@ void main()  {  	vec4 col = vertex_color * texture2D(diffuseMap, vary_texcoord0.xy); -	gl_FragData[0] = col; -	gl_FragData[1] = vec4(0,0,0,0); -	gl_FragData[2] = vec4(0,0,1,0);	 +	frag_data[0] = col; +	frag_data[1] = vec4(0,0,0,0); +	frag_data[2] = vec4(0,0,1,0);	  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl index adc7c5d005..aa29be09a1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl @@ -28,10 +28,12 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  void main()   { -	gl_FragColor = vec4(0,0,0,0); +	frag_color = vec4(0,0,0,0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl index fc5959a33c..9bee632472 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  //class 1 -- no shadow, SSAO only @@ -128,8 +130,8 @@ void main()  	vec3 norm = texture2DRect(normalMap, pos_screen).xyz;  	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm -	gl_FragColor[0] = 1.0; -	gl_FragColor[1] = calcAmbientOcclusion(pos, norm); -	gl_FragColor[2] = 1.0;  -	gl_FragColor[3] = 1.0; +	frag_color[0] = 1.0; +	frag_color[1] = calcAmbientOcclusion(pos, norm); +	frag_color[2] = 1.0;  +	frag_color[3] = 1.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl index 5522e6c41d..021c23f76c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform sampler2D detail_0; @@ -51,9 +53,9 @@ void main()  	float alphaFinal = texture2D(alpha_ramp, vary_texcoord1.zw).a;  	vec4 outColor = mix( mix(color3, color2, alpha2), mix(color1, color0, alpha1), alphaFinal ); -	gl_FragData[0] = vec4(outColor.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); +	frag_data[0] = vec4(outColor.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0);  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl index ea98d6884c..10d8a5c321 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  uniform sampler2D diffuseMap; @@ -43,8 +45,8 @@ void main()  		discard;  	} -	gl_FragData[0] = vec4(vertex_color.rgb*col.rgb, 0.0); -	gl_FragData[1] = vec4(0,0,0,0); +	frag_data[0] = vec4(vertex_color.rgb*col.rgb, 0.0); +	frag_data[1] = vec4(0,0,0,0);  	vec3 nvn = normalize(vary_normal); -	gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0); +	frag_data[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl index 20d0170535..6be66a402f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -43,7 +45,7 @@ void main()  		discard;  	} -	gl_FragColor = vec4(1,1,1,1); +	frag_color = vec4(1,1,1,1);  	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl index 4c9ea24a24..e4c655ed7d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragData[3]; +out vec4 frag_data[3]; +#else +#define frag_data gl_FragData;  #endif  vec3 scaleSoftClip(vec3 inColor); @@ -157,7 +159,7 @@ void main()  	//wavef = normalize(wavef);  	vec3 screenspacewavef = (norm_mat*vec4(wavef, 1.0)).xyz; -	gl_FragData[0] = vec4(color.rgb, 0.5); // diffuse -	gl_FragData[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec -	gl_FragData[2] = vec4(screenspacewavef.xy*0.5+0.5, screenspacewavef.z, screenspacewavef.z*0.5); // normalxyz, displace +	frag_data[0] = vec4(color.rgb, 0.5); // diffuse +	frag_data[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec +	frag_data[2] = vec4(screenspacewavef.xy*0.5+0.5, screenspacewavef.z, screenspacewavef.z*0.5); // normalxyz, displace  } diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl index 9a3d792224..952706841d 100644 --- a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl +++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseMap; @@ -46,7 +48,7 @@ void main()  	float lum = smoothstep(minLuminance, minLuminance+1.0, dot(col.rgb, lumWeights ) );  	float warmth = smoothstep(minLuminance, minLuminance+1.0, max(col.r * warmthWeights.r, max(col.g * warmthWeights.g, col.b * warmthWeights.b)) );  -	gl_FragColor.rgb = col.rgb;  -	gl_FragColor.a = max(col.a, mix(lum, warmth, warmthAmount) * maxExtractAlpha); +	frag_color.rgb = col.rgb;  +	frag_color.a = max(col.a, mix(lum, warmth, warmthAmount) * maxExtractAlpha);  } diff --git a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl index 90bb84323c..289c5b367f 100644 --- a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl +++ b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -54,5 +56,5 @@ void main()  	col += kern[6] * texture2D(diffuseMap, vary_texcoord2.zw);	  	col += kern[7] * texture2D(diffuseMap, vary_texcoord3.zw);	 -	gl_FragColor = vec4(col.rgb * glowStrength, col.a); +	frag_color = vec4(col.rgb * glowStrength, col.a);  } diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl index 18f6d91804..51efdd4b39 100644 --- a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -59,6 +61,6 @@ void main()  	/// Add WL Components  	outColor.rgb = atmosLighting(outColor.rgb * vertex_color.rgb); -	gl_FragColor = vec4(scaleSoftClip(outColor.rgb), 1.0); +	frag_color = vec4(scaleSoftClip(outColor.rgb), 1.0);  } diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl index e5c7ced52c..d9b5c5f7f5 100644 --- a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -60,6 +62,6 @@ void main()  	outColor.rgb = atmosLighting(outColor.rgb * vertex_color.rgb);  	outColor = applyWaterFog(outColor); -	gl_FragColor = outColor; +	frag_color = outColor;  } diff --git a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl index 1fdb90f792..32459eff6a 100644 --- a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -106,5 +108,5 @@ void main()  	vec4 fb = texture2D(screenTex, distort); -	gl_FragColor = applyWaterFog(fb,view.xyz); +	frag_color = applyWaterFog(fb,view.xyz);  } diff --git a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl index 444c896d38..0cde7d0133 100644 --- a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  vec3 scaleSoftClip(vec3 inColor); @@ -135,5 +137,5 @@ void main()  	color.rgb = scaleSoftClip(color.rgb);  	color.a = spec * sunAngle2; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl b/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl index d2f5e1987a..e8b8513bd1 100644 --- a/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -42,5 +44,5 @@ void main()  		discard;  	} -	gl_FragColor = col; +	frag_color = col;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl b/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl index 4b481ba834..b990ce9f03 100644 --- a/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -38,5 +40,5 @@ void main()  {  	vec4 color = vertex_color*texture2D(diffuseMap, vary_texcoord0.xy);  	color.a *= custom_alpha; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/debugF.glsl b/indra/newview/app_settings/shaders/class1/interface/debugF.glsl index 6bcc97ba18..ad05f17a30 100644 --- a/indra/newview/app_settings/shaders/class1/interface/debugF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/debugF.glsl @@ -24,12 +24,14 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform vec4 color;  void main()   { -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl index f67703b839..7e4515db40 100644 --- a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  #extension GL_ARB_texture_rectangle : enable @@ -37,6 +39,6 @@ VARYING vec2 vary_texcoord1;  void main()   { -	gl_FragColor = texture2D(glowMap, vary_texcoord0.xy) + +	frag_color = texture2D(glowMap, vary_texcoord0.xy) +  					texture2DRect(screenMap, vary_texcoord1.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl index c66a6e5b48..5a5894523d 100644 --- a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -38,5 +40,5 @@ void main()  {  	vec3 col = texture2DRect(diffuseRect, vary_tc*screen_res).rgb; -	gl_FragColor = vec4(col.rgb, dot(col.rgb, vec3(0.299, 0.587, 0.144))); +	frag_color = vec4(col.rgb, dot(col.rgb, vec3(0.299, 0.587, 0.144)));  } diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl index ecbc30f05f..d1d140d2a6 100644 --- a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform vec4 color; @@ -34,5 +36,5 @@ VARYING vec2 vary_texcoord0;  void main()   { -	gl_FragColor = color*texture2D(diffuseMap, vary_texcoord0.xy); +	frag_color = color*texture2D(diffuseMap, vary_texcoord0.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl b/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl index 85f819f4c2..a18a3cdb50 100644 --- a/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl @@ -24,10 +24,12 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  void main()   { -	gl_FragColor = vec4(1,1,1,1); +	frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl index fafeb5a7b4..bfaa4774d9 100644 --- a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D tex0; @@ -33,5 +35,5 @@ VARYING vec2 vary_texcoord0;  void main()   { -	gl_FragColor = texture2D(tex0, vary_texcoord0.xy); +	frag_color = texture2D(tex0, vary_texcoord0.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl index f790122749..5d7edf33a9 100644 --- a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D tex0; @@ -36,5 +38,5 @@ void main()  {  	float alpha = texture2D(tex0, vary_texcoord0.xy).a * vertex_color.a; -	gl_FragColor = vec4(vertex_color.rgb, alpha); +	frag_color = vec4(vertex_color.rgb, alpha);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl b/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl index a0bb255cfa..7a28ca847a 100644 --- a/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect screenMap; @@ -36,5 +38,5 @@ VARYING vec2 vary_texcoord0;  void main()   { -	gl_FragColor = 	texture2DRect(screenMap, vary_texcoord0.xy) * vertex_color; +	frag_color = 	texture2DRect(screenMap, vary_texcoord0.xy) * vertex_color;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl b/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl index cdb48163dd..73a5839028 100644 --- a/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D tex0; @@ -35,5 +37,5 @@ VARYING vec2 vary_texcoord1;  void main()   { -	gl_FragColor = texture2D(tex0, vary_texcoord0.xy)+texture2D(tex1, vary_texcoord1.xy); +	frag_color = texture2D(tex0, vary_texcoord0.xy)+texture2D(tex1, vary_texcoord1.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/uiF.glsl b/indra/newview/app_settings/shaders/class1/interface/uiF.glsl index 36d6e06fc5..8fac2862b1 100644 --- a/indra/newview/app_settings/shaders/class1/interface/uiF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/uiF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D diffuseMap; @@ -34,5 +36,5 @@ VARYING vec4 vertex_color;  void main()   { -	gl_FragColor = vertex_color*texture2D(diffuseMap, vary_texcoord0.xy); +	frag_color = vertex_color*texture2D(diffuseMap, vary_texcoord0.xy);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl index 10413bdeb0..aabff3196a 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -48,6 +50,6 @@ void default_lighting()  	color.rgb = scaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl index 1164e5b0a6..6e6aec8532 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -50,6 +52,6 @@ void default_lighting()  	color.rgb = scaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl index 735f5b3813..f9a3eb8d90 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -41,6 +43,6 @@ void default_lighting()  	color.rgb = scaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl index ba99c0ed71..a3eb133133 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -48,6 +50,6 @@ void fullbright_lighting()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl index c3edc0bd70..222c6bbf0e 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -41,6 +43,6 @@ void fullbright_lighting()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl index 276fad4f44..441fcd0d7a 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -50,6 +52,6 @@ void fullbright_lighting()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl index 4e1e664e6b..7020fbc72b 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -43,6 +45,6 @@ void fullbright_lighting()  	color.rgb = fullbrightScaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl index c981e9eba2..889a3e48ba 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -50,6 +52,6 @@ void fullbright_shiny_lighting()  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl index a4893f0359..f0727c377b 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -51,6 +53,6 @@ void fullbright_shiny_lighting()  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl index c10cde98e0..aac13462b3 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl @@ -23,7 +23,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -48,6 +50,6 @@ void fullbright_shiny_lighting_water()  	color.rgb = fullbrightScaleSoftClip(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl index e9b26087f4..4f57b7a9f5 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl @@ -23,7 +23,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -49,6 +51,6 @@ void fullbright_shiny_lighting_water()  	color.rgb = fullbrightScaleSoftClip(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl index 754b2922d9..6c277cddc1 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -48,6 +50,6 @@ void fullbright_lighting_water()  	color.rgb = fullbrightAtmosTransport(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl index 2547f9e750..5c4bedefcc 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -41,6 +43,6 @@ void fullbright_lighting_water()  	color.rgb = fullbrightAtmosTransport(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl index f69b907dc7..df07071236 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -48,6 +50,6 @@ void fullbright_lighting_water()  	color.rgb = fullbrightAtmosTransport(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl index aa3ef8cdd9..91208bc56a 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -41,6 +43,6 @@ void fullbright_lighting_water()  	color.rgb = fullbrightAtmosTransport(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl index 9f1a358b53..1a0473b9e2 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -43,6 +45,6 @@ void default_lighting()  	color.rgb = scaleSoftClip(color.rgb); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl index e9c27dbefd..a24d8d4ecd 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -49,6 +51,6 @@ void shiny_lighting()  	color.rgb = scaleSoftClip(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl index 595ad74365..16f64633ac 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -50,6 +52,6 @@ void shiny_lighting()  	color.rgb = scaleSoftClip(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl index 68c727d62c..cf78149733 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -46,6 +48,6 @@ void shiny_lighting_water()  	color.rgb = atmosLighting(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl index f32b9e1958..97531fd937 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -47,6 +49,6 @@ void shiny_lighting_water()  	color.rgb = atmosLighting(color.rgb);  	color.a = max(color.a, vertex_color.a); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl index 103dd633c9..4fcdad09fc 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -46,6 +48,6 @@ void default_lighting_water()  	color.rgb = atmosLighting(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl index bef72752da..d235ed2491 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -50,6 +52,6 @@ void default_lighting_water()  	color = applyWaterFog(color); -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl index e9537d1e9d..c295579028 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl @@ -24,8 +24,10 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; -#endif  +out vec4 frag_color; +#else +#define frag_color gl_FragColor; +#endif  VARYING vec4 vertex_color;  VARYING vec2 vary_texcoord0; @@ -39,6 +41,6 @@ void default_lighting_water()  	color.rgb = atmosLighting(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl index 8b0c25b705..5a5cc2c821 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -41,6 +43,6 @@ void default_lighting_water()  	color.rgb = atmosLighting(color.rgb); -	gl_FragColor = applyWaterFog(color); +	frag_color = applyWaterFog(color);  } diff --git a/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl b/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl index 4b85d61aca..df6130cc58 100644 --- a/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2D texture0; @@ -38,5 +40,5 @@ void main()  	float tex0 = texture2D(texture0, vary_texcoord0.xy).a;  	float tex1 = texture2D(texture1, vary_texcoord1.xy).a; -	gl_FragColor = vec4(tex0+(1.0-tex1)-0.5); +	frag_color = vec4(tex0+(1.0-tex1)-0.5);  } diff --git a/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl b/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl index 3c6e22b295..6358fdfeae 100644 --- a/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform float minimum_alpha; @@ -42,5 +44,5 @@ void main()  		discard;  	} -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl b/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl index a95c9e0ab9..a0f513d73d 100644 --- a/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl @@ -23,9 +23,9 @@   * $/LicenseInfo$   */ -ATTRIBUTE float texture_index; +ATTRIBUTE uvec4 texture_index; -VARYING float vary_texture_index; +VARYING_FLAT uvec4 vary_texture_index;  void passTextureIndex()  { diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl index 1179b212ae..373a6c157b 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -125,6 +127,6 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl index 0df557f2aa..04460ea7c0 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRectShadow shadowMap0; @@ -138,6 +140,6 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color;	 +	frag_color = color;	  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl index 331dbc7079..c50145f753 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRectShadow shadowMap0; @@ -137,6 +139,6 @@ void main()  	color.rgb += diff.rgb * vary_pointlight_col.rgb; -	gl_FragColor = color; +	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 14a683971a..7d78a888a5 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -253,6 +255,6 @@ void main()  		}  	} -	gl_FragColor.rgb = col;	 -	gl_FragColor.a = 0.0; +	frag_color.rgb = col;	 +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index 27ea77b5a2..f73163898e 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  uniform sampler2DRect diffuseRect; @@ -330,6 +332,6 @@ void main()  		col = diffuse.rgb;  	} -	gl_FragColor.rgb = col; -	gl_FragColor.a = bloom; +	frag_color.rgb = col; +	frag_color.a = bloom;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index 31bd0c79da..7cc621b1f6 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  VARYING vec4 vertex_color; @@ -201,6 +203,6 @@ void main()  		}  	} -	gl_FragColor.rgb = col;	 -	gl_FragColor.a = 0.0; +	frag_color.rgb = col;	 +	frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl index 229c2f4b67..a92a9fc8e8 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl @@ -26,7 +26,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  //class 2, shadows, no SSAO @@ -129,7 +131,7 @@ void main()  	/*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL  	{ -		gl_FragColor = vec4(0.0); // doesn't matter +		frag_color = vec4(0.0); // doesn't matter  		return;  	}*/ @@ -198,19 +200,19 @@ void main()  		shadow = 1.0;  	} -	gl_FragColor[0] = shadow; -	gl_FragColor[1] = 1.0; +	frag_color[0] = shadow; +	frag_color[1] = 1.0;  	spos = vec4(shadow_pos+norm*spot_shadow_offset, 1.0);  	//spotlight shadow 1  	vec4 lpos = shadow_matrix[4]*spos; -	gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.8);  +	frag_color[2] = pcfShadow(shadowMap4, lpos, 0.8);   	//spotlight shadow 2  	lpos = shadow_matrix[5]*spos; -	gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.8);  +	frag_color[3] = pcfShadow(shadowMap5, lpos, 0.8);  -	//gl_FragColor.rgb = pos.xyz; -	//gl_FragColor.b = shadow; +	//frag_color.rgb = pos.xyz; +	//frag_color.b = shadow;  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl index 6b420833b9..45b8db5adc 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl @@ -25,7 +25,9 @@  #extension GL_ARB_texture_rectangle : enable  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  //class 2 -- shadows and SSAO @@ -190,7 +192,7 @@ void main()  	/*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL  	{ -		gl_FragColor = vec4(0.0); // doesn't matter +		frag_color = vec4(0.0); // doesn't matter  		return;  	}*/ @@ -259,19 +261,19 @@ void main()  		shadow = 1.0;  	} -	gl_FragColor[0] = shadow; -	gl_FragColor[1] = calcAmbientOcclusion(pos, norm); +	frag_color[0] = shadow; +	frag_color[1] = calcAmbientOcclusion(pos, norm);  	spos = vec4(shadow_pos+norm*spot_shadow_offset, 1.0);  	//spotlight shadow 1  	vec4 lpos = shadow_matrix[4]*spos; -	gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.8);  +	frag_color[2] = pcfShadow(shadowMap4, lpos, 0.8);   	//spotlight shadow 2  	lpos = shadow_matrix[5]*spos; -	gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.8);  +	frag_color[3] = pcfShadow(shadowMap5, lpos, 0.8);  -	//gl_FragColor.rgb = pos.xyz; -	//gl_FragColor.b = shadow; +	//frag_color.rgb = pos.xyz; +	//frag_color.b = shadow;  } diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl index 4ab06c6e21..c8d89095d8 100644 --- a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  ///////////////////////////////////////////////////////////////////////// @@ -96,7 +98,7 @@ void main()  	color *= 2.;  	/// Gamma correct for WL (soft clip effect). -	gl_FragColor.rgb = scaleSoftClip(color.rgb); -	gl_FragColor.a = alpha1; +	frag_color.rgb = scaleSoftClip(color.rgb); +	frag_color.a = alpha1;  } diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl index c9d96b2cf4..4aece6e032 100644 --- a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl +++ b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl @@ -24,7 +24,9 @@   */  #ifdef DEFINE_GL_FRAGCOLOR -out vec4 gl_FragColor; +out vec4 frag_color; +#else +#define frag_color gl_FragColor;  #endif  ///////////////////////////////////////////////////////////////////////// @@ -57,7 +59,7 @@ void main()  	color *= 2.;  	/// Gamma correct for WL (soft clip effect). -	gl_FragColor.rgb = scaleSoftClip(color.rgb); -	gl_FragColor.a = 1.0; +	frag_color.rgb = scaleSoftClip(color.rgb); +	frag_color.a = 1.0;  } diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index cd33a19a2a..838e541145 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1742,14 +1742,22 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,  		LLVector4a texIdx; -		F32 index = (F32) (mTextureIndex < 255 ? mTextureIndex : 0); +		U8 index = mTextureIndex < 255 ? mTextureIndex : 0; + +		F32 val = 0.f; +		U8* vp = (U8*) &val; +		vp[0] = index; +		vp[1] = 0; +		vp[2] = 0; +		vp[3] = 0; +  		llassert(index <= LLGLSLShader::sIndexedTextureChannels-1);  		LLVector4Logical mask;  		mask.clear();  		mask.setElement<3>(); -		texIdx.set(0,0,0,index); +		texIdx.set(0,0,0,val);  		{  			LLFastTimer t(FTM_FACE_POSITION_STORE); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 6db2138688..36a402e05e 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -416,6 +416,7 @@ void LLViewerShaderMgr::setShaders()  	LLGLSLShader::sNoFixedFunction = false;  	LLVertexBuffer::unbind();  	if (LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")  +		&& (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)  		&& gSavedSettings.getBOOL("VertexShaderEnable"))  	{  		//using shaders, disable fixed function @@ -741,7 +742,10 @@ BOOL LLViewerShaderMgr::loadBasicShaders()  	shaders.push_back( make_pair( "windlight/atmosphericsV.glsl",			mVertexShaderLevel[SHADER_WINDLIGHT] ) );  	shaders.push_back( make_pair( "avatar/avatarSkinV.glsl",				1 ) );  	shaders.push_back( make_pair( "avatar/objectSkinV.glsl",				1 ) ); -	shaders.push_back( make_pair( "objects/indexedTextureV.glsl",			1 ) ); +	if (gGLManager.mGLSLVersionMajor >= 2 || gGLManager.mGLSLVersionMinor >= 30) +	{ +		shaders.push_back( make_pair( "objects/indexedTextureV.glsl",			1 ) ); +	}  	shaders.push_back( make_pair( "objects/nonindexedTextureV.glsl",		1 ) );  	// We no longer have to bind the shaders to global glhandles, they are automatically added to a map now. @@ -758,11 +762,11 @@ BOOL LLViewerShaderMgr::loadBasicShaders()  	// (in order of shader function call depth for reference purposes, deepest level first)  	shaders.clear(); -	S32 ch = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1); +	S32 ch = 1; -	if (gGLManager.mGLVersion < 3.1f) -	{ //force to 1 texture index channel for old drivers -		ch = 1; +	if (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 30) +	{ //use indexed texture rendering for GLSL >= 1.30 +		ch = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1);  	}  	std::vector<S32> index_channels; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 6354230796..4d50a920d9 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -4714,11 +4714,11 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::  		buffer_index = -1;  	} -	S32 texture_index_channels = LLGLSLShader::sIndexedTextureChannels-1; //always reserve one for shiny for now just for simplicity +	S32 texture_index_channels = 1; -	if (gGLManager.mGLVersion < 3.1f) +	if (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 30)  	{ -		texture_index_channels = 1; +		texture_index_channels = LLGLSLShader::sIndexedTextureChannels-1; //always reserve one for shiny for now just for simplicity;  	}  	if (LLPipeline::sRenderDeferred && distance_sort) | 
