diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/avatar')
| -rwxr-xr-x | indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl | 6 | ||||
| -rwxr-xr-x | indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl | 9 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl index bc63d07d72..767fad016c 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl @@ -40,4 +40,10 @@ mat4 getSkinnedTransform()  	ret[3] = vec4(0,0,0,1);  	return ret; + +#ifdef IS_AMD_CARD +	// If it's AMD make sure the GLSL compiler sees the arrays referenced once by static index. Otherwise it seems to optimise the storage awawy which leads to unfun crashes and artifacts. +	vec4 dummy1 = matrixPalette[0]; +	vec4 dummy2 = matrixPalette[44]; +#endif  } diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl index 57129c3bd1..6cd38d8ef5 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl @@ -63,5 +63,14 @@ mat4 getObjectSkinnedTransform()  	ret[3] = vec4(trans, 1.0);  	return ret; + +#ifdef IS_AMD_CARD +   // If it's AMD make sure the GLSL compiler sees the arrays referenced once by static index. Otherwise it seems to optimise the storage awawy which leads to unfun crashes and artifacts. +   mat3 dummy1 = matrixPalette[0]; +   vec3 dummy2 = translationPalette[0]; +   mat3 dummy3 = matrixPalette[51]; +   vec3 dummy4 = translationPalette[51]; +#endif +  } | 
