ATTENTION: default value of option force_s3tc_enable overridden by environment. Mesa: Mesa 7.9-devel DEBUG build Aug 30 2010 13:28:34 Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable GLSL source for shader 2: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #define SHADOW_SOFTNESS 0.0005 #define SPHERE_COUNT 2 #line 0 uniform float scale; uniform vec3 offset; uniform vec3 lightPos; uniform vec4 spherePos[SPHERE_COUNT]; varying vec3 lightVec; varying vec4 sphereVec[SPHERE_COUNT]; void main(){ vec4 pos = gl_Vertex; pos.xyz *= scale; pos.xyz += offset; gl_Position = gl_ModelViewProjectionMatrix * pos; lightVec = lightPos - pos.xyz; for (int i = 0; i < SPHERE_COUNT; i++){ sphereVec[i].xyz = spherePos[i].xyz - pos.xyz; sphereVec[i].w = spherePos[i].w * SHADOW_SOFTNESS - 0.5; } } GLSL IR for shader 2: ( (declare (out ) (array vec4 2) sphereVec@0x8f303d0) (declare (out ) vec3 lightVec@0x8f304a8) (declare (uniform ) (array vec4 2) spherePos@0x8f30580) (declare (uniform ) vec3 lightPos@0x8f30658) (declare (uniform ) vec3 offset@0x8f30730) (declare (uniform ) float scale@0x8f30808) (declare (out ) vec4 gl_Position@0x8e80e50) (declare (out ) float gl_PointSize@0x8e80f78) (declare (in ) vec4 gl_Vertex@0x8e852c0) (declare (in ) vec3 gl_Normal@0x8e853e8) (declare (in ) vec4 gl_Color@0x8e85520) (declare (in ) vec4 gl_SecondaryColor@0x8e85658) (declare (in ) vec4 gl_MultiTexCoord0@0x8e85758) (declare (in ) vec4 gl_MultiTexCoord1@0x8e85858) (declare (in ) vec4 gl_MultiTexCoord2@0x8e85958) (declare (in ) vec4 gl_MultiTexCoord3@0x8e85a58) (declare (in ) vec4 gl_MultiTexCoord4@0x8e85ba0) (declare (in ) vec4 gl_MultiTexCoord5@0x8e85ce8) (declare (in ) vec4 gl_MultiTexCoord6@0x8e85e30) (declare (in ) vec4 gl_MultiTexCoord7@0x8e85f78) (declare (in ) float gl_FogCoord@0x8e860c0) (declare (out ) vec4 gl_ClipVertex@0x8e861f8) (declare (out ) vec4 gl_FrontColor@0x8e86340) (declare (out ) vec4 gl_BackColor@0x8e86488) (declare (out ) vec4 gl_FrontSecondaryColor@0x8e865d0) (declare (out ) vec4 gl_BackSecondaryColor@0x8e86728) (declare (out ) float gl_FogFragCoord@0x8e86880) (declare (uniform ) mat4 gl_ModelViewMatrix@0x8e869c8) (declare (uniform ) mat4 gl_ProjectionMatrix@0x8e86b10) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8e86c58) (declare (uniform ) mat3 gl_NormalMatrix@0x8e86d98) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8e86ee0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8e87038) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x8e87190) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x8e872d0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x8e87428) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x8e87568) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x8e876b0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x8e877f0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x8e87930) (declare (uniform ) float gl_NormalScale@0x8e87a80) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x8e87bc8) (declare () int gl_MaxLights@0x8e87d10) (declare () int gl_MaxClipPlanes@0x8e87ef0) (declare () int gl_MaxTextureUnits@0x8e880d0) (declare () int gl_MaxTextureCoords@0x8e882b0) (declare () int gl_MaxVertexAttribs@0x8e88490) (declare () int gl_MaxVertexUniformComponents@0x8e88670) (declare () int gl_MaxVaryingFloats@0x8e88848) (declare () int gl_MaxVertexTextureImageUnits@0x8e88a28) (declare () int gl_MaxCombinedTextureImageUnits@0x8e88c00) (declare () int gl_MaxTextureImageUnits@0x8e88dd8) (declare () int gl_MaxFragmentUniformComponents@0x8e88fc8) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x8e894a0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x8e895e8) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x8e89820) (declare (uniform ) gl_PointParameters gl_Point@0x8e89968) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x8e89aa0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x8e89be8) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x8e89e38) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x8e89f80) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x8e8a0d8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x8e8a330) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x8e8a488) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x8e8a6c0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x8e8a808) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x8e8a950) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x8e8aa98) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x8e8abe0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x8e8ad28) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x8e8ae70) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x8e8afb8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x8e8b100) (declare (uniform ) gl_FogParameters gl_Fog@0x8e8b248) (declare (out ) (array vec4 0) gl_TexCoord@0x8e8b470) (declare () int gl_MaxDrawBuffers@0x8e8b5a8) (function main (signature void (parameters ) ( (declare () vec4 pos@0x8f30220) (assign (constant bool (1)) (xyzw) (var_ref pos@0x8f30220) (var_ref gl_Vertex@0x8e852c0) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x8f30220) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x8e852c0) )(var_ref scale@0x8f30808) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x8f30220) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x8f30220) )(var_ref offset@0x8f30730) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x8e80e50) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x8e86c58) (var_ref pos@0x8f30220) ) ) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x8f304a8) (expression vec3 + (var_ref lightPos@0x8f30658) (expression vec3 neg (swiz xyz (var_ref pos@0x8f30220) )) ) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x8f303d0) (constant int (0)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x8f30580) (constant int (0)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f30220) )) ) )) (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x8f303d0) (constant int (0)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x8f30580) (constant int (0)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x8f303d0) (constant int (1)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x8f30580) (constant int (1)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f30220) )) ) )) (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x8f303d0) (constant int (1)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x8f30580) (constant int (1)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) )) ) ) GLSL source for shader 3: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #define SHADOW_SOFTNESS 0.0005 #define SPHERE_COUNT 2 #line 26 varying vec3 lightVec; varying vec4 sphereVec[SPHERE_COUNT]; void main(){ vec4 shadow = vec4(1.0); vec3 lVec = lightVec / dot(lightVec, lightVec); for (int i = 0; i < SPHERE_COUNT; i++){ float t = saturate(dot(sphereVec[i].xyz, lVec)); vec3 p = t * lightVec - sphereVec[i].xyz; float len = dot(p, p); shadow.w *= saturate(SHADOW_SOFTNESS * len - sphereVec[i].w); } gl_FragColor = shadow; } GLSL IR for shader 3: ( (declare (in ) (array vec4 2) sphereVec@0x90a6590) (declare (in ) vec3 lightVec@0x90a6670) (declare (in ) vec4 gl_FragCoord@0x91cef40) (declare (in ) bool gl_FrontFacing@0x8f1fce8) (declare (out ) vec4 gl_FragColor@0x8f1fe30) (declare (out ) float gl_FragDepth@0x8f1ff08) (declare (in ) vec4 gl_Color@0x8f20168) (declare (in ) vec4 gl_SecondaryColor@0x8f20240) (declare (in ) float gl_FogFragCoord@0x8f203a8) (declare (uniform ) mat4 gl_ModelViewMatrix@0x8f20480) (declare (uniform ) mat4 gl_ProjectionMatrix@0x8f205c8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8f206a0) (declare (uniform ) mat3 gl_NormalMatrix@0x8f208c0) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8f20a08) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8f20ae0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x8f20c28) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x8f20f70) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x8f21048) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x8f21288) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x8f214a8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x8f216c8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x8f218e8) (declare (uniform ) float gl_NormalScale@0x8f21b08) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x8f21d68) (declare () int gl_MaxLights@0x8f21e40) (declare () int gl_MaxClipPlanes@0x8f22080) (declare () int gl_MaxTextureUnits@0x8f222a0) (declare () int gl_MaxTextureCoords@0x8f224c0) (declare () int gl_MaxVertexAttribs@0x8f226e0) (declare () int gl_MaxVertexUniformComponents@0x8f22900) (declare () int gl_MaxVaryingFloats@0x8f22c68) (declare () int gl_MaxVertexTextureImageUnits@0x8f22e88) (declare () int gl_MaxCombinedTextureImageUnits@0x8f23298) (declare () int gl_MaxTextureImageUnits@0x8f23620) (declare () int gl_MaxFragmentUniformComponents@0x8f23840) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x8f23b38) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x8f23c80) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x8f23d58) (declare (uniform ) gl_PointParameters gl_Point@0x8f23ea0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x8f23f78) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x8f240c0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x8f24198) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x8f242e0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x8f243b8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x8f24610) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x8f24758) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x8f248a0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x8f24af8) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x8f24c60) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x8f24da8) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x8f25000) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x8f25168) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x8f252b0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x8f260a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x8f26528) (declare (uniform ) gl_FogParameters gl_Fog@0x8f26850) (declare (in ) (array vec4 0) gl_TexCoord@0x8f27590) (declare () int gl_MaxDrawBuffers@0x8f279e0) (declare (out ) (array vec4 8) gl_FragData@0x8f28818) (function main (signature void (parameters ) ( (declare () int i@0x9124240) (declare () vec3 lVec@0x91244c8) (declare () vec4 shadow@0x90a63d8) (assign (constant bool (1)) (xyzw) (var_ref shadow@0x90a63d8) (constant vec4 (1.000000 1.000000 1.000000 1.000000)) ) (declare (temporary ) float dot_retval@0x91243f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x91243f0) (call dot ((var_ref lightVec@0x90a6670) (var_ref lightVec@0x90a6670) )) ) (assign (constant bool (1)) (xyz) (var_ref lVec@0x91244c8) (expression vec3 / (var_ref lightVec@0x90a6670) (var_ref dot_retval@0x91243f0) ) ) (assign (constant bool (1)) (x) (var_ref i@0x9124240) (constant int (0)) ) (declare (temporary ) float dot_retval@0x91232a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x91232a0) (call dot ((swiz xyz (array_ref (var_ref sphereVec@0x90a6590) (constant int (0)) ) )(var_ref lVec@0x91244c8) )) ) (declare (temporary ) float clamp_retval@0x91231c0) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x91231c0) (call clamp ((var_ref dot_retval@0x91232a0) (constant float (0.000000)) (constant float (1.000000)) )) ) (declare (temporary ) vec3 assignment_tmp@0x91230e0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x91230e0) (expression vec3 + (expression vec3 * (var_ref clamp_retval@0x91231c0) (var_ref lightVec@0x90a6670) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x90a6590) (var_ref i@0x9124240) ) )) ) ) (declare (temporary ) float dot_retval@0x9123000) (assign (constant bool (1)) (x) (var_ref dot_retval@0x9123000) (call dot ((var_ref assignment_tmp@0x91230e0) (var_ref assignment_tmp@0x91230e0) )) ) (declare (temporary ) float clamp_retval@0x9122f20) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x9122f20) (call clamp ((expression float + (expression float * (constant float (0.000500)) (var_ref dot_retval@0x9123000) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x90a6590) (var_ref i@0x9124240) ) )) ) (constant float (0.000000)) (constant float (1.000000)) )) ) (assign (constant bool (1)) (w) (var_ref shadow@0x90a63d8) (swiz xxxx (expression float * (swiz w (var_ref shadow@0x90a63d8) )(var_ref clamp_retval@0x9122f20) ) )) (assign (constant bool (1)) (x) (var_ref i@0x9124240) (expression int + (var_ref i@0x9124240) (constant int (1)) ) ) (declare (temporary ) float dot_retval@0x9122e40) (assign (constant bool (1)) (x) (var_ref dot_retval@0x9122e40) (call dot ((swiz xyz (array_ref (var_ref sphereVec@0x90a6590) (var_ref i@0x9124240) ) )(var_ref lVec@0x91244c8) )) ) (declare (temporary ) float clamp_retval@0x9122d60) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x9122d60) (call clamp ((var_ref dot_retval@0x9122e40) (constant float (0.000000)) (constant float (1.000000)) )) ) (declare (temporary ) vec3 assignment_tmp@0x9122c80) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x9122c80) (expression vec3 + (expression vec3 * (var_ref clamp_retval@0x9122d60) (var_ref lightVec@0x90a6670) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x90a6590) (var_ref i@0x9124240) ) )) ) ) (declare (temporary ) float dot_retval@0x9122ba0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x9122ba0) (call dot ((var_ref assignment_tmp@0x9122c80) (var_ref assignment_tmp@0x9122c80) )) ) (declare (temporary ) float clamp_retval@0x9122a40) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x9122a40) (call clamp ((expression float + (expression float * (constant float (0.000500)) (var_ref dot_retval@0x9122ba0) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x90a6590) (var_ref i@0x9124240) ) )) ) (constant float (0.000000)) (constant float (1.000000)) )) ) (assign (constant bool (1)) (w) (var_ref shadow@0x90a63d8) (swiz xxxx (expression float * (swiz w (var_ref shadow@0x90a63d8) )(var_ref clamp_retval@0x9122a40) ) )) (assign (constant bool (1)) (x) (var_ref i@0x9124240) (expression int + (var_ref i@0x9124240) (constant int (1)) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f1fe30) (var_ref shadow@0x90a63d8) ) )) ) ) GLSL IR for linked vertex program 1: ( (declare (out ) (array vec4 2) sphereVec@0x9122960) (declare (out ) vec3 lightVec@0x9122880) (declare (uniform ) (array vec4 3) spherePos@0x91227a0) (declare (uniform ) vec3 lightPos@0x91226c0) (declare (uniform ) vec3 offset@0x9122578) (declare (uniform ) float scale@0x9122430) (declare (out ) vec4 gl_Position@0x91222e8) (declare (in ) vec4 gl_Vertex@0x9121f78) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x90e9d28) (function main (signature void (parameters ) ( (declare () vec4 pos@0x8f27058) (assign (constant bool (1)) (xyzw) (var_ref pos@0x8f27058) (var_ref gl_Vertex@0x9121f78) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x8f27058) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x9121f78) )(var_ref scale@0x9122430) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x8f27058) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x8f27058) )(var_ref offset@0x9122578) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x91222e8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (1)) ) (swiz y (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (2)) ) (swiz z (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (3)) ) (swiz w (var_ref pos@0x8f27058) )) ) ) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9122880) (expression vec3 + (var_ref lightPos@0x91226c0) (expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x9122960) (constant int (0)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) )) (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x9122960) (constant int (0)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x9122960) (constant int (1)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) )) (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x9122960) (constant int (1)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) )) ) ) Mesa IR for linked vertex program 1: 0: (assign (constant bool (1)) (xyzw) (var_ref pos@0x8f27058) (var_ref gl_Vertex@0x9121f78) ) MOV TEMP[1], INPUT[0]; 1: (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x9121f78) )(var_ref scale@0x9122430) ) MUL TEMP[2].xyz, INPUT[0].xyzz, UNIFORM[5].xxxx; 2: (assign (constant bool (1)) (xyz) (var_ref pos@0x8f27058) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x9121f78) )(var_ref scale@0x9122430) ) )) MOV TEMP[1].xyz, TEMP[2].xyzz; 3: (expression vec3 + (swiz xyz (var_ref pos@0x8f27058) )(var_ref offset@0x9122578) ) ADD TEMP[3].xyz, TEMP[1].xyzz, UNIFORM[4].xyzz; 4: (assign (constant bool (1)) (xyz) (var_ref pos@0x8f27058) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x8f27058) )(var_ref offset@0x9122578) ) )) MOV TEMP[1].xyz, TEMP[3].xyzz; 5: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) MUL TEMP[4], STATE[6], TEMP[1].xxxx; 6: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (1)) ) (swiz y (var_ref pos@0x8f27058) )) ) MAD TEMP[5], STATE[7], TEMP[1].yyyy, TEMP[4]; 7: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (1)) ) (swiz y (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (2)) ) (swiz z (var_ref pos@0x8f27058) )) ) MAD TEMP[6], STATE[8], TEMP[1].zzzz, TEMP[5]; 8: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (1)) ) (swiz y (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (2)) ) (swiz z (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (3)) ) (swiz w (var_ref pos@0x8f27058) )) ) MAD TEMP[7], STATE[9], TEMP[1].wwww, TEMP[6]; 9: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x91222e8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (0)) ) (swiz x (var_ref pos@0x8f27058) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (1)) ) (swiz y (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (2)) ) (swiz z (var_ref pos@0x8f27058) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x90e9d28) (constant int (3)) ) (swiz w (var_ref pos@0x8f27058) )) ) ) MOV OUTPUT[0], TEMP[7]; 10: (expression vec3 + (var_ref lightPos@0x91226c0) (expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) ADD TEMP[9].xyz, UNIFORM[3].xyzz, TEMP[1].-x-y-z-z; 11: (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9122880) (expression vec3 + (var_ref lightPos@0x91226c0) (expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) ) MOV OUTPUT[17].xyz, TEMP[9].xyzz; 12: (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) ADD TEMP[11].xyz, UNIFORM[0].xyzz, TEMP[1].-x-y-z-z; 13: (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x9122960) (constant int (0)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) )) MOV OUTPUT[16].xyz, TEMP[11].xyzz; 14: (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) MAD TEMP[12], UNIFORM[0].wwww, CONST[10].xxxx, CONST[10].yyyy; 15: (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x9122960) (constant int (0)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (0)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) MOV OUTPUT[16].w, TEMP[12].xxxx; 16: (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) ADD TEMP[14].xyz, UNIFORM[1].xyzz, TEMP[1].-x-y-z-z; 17: (assign (constant bool (1)) (xyz) (array_ref (var_ref sphereVec@0x9122960) (constant int (1)) ) (swiz xyz (expression vec3 + (swiz xyz (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(expression vec3 neg (swiz xyz (var_ref pos@0x8f27058) )) ) )) MOV OUTPUT[17].xyz, TEMP[14].xyzz; 18: (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) MAD TEMP[15], UNIFORM[1].wwww, CONST[10].xxxx, CONST[10].yyyy; 19: (assign (constant bool (1)) (w) (array_ref (var_ref sphereVec@0x9122960) (constant int (1)) ) (swiz xxxx (expression float + (expression float * (swiz w (array_ref (var_ref spherePos@0x91227a0) (constant int (1)) ) )(constant float (0.000500)) ) (constant float (-0.500000)) ) )) MOV OUTPUT[17].w, TEMP[15].xxxx; 20: END GLSL IR for linked fragment program 1: ( (declare (in ) (array vec4 2) sphereVec@0x8f14c88) (declare (in ) vec3 lightVec@0x8f145c8) (declare (out ) vec4 gl_FragColor@0x8f0b1d0) (function main (signature void (parameters ) ( (declare () vec3 lVec@0x8eb38a0) (declare () vec4 shadow@0x8eb49c8) (assign (constant bool (1)) (xyzw) (var_ref shadow@0x8eb49c8) (constant vec4 (1.000000 1.000000 1.000000 1.000000)) ) (assign (constant bool (1)) (xyz) (var_ref lVec@0x8eb38a0) (expression vec3 * (var_ref lightVec@0x8f145c8) (expression float rcp (expression float dot (var_ref lightVec@0x8f145c8) (var_ref lightVec@0x8f145c8) ) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x8eb0670) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x8eb0670) (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) ) (assign (constant bool (1)) (w) (var_ref shadow@0x8eb49c8) (swiz xxxx (expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) )) (declare (temporary ) vec3 assignment_tmp@0x91c5ca0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x91c5ca0) (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) ) (assign (constant bool (1)) (w) (var_ref shadow@0x8eb49c8) (swiz xxxx (expression float * (swiz w (var_ref shadow@0x8eb49c8) )(expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f0b1d0) (var_ref shadow@0x8eb49c8) ) )) ) ) Mesa IR for linked fragment program 1: 0: (assign (constant bool (1)) (xyzw) (var_ref shadow@0x8eb49c8) (constant vec4 (1.000000 1.000000 1.000000 1.000000)) ) MOV TEMP[1], CONST[0]; 1: (expression float dot (var_ref lightVec@0x8f145c8) (var_ref lightVec@0x8f145c8) ) DP3 TEMP[2].x, INPUT[15].xyzz, INPUT[15].xyzz; 2: (expression float rcp (expression float dot (var_ref lightVec@0x8f145c8) (var_ref lightVec@0x8f145c8) ) ) RCP TEMP[3].x, TEMP[2].xxxx; 3: (expression vec3 * (var_ref lightVec@0x8f145c8) (expression float rcp (expression float dot (var_ref lightVec@0x8f145c8) (var_ref lightVec@0x8f145c8) ) ) ) MUL TEMP[4].xyz, INPUT[15].xyzz, TEMP[3].xxxx; 4: (assign (constant bool (1)) (xyz) (var_ref lVec@0x8eb38a0) (expression vec3 * (var_ref lightVec@0x8f145c8) (expression float rcp (expression float dot (var_ref lightVec@0x8f145c8) (var_ref lightVec@0x8f145c8) ) ) ) ) MOV TEMP[5].xyz, TEMP[4].xyzz; 5: (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) DP3 TEMP[6].x, INPUT[14].xyzz, TEMP[5].xyzz; 6: (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) MIN TEMP[7].x, TEMP[6].xxxx, CONST[0].xxxx; 7: (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[8].x, TEMP[7].xxxx, CONST[1].xxxx; 8: (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) MAD TEMP[10], TEMP[8].xxxx, INPUT[15].xyzz, INPUT[14].-x-y-z-z; 9: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x8eb0670) (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) ) MOV TEMP[11].xyz, TEMP[10].xyzz; 10: (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) DP3 TEMP[12].x, TEMP[11].xyzz, TEMP[11].xyzz; 11: (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) MAD TEMP[14], CONST[1].yyyy, TEMP[12].xxxx, INPUT[14].-w-w-w-w; 12: (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) (constant float (1.000000)) ) MIN TEMP[15].x, TEMP[14].xxxx, CONST[0].xxxx; 13: (expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[16].x, TEMP[15].xxxx, CONST[1].xxxx; 14: (assign (constant bool (1)) (w) (var_ref shadow@0x8eb49c8) (swiz xxxx (expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x8eb0670) (var_ref assignment_tmp@0x8eb0670) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (0)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) )) MOV TEMP[1].w, TEMP[16].xxxx; 15: (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) DP3 TEMP[17].x, INPUT[15].xyzz, TEMP[5].xyzz; 16: (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) MIN TEMP[18].x, TEMP[17].xxxx, CONST[0].xxxx; 17: (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[19].x, TEMP[18].xxxx, CONST[1].xxxx; 18: (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) MAD TEMP[21], TEMP[19].xxxx, INPUT[15].xyzz, INPUT[15].-x-y-z-z; 19: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x91c5ca0) (expression vec3 + (expression vec3 * (expression float max (expression float min (expression float dot (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )(var_ref lVec@0x8eb38a0) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref lightVec@0x8f145c8) ) (expression vec3 neg (swiz xyz (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) ) MOV TEMP[22].xyz, TEMP[21].xyzz; 20: (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) DP3 TEMP[23].x, TEMP[22].xyzz, TEMP[22].xyzz; 21: (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) MAD TEMP[25], CONST[1].yyyy, TEMP[23].xxxx, INPUT[15].-w-w-w-w; 22: (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) (constant float (1.000000)) ) MIN TEMP[26].x, TEMP[25].xxxx, CONST[0].xxxx; 23: (expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[27].x, TEMP[26].xxxx, CONST[1].xxxx; 24: (expression float * (swiz w (var_ref shadow@0x8eb49c8) )(expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MUL TEMP[28].x, TEMP[1].wwww, TEMP[27].xxxx; 25: (assign (constant bool (1)) (w) (var_ref shadow@0x8eb49c8) (swiz xxxx (expression float * (swiz w (var_ref shadow@0x8eb49c8) )(expression float max (expression float min (expression float + (expression float * (constant float (0.000500)) (expression float dot (var_ref assignment_tmp@0x91c5ca0) (var_ref assignment_tmp@0x91c5ca0) ) ) (expression float neg (swiz w (array_ref (var_ref sphereVec@0x8f14c88) (constant int (1)) ) )) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) )) MOV TEMP[1].w, TEMP[28].xxxx; 26: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f0b1d0) (var_ref shadow@0x8eb49c8) ) MOV OUTPUT[1], TEMP[1]; 27: END GLSL source for shader 5: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 0 uniform vec3 lightPos; uniform vec3 camPos; attribute vec2 textureCoord; attribute vec3 tangent; attribute vec3 binormal; attribute vec3 normal; varying vec2 texCoord; varying vec3 lVec; void main(){ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; texCoord = textureCoord; vec3 lightVec = lightPos - gl_Vertex.xyz; vec3 viewVec = lightPos - gl_Vertex.xyz; lVec.x = dot(lightVec, tangent); lVec.y = dot(lightVec, binormal); lVec.z = dot(lightVec, normal); } GLSL IR for shader 5: ( (declare (out ) vec3 lVec@0x9237e38) (declare (out ) vec2 texCoord@0x9237d80) (declare (in ) vec3 normal@0x9237c58) (declare (in ) vec3 binormal@0x9237ba0) (declare (in ) vec3 tangent@0x9237a78) (declare (in ) vec2 textureCoord@0x9236f98) (declare (uniform ) vec3 camPos@0x9236e70) (declare (uniform ) vec3 lightPos@0x9236b68) (declare (out ) vec4 gl_Position@0x92224b0) (declare (out ) float gl_PointSize@0x921d070) (declare (in ) vec4 gl_Vertex@0x921e220) (declare (in ) vec3 gl_Normal@0x921e2f8) (declare (in ) vec4 gl_Color@0x9156ec8) (declare (in ) vec4 gl_SecondaryColor@0x91cb7f8) (declare (in ) vec4 gl_MultiTexCoord0@0x90a59a0) (declare (in ) vec4 gl_MultiTexCoord1@0x90bfce8) (declare (in ) vec4 gl_MultiTexCoord2@0x9255a68) (declare (in ) vec4 gl_MultiTexCoord3@0x9257970) (declare (in ) vec4 gl_MultiTexCoord4@0x92609d8) (declare (in ) vec4 gl_MultiTexCoord5@0x9264208) (declare (in ) vec4 gl_MultiTexCoord6@0x92650c8) (declare (in ) vec4 gl_MultiTexCoord7@0x9261cd0) (declare (in ) float gl_FogCoord@0x90ec290) (declare (out ) vec4 gl_ClipVertex@0x902d588) (declare (out ) vec4 gl_FrontColor@0x913f2a0) (declare (out ) vec4 gl_BackColor@0x90f3a28) (declare (out ) vec4 gl_FrontSecondaryColor@0x8fdf088) (declare (out ) vec4 gl_BackSecondaryColor@0x90303a8) (declare (out ) float gl_FogFragCoord@0x90f7580) (declare (uniform ) mat4 gl_ModelViewMatrix@0x90f6530) (declare (uniform ) mat4 gl_ProjectionMatrix@0x90f3190) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x90f42c0) (declare (uniform ) mat3 gl_NormalMatrix@0x90eee10) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8eb4118) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x915c080) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x90fe6d0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x9115178) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x926bd60) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x92774d8) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x927eb10) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x9197498) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x91cf848) (declare (uniform ) float gl_NormalScale@0x8eb2200) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x8eb3708) (declare () int gl_MaxLights@0x8eb4830) (declare () int gl_MaxClipPlanes@0x91d06d8) (declare () int gl_MaxTextureUnits@0x8eb0d48) (declare () int gl_MaxTextureCoords@0x91d9928) (declare () int gl_MaxVertexAttribs@0x9198f98) (declare () int gl_MaxVertexUniformComponents@0x9141868) (declare () int gl_MaxVaryingFloats@0x9197950) (declare () int gl_MaxVertexTextureImageUnits@0x91bb3e8) (declare () int gl_MaxCombinedTextureImageUnits@0x91ba320) (declare () int gl_MaxTextureImageUnits@0x91611b0) (declare () int gl_MaxFragmentUniformComponents@0x90eefc0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x90787c8) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x9162428) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x8fd4a28) (declare (uniform ) gl_PointParameters gl_Point@0x91cf010) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x915a628) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x915a6b8) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x91d1120) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x91d11b0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x9160160) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x914c5c8) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x912dee0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x912df70) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x9213970) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x9213a00) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x92142c0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x9214350) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x9214c10) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x9214ca0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x9214d68) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x9214df8) (declare (uniform ) gl_FogParameters gl_Fog@0x9215548) (declare (out ) (array vec4 0) gl_TexCoord@0x92155e8) (declare () int gl_MaxDrawBuffers@0x9215e98) (function main (signature void (parameters ) ( (declare () vec3 lightVec@0x9238148) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x92224b0) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x90f42c0) (var_ref gl_Vertex@0x921e220) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x9237d80) (var_ref textureCoord@0x9236f98) ) (declare (temporary ) vec3 assignment_tmp@0x9238608) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x9238608) (expression vec3 + (var_ref lightPos@0x9236b68) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x921e220) )) ) ) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9238148) (var_ref assignment_tmp@0x9238608) ) (declare (temporary ) float dot_retval@0x925d910) (assign (constant bool (1)) (x) (var_ref dot_retval@0x925d910) (call dot ((var_ref assignment_tmp@0x9238608) (var_ref tangent@0x9237a78) )) ) (assign (constant bool (1)) (x) (var_ref lVec@0x9237e38) (var_ref dot_retval@0x925d910) ) (declare (temporary ) float dot_retval@0x926e388) (assign (constant bool (1)) (x) (var_ref dot_retval@0x926e388) (call dot ((var_ref lightVec@0x9238148) (var_ref binormal@0x9237ba0) )) ) (assign (constant bool (1)) (y) (var_ref lVec@0x9237e38) (swiz xx (var_ref dot_retval@0x926e388) )) (declare (temporary ) float dot_retval@0x9276878) (assign (constant bool (1)) (x) (var_ref dot_retval@0x9276878) (call dot ((var_ref lightVec@0x9238148) (var_ref normal@0x9237c58) )) ) (assign (constant bool (1)) (z) (var_ref lVec@0x9237e38) (swiz xxx (var_ref dot_retval@0x9276878) )) )) ) ) GLSL source for shader 6: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 26 uniform sampler2D Base; uniform sampler2D Bump; varying vec2 texCoord; varying vec3 lVec; void main(){ vec4 base = texture2D(Base, texCoord); vec3 bump = normalize(texture2D(Bump, texCoord).xyz * 2.0 - 1.0); float diffuse = dot(normalize(lVec), bump); gl_FragColor = diffuse * base; } GLSL IR for shader 6: ( (declare (in ) vec3 lVec@0x9276b68) (declare (in ) vec2 texCoord@0x9276a40) (declare (uniform ) sampler2D Bump@0x91c0790) (declare (uniform ) sampler2D Base@0x91c0658) (declare (in ) vec4 gl_FragCoord@0x921cde0) (declare (in ) bool gl_FrontFacing@0x91be8c0) (declare (out ) vec4 gl_FragColor@0x91be998) (declare (out ) float gl_FragDepth@0x9161500) (declare (in ) vec4 gl_Color@0x9160088) (declare (in ) vec4 gl_SecondaryColor@0x9162278) (declare (in ) float gl_FogFragCoord@0x90fe840) (declare (uniform ) mat4 gl_ModelViewMatrix@0x9078bf0) (declare (uniform ) mat4 gl_ProjectionMatrix@0x91bedc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x915c880) (declare (uniform ) mat3 gl_NormalMatrix@0x90f73d0) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x90fe1f0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x915dde0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x90f56c8) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x902ec98) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x902e400) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x9079dd0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x925c0d8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x8f15070) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x9261fa0) (declare (uniform ) float gl_NormalScale@0x92386e0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x91c8228) (declare () int gl_MaxLights@0x9238088) (declare () int gl_MaxClipPlanes@0x925d9b0) (declare () int gl_MaxTextureUnits@0x9064b20) (declare () int gl_MaxTextureCoords@0x91befe8) (declare () int gl_MaxVertexAttribs@0x9213820) (declare () int gl_MaxVertexUniformComponents@0x9214170) (declare () int gl_MaxVaryingFloats@0x9214ac0) (declare () int gl_MaxVertexTextureImageUnits@0x9215d48) (declare () int gl_MaxCombinedTextureImageUnits@0x9216698) (declare () int gl_MaxTextureImageUnits@0x9216fe8) (declare () int gl_MaxFragmentUniformComponents@0x925e150) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x9033b30) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x921e3d0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x921e4c0) (declare (uniform ) gl_PointParameters gl_Point@0x92200e0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x92201e0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x9238ca0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x9238d90) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x925be90) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x925bf88) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x925ca68) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x925cb70) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x8fe6d60) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x8fe6e50) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x9253ad8) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x9253bc0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x92647a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x92648a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x926be50) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x926bf40) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x926c158) (declare (uniform ) gl_FogParameters gl_Fog@0x926c230) (declare (in ) (array vec4 0) gl_TexCoord@0x9129028) (declare () int gl_MaxDrawBuffers@0x9129148) (declare (out ) (array vec4 8) gl_FragData@0x9221420) (function main (signature void (parameters ) ( (declare () vec3 bump@0x91d7ee0) (declare () vec4 base@0x91d7ce8) (declare (temporary ) vec4 texture2D_retval@0x91d7d88) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x91d7d88) (call texture2D ((var_ref Base@0x91c0658) (var_ref texCoord@0x9276a40) )) ) (assign (constant bool (1)) (xyzw) (var_ref base@0x91d7ce8) (var_ref texture2D_retval@0x91d7d88) ) (declare (temporary ) vec4 texture2D_retval@0x91d7f80) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x91d7f80) (call texture2D ((var_ref Bump@0x91c0790) (var_ref texCoord@0x9276a40) )) ) (declare (temporary ) vec3 normalize_retval@0x91d8198) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x91d8198) (call normalize ((expression vec3 + (expression vec3 * (swiz xyz (var_ref texture2D_retval@0x91d7f80) )(constant float (2.000000)) ) (expression float neg (constant float (1.000000)) ) ) )) ) (assign (constant bool (1)) (xyz) (var_ref bump@0x91d7ee0) (var_ref normalize_retval@0x91d8198) ) (declare (temporary ) vec3 normalize_retval@0x91d8428) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x91d8428) (call normalize ((var_ref lVec@0x9276b68) )) ) (declare (temporary ) float dot_retval@0x91d8578) (assign (constant bool (1)) (x) (var_ref dot_retval@0x91d8578) (call dot ((var_ref normalize_retval@0x91d8428) (var_ref bump@0x91d7ee0) )) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x91be998) (expression vec4 * (var_ref dot_retval@0x91d8578) (var_ref base@0x91d7ce8) ) ) )) ) ) GLSL IR for linked vertex program 4: ( (declare (out ) vec3 lVec@0x91d8330) (declare (out ) vec2 texCoord@0x91d81f8) (declare (in ) vec3 normal@0x91d7de8) (declare (in ) vec3 binormal@0x902dc48) (declare (in ) vec3 tangent@0x9129688) (declare (in ) vec2 textureCoord@0x91295b0) (declare (uniform ) vec3 lightPos@0x90fd880) (declare (out ) vec4 gl_Position@0x902ed70) (declare (in ) vec4 gl_Vertex@0x90f7270) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x91248b8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x902ed70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90f7270) )) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x91d81f8) (var_ref textureCoord@0x91295b0) ) (declare (temporary ) vec3 assignment_tmp@0x9127688) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x9127688) (expression vec3 + (var_ref lightPos@0x90fd880) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90f7270) )) ) ) (assign (constant bool (1)) (x) (var_ref lVec@0x91d8330) (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref tangent@0x9129688) ) ) (assign (constant bool (1)) (y) (var_ref lVec@0x91d8330) (swiz xx (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref binormal@0x902dc48) ) )) (assign (constant bool (1)) (z) (var_ref lVec@0x91d8330) (swiz xxx (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref normal@0x91d7de8) ) )) )) ) ) Mesa IR for linked vertex program 4: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) MUL TEMP[1], STATE[1], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90f7270) )) ) MAD TEMP[2], STATE[2], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90f7270) )) ) MAD TEMP[3], STATE[3], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90f7270) )) ) MAD TEMP[4], STATE[4], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x902ed70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90f7270) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90f7270) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91248b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90f7270) )) ) ) MOV OUTPUT[0], TEMP[4]; 5: (assign (constant bool (1)) (xy) (var_ref texCoord@0x91d81f8) (var_ref textureCoord@0x91295b0) ) MOV OUTPUT[17].xy, INPUT[20].xyyy; 6: (expression vec3 + (var_ref lightPos@0x90fd880) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90f7270) )) ) ADD TEMP[6].xyz, UNIFORM[0].xyzz, INPUT[0].-x-y-z-z; 7: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x9127688) (expression vec3 + (var_ref lightPos@0x90fd880) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90f7270) )) ) ) MOV TEMP[7].xyz, TEMP[6].xyzz; 8: (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref tangent@0x9129688) ) DP3 TEMP[8].x, TEMP[7].xyzz, INPUT[19].xyzz; 9: (assign (constant bool (1)) (x) (var_ref lVec@0x91d8330) (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref tangent@0x9129688) ) ) MOV OUTPUT[16].x, TEMP[8].xxxx; 10: (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref binormal@0x902dc48) ) DP3 TEMP[9].x, TEMP[7].xyzz, INPUT[18].xyzz; 11: (assign (constant bool (1)) (y) (var_ref lVec@0x91d8330) (swiz xx (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref binormal@0x902dc48) ) )) MOV OUTPUT[16].y, TEMP[9].xxxx; 12: (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref normal@0x91d7de8) ) DP3 TEMP[10].x, TEMP[7].xyzz, INPUT[17].xyzz; 13: (assign (constant bool (1)) (z) (var_ref lVec@0x91d8330) (swiz xxx (expression float dot (var_ref assignment_tmp@0x9127688) (var_ref normal@0x91d7de8) ) )) MOV OUTPUT[16].z, TEMP[10].xxxx; 14: END GLSL IR for linked fragment program 4: ( (declare (in ) vec3 lVec@0x912c0f0) (declare (in ) vec2 texCoord@0x90d1cb8) (declare (uniform ) sampler2D Bump@0x90d1d18) (declare (uniform ) sampler2D Base@0x90d1d78) (declare (out ) vec4 gl_FragColor@0x90d1e98) (function main (signature void (parameters ) ( (declare () vec3 arg0@0x8ff7c58) (assign (constant bool (1)) (xyz) (var_ref arg0@0x8ff7c58) (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x90d1d18) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x90d1e98) (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x912c0f0) (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) ) (expression vec3 * (var_ref arg0@0x8ff7c58) (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) ) ) (tex (var_ref Base@0x90d1d78) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () )) ) )) ) ) Mesa IR for linked fragment program 4: 0: (tex (var_ref Bump@0x90d1d18) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () ) MOV TEMP[1], INPUT[15].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x90d1d18) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) MAD TEMP[3], TEMP[2].xyzz, CONST[2].xxxx, CONST[2].yyyy; 3: (assign (constant bool (1)) (xyz) (var_ref arg0@0x8ff7c58) (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x90d1d18) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) ) MOV TEMP[4].xyz, TEMP[3].xyzz; 4: (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) DP3 TEMP[5].x, INPUT[14].xyzz, INPUT[14].xyzz; 5: (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) RSQ TEMP[6].x, TEMP[5].xxxx; 6: (expression vec3 * (var_ref lVec@0x912c0f0) (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) ) MUL TEMP[7].xyz, INPUT[14].xyzz, TEMP[6].xxxx; 7: (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) DP3 TEMP[8].x, TEMP[4].xyzz, TEMP[4].xyzz; 8: (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) RSQ TEMP[9].x, TEMP[8].xxxx; 9: (expression vec3 * (var_ref arg0@0x8ff7c58) (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) ) MUL TEMP[10].xyz, TEMP[4].xyzz, TEMP[9].xxxx; 10: (expression float dot (expression vec3 * (var_ref lVec@0x912c0f0) (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) ) (expression vec3 * (var_ref arg0@0x8ff7c58) (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) ) ) DP3 TEMP[11].x, TEMP[7].xyzz, TEMP[10].xyzz; 11: (tex (var_ref Base@0x90d1d78) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () ) MOV TEMP[12], INPUT[15].xyyy; 12: TEX TEMP[13], TEMP[12], texture[1], 2D; 13: (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x912c0f0) (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) ) (expression vec3 * (var_ref arg0@0x8ff7c58) (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) ) ) (tex (var_ref Base@0x90d1d78) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () )) MUL TEMP[14], TEMP[11].xxxx, TEMP[13]; 14: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x90d1e98) (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x912c0f0) (expression float rsq (expression float dot (var_ref lVec@0x912c0f0) (var_ref lVec@0x912c0f0) ) ) ) (expression vec3 * (var_ref arg0@0x8ff7c58) (expression float rsq (expression float dot (var_ref arg0@0x8ff7c58) (var_ref arg0@0x8ff7c58) ) ) ) ) (tex (var_ref Base@0x90d1d78) (var_ref texCoord@0x90d1cb8) (0 0 0) 1 () )) ) MOV OUTPUT[1], TEMP[14]; 15: END GLSL source for shader 8: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 0 attribute vec2 textureCoord; varying vec2 texCoord; void main(){ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; texCoord = textureCoord; } GLSL IR for shader 8: ( (declare (out ) vec2 texCoord@0x9208608) (declare (in ) vec2 textureCoord@0x9208518) (declare (out ) vec4 gl_Position@0x925aae8) (declare (out ) float gl_PointSize@0x8edbd50) (declare (in ) vec4 gl_Vertex@0x9117070) (declare (in ) vec3 gl_Normal@0x9115708) (declare (in ) vec4 gl_Color@0x9115828) (declare (in ) vec4 gl_SecondaryColor@0x9115390) (declare (in ) vec4 gl_MultiTexCoord0@0x9115420) (declare (in ) vec4 gl_MultiTexCoord1@0x91154f0) (declare (in ) vec4 gl_MultiTexCoord2@0x91155c0) (declare (in ) vec4 gl_MultiTexCoord3@0x8f9ef58) (declare (in ) vec4 gl_MultiTexCoord4@0x8f9f028) (declare (in ) vec4 gl_MultiTexCoord5@0x8f9f0f8) (declare (in ) vec4 gl_MultiTexCoord6@0x8f9f1c8) (declare (in ) vec4 gl_MultiTexCoord7@0x8f9f298) (declare (in ) float gl_FogCoord@0x8f9f368) (declare (out ) vec4 gl_ClipVertex@0x8f9f488) (declare (out ) vec4 gl_FrontColor@0x9023fe8) (declare (out ) vec4 gl_BackColor@0x90240b8) (declare (out ) vec4 gl_FrontSecondaryColor@0x9024188) (declare (out ) vec4 gl_BackSecondaryColor@0x90242c8) (declare (out ) float gl_FogFragCoord@0x9024408) (declare (uniform ) mat4 gl_ModelViewMatrix@0x90244d8) (declare (uniform ) mat4 gl_ProjectionMatrix@0x90245a8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x9024678) (declare (uniform ) mat3 gl_NormalMatrix@0x90247c8) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8fe6410) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8fe6550) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x8fe6690) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x8fe67e0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x8fe6920) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x8fe6a70) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x8fe6ba0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x8f45200) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x8f45340) (declare (uniform ) float gl_NormalScale@0x8f45478) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x8f45548) (declare () int gl_MaxLights@0x8f45618) (declare () int gl_MaxClipPlanes@0x8f45780) (declare () int gl_MaxTextureUnits@0x8f458e8) (declare () int gl_MaxTextureCoords@0x8f45a50) (declare () int gl_MaxVertexAttribs@0x91166c8) (declare () int gl_MaxVertexUniformComponents@0x9116820) (declare () int gl_MaxVaryingFloats@0x9116a08) (declare () int gl_MaxVertexTextureImageUnits@0x9116b70) (declare () int gl_MaxCombinedTextureImageUnits@0x9116d58) (declare () int gl_MaxTextureImageUnits@0x91c79a0) (declare () int gl_MaxFragmentUniformComponents@0x91c7b78) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x91c7d60) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x91c7e30) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x91c7f00) (declare (uniform ) gl_PointParameters gl_Point@0x91c7fd0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x91c80f0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x919c3e8) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x919c4a8) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x919c578) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x919c6b8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x919c7f8) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x919c938) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x919ca08) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x919cad8) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x919cba8) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x904b940) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x904ba10) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x904bae0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x904bbb0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x904bc80) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x904bd50) (declare (uniform ) gl_FogParameters gl_Fog@0x904be20) (declare (out ) (array vec4 0) gl_TexCoord@0x904bf40) (declare () int gl_MaxDrawBuffers@0x904c060) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x925aae8) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x9024678) (var_ref gl_Vertex@0x9117070) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x9208608) (var_ref textureCoord@0x9208518) ) )) ) ) GLSL source for shader 9: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 12 uniform sampler2D Base; varying vec2 texCoord; void main(){ vec4 base = texture2D(Base, texCoord); gl_FragColor = 0.17 * base; } GLSL IR for shader 9: ( (declare (in ) vec2 texCoord@0x903a478) (declare (uniform ) sampler2D Base@0x903a340) (declare (in ) vec4 gl_FragCoord@0x926ee18) (declare (in ) bool gl_FrontFacing@0x9155dc0) (declare (out ) vec4 gl_FragColor@0x8f50618) (declare (out ) float gl_FragDepth@0x920ee18) (declare (in ) vec4 gl_Color@0x920eef0) (declare (in ) vec4 gl_SecondaryColor@0x920f008) (declare (in ) float gl_FogFragCoord@0x920f0f8) (declare (uniform ) mat4 gl_ModelViewMatrix@0x8f4fec8) (declare (uniform ) mat4 gl_ProjectionMatrix@0x8f4ffb8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8f500a8) (declare (uniform ) mat3 gl_NormalMatrix@0x8f50200) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8f502f0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8f503e8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x91aa778) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x91aa8d0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x91aaa28) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x91aab90) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x91aacd8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x91aae40) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x91aafa8) (declare (uniform ) float gl_NormalScale@0x91a4ba8) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x91a4c98) (declare () int gl_MaxLights@0x91a4d98) (declare () int gl_MaxClipPlanes@0x91a4f30) (declare () int gl_MaxTextureUnits@0x91a50c8) (declare () int gl_MaxTextureCoords@0x91a5260) (declare () int gl_MaxVertexAttribs@0x91a53f8) (declare () int gl_MaxVertexUniformComponents@0x906dd20) (declare () int gl_MaxVaryingFloats@0x906def8) (declare () int gl_MaxVertexTextureImageUnits@0x906e090) (declare () int gl_MaxCombinedTextureImageUnits@0x906e290) (declare () int gl_MaxTextureImageUnits@0x906e490) (declare () int gl_MaxFragmentUniformComponents@0x9064118) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x90642f0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x90643f0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x90644f0) (declare (uniform ) gl_PointParameters gl_Point@0x90645f0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x9064728) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x9064828) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x9064928) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x906c1c8) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x906c2f8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x906c450) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x906c5a8) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x906c6a8) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x906c7a8) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x906c8a8) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x906c9a8) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x927bf00) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x927c000) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x927c100) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x927c200) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x927c300) (declare (uniform ) gl_FogParameters gl_Fog@0x927c400) (declare (in ) (array vec4 0) gl_TexCoord@0x927c538) (declare () int gl_MaxDrawBuffers@0x927c670) (declare (out ) (array vec4 8) gl_FragData@0x927fb40) (function main (signature void (parameters ) ( (declare (temporary ) vec4 texture2D_retval@0x903a808) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x903a808) (call texture2D ((var_ref Base@0x903a340) (var_ref texCoord@0x903a478) )) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f50618) (expression vec4 * (constant float (0.170000)) (var_ref texture2D_retval@0x903a808) ) ) )) ) ) GLSL IR for linked vertex program 7: ( (declare (out ) vec2 texCoord@0x920f668) (declare (in ) vec2 textureCoord@0x8f69588) (declare (out ) vec4 gl_Position@0x8f695e8) (declare (in ) vec4 gl_Vertex@0x8f696a8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8f725b8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x8f695e8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x8f696a8) )) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x920f668) (var_ref textureCoord@0x8f69588) ) )) ) ) Mesa IR for linked vertex program 7: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) MUL TEMP[1], STATE[0], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x8f696a8) )) ) MAD TEMP[2], STATE[1], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x8f696a8) )) ) MAD TEMP[3], STATE[2], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x8f696a8) )) ) MAD TEMP[4], STATE[3], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x8f695e8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x8f696a8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x8f696a8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f725b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x8f696a8) )) ) ) MOV OUTPUT[0], TEMP[4]; 5: (assign (constant bool (1)) (xy) (var_ref texCoord@0x920f668) (var_ref textureCoord@0x8f69588) ) MOV OUTPUT[16].xy, INPUT[17].xyyy; 6: END GLSL IR for linked fragment program 7: ( (declare (in ) vec2 texCoord@0x8f90038) (declare (uniform ) sampler2D Base@0x8ed0528) (declare (out ) vec4 gl_FragColor@0x8ed06d8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8ed06d8) (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8ed0528) (var_ref texCoord@0x8f90038) (0 0 0) 1 () )) ) )) ) ) Mesa IR for linked fragment program 7: 0: (tex (var_ref Base@0x8ed0528) (var_ref texCoord@0x8f90038) (0 0 0) 1 () ) MOV TEMP[1], INPUT[14].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8ed0528) (var_ref texCoord@0x8f90038) (0 0 0) 1 () )) MUL TEMP[3], CONST[1].xxxx, TEMP[2]; 3: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8ed06d8) (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8ed0528) (var_ref texCoord@0x8f90038) (0 0 0) 1 () )) ) MOV OUTPUT[1], TEMP[3]; 4: END GLSL source for shader 11: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 0 uniform float scale; uniform vec3 offset; uniform vec3 lightPos; uniform vec3 camPos; varying vec3 lVec; varying vec3 vVec; varying vec3 norm; void main(){ vec4 pos = gl_Vertex; pos.xyz *= scale; pos.xyz += offset; gl_Position = gl_ModelViewProjectionMatrix * pos; lVec = normalize(lightPos - pos.xyz); vVec = normalize(camPos - pos.xyz); norm = gl_Vertex.xyz; } GLSL IR for shader 11: ( (declare (out ) vec3 norm@0x91eab38) (declare (out ) vec3 vVec@0x91eaa00) (declare (out ) vec3 lVec@0x91ea8c8) (declare (uniform ) vec3 camPos@0x91ea790) (declare (uniform ) vec3 lightPos@0x91ea658) (declare (uniform ) vec3 offset@0x91ea520) (declare (uniform ) float scale@0x91ea3e8) (declare (out ) vec4 gl_Position@0x9061d48) (declare (out ) float gl_PointSize@0x9061e48) (declare (in ) vec4 gl_Vertex@0x8fb7420) (declare (in ) vec3 gl_Normal@0x8fb7540) (declare (in ) vec4 gl_Color@0x8f7d988) (declare (in ) vec4 gl_SecondaryColor@0x8f7daa8) (declare (in ) vec4 gl_MultiTexCoord0@0x8f7db78) (declare (in ) vec4 gl_MultiTexCoord1@0x8f7dc48) (declare (in ) vec4 gl_MultiTexCoord2@0x8f7dd18) (declare (in ) vec4 gl_MultiTexCoord3@0x8f7dde8) (declare (in ) vec4 gl_MultiTexCoord4@0x8f7deb8) (declare (in ) vec4 gl_MultiTexCoord5@0x8f7df88) (declare (in ) vec4 gl_MultiTexCoord6@0x8f7e058) (declare (in ) vec4 gl_MultiTexCoord7@0x8f7e128) (declare (in ) float gl_FogCoord@0x8f7e1f8) (declare (out ) vec4 gl_ClipVertex@0x8f7e318) (declare (out ) vec4 gl_FrontColor@0x8f7e3e8) (declare (out ) vec4 gl_BackColor@0x8f7e4b8) (declare (out ) vec4 gl_FrontSecondaryColor@0x8f7e588) (declare (out ) vec4 gl_BackSecondaryColor@0x8f7e6c8) (declare (out ) float gl_FogFragCoord@0x8f7e808) (declare (uniform ) mat4 gl_ModelViewMatrix@0x8f7e8d8) (declare (uniform ) mat4 gl_ProjectionMatrix@0x8f7e9a8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8f7ea78) (declare (uniform ) mat3 gl_NormalMatrix@0x9138d58) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x9138e28) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x9138f68) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x91390a8) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x91391d0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x9139310) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x9139438) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x9139568) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x91396b8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x9139808) (declare (uniform ) float gl_NormalScale@0x9139940) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x9139a10) (declare () int gl_MaxLights@0x9139ae0) (declare () int gl_MaxClipPlanes@0x9139c48) (declare () int gl_MaxTextureUnits@0x9139db0) (declare () int gl_MaxTextureCoords@0x9139f18) (declare () int gl_MaxVertexAttribs@0x9100a60) (declare () int gl_MaxVertexUniformComponents@0x9100bb8) (declare () int gl_MaxVaryingFloats@0x9100da0) (declare () int gl_MaxVertexTextureImageUnits@0x9100f08) (declare () int gl_MaxCombinedTextureImageUnits@0x91010f0) (declare () int gl_MaxTextureImageUnits@0x91012d8) (declare () int gl_MaxFragmentUniformComponents@0x91014b0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x9101698) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x9101768) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x9101838) (declare (uniform ) gl_PointParameters gl_Point@0x9101908) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x9101a28) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x9101af8) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x9101bc8) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x9047f30) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x9048060) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x90481a0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x90482e0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x90483b0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x90484c8) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x90485e0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x90486f8) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x9048810) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x9048928) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x9048a40) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x9048b58) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x9048c70) (declare (uniform ) gl_FogParameters gl_Fog@0x9048d88) (declare (out ) (array vec4 0) gl_TexCoord@0x9048ea8) (declare () int gl_MaxDrawBuffers@0x9048fc8) (function main (signature void (parameters ) ( (declare () vec4 pos@0x91eae28) (assign (constant bool (1)) (xyzw) (var_ref pos@0x91eae28) (var_ref gl_Vertex@0x8fb7420) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x91eae28) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x8fb7420) )(var_ref scale@0x91ea3e8) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x91eae28) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x91eae28) )(var_ref offset@0x91ea520) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x9061d48) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x8f7ea78) (var_ref pos@0x91eae28) ) ) (declare (temporary ) vec3 normalize_retval@0x91e7ae0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x91e7ae0) (call normalize ((expression vec3 + (var_ref lightPos@0x91ea658) (expression vec3 neg (swiz xyz (var_ref pos@0x91eae28) )) ) )) ) (assign (constant bool (1)) (xyz) (var_ref lVec@0x91ea8c8) (var_ref normalize_retval@0x91e7ae0) ) (declare (temporary ) vec3 normalize_retval@0x91e8100) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x91e8100) (call normalize ((expression vec3 + (var_ref camPos@0x91ea790) (expression vec3 neg (swiz xyz (var_ref pos@0x91eae28) )) ) )) ) (assign (constant bool (1)) (xyz) (var_ref vVec@0x91eaa00) (var_ref normalize_retval@0x91e8100) ) (assign (constant bool (1)) (xyz) (var_ref norm@0x91eab38) (swiz xyz (var_ref gl_Vertex@0x8fb7420) )) )) ) ) GLSL source for shader 12: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 25 uniform vec4 color; varying vec3 lVec; varying vec3 vVec; varying vec3 norm; void main(){ vec3 lightVec = (lVec); vec3 viewVec = (vVec); vec3 normal = normalize(norm); float diffuse = saturate(dot(lightVec, normal)); float specular = pow(saturate(dot(reflect(-viewVec, normal), lightVec)), 20.0); gl_FragColor = diffuse * color + specular; } GLSL IR for shader 12: ( (declare (in ) vec3 norm@0x9166e78) (declare (in ) vec3 vVec@0x9166d40) (declare (in ) vec3 lVec@0x9166c08) (declare (uniform ) vec4 color@0x9166ad0) (declare (in ) vec4 gl_FragCoord@0x9004e40) (declare (in ) bool gl_FrontFacing@0x8fbc260) (declare (out ) vec4 gl_FragColor@0x8fbc2f8) (declare (out ) float gl_FragDepth@0x9004378) (declare (in ) vec4 gl_Color@0x9004428) (declare (in ) vec4 gl_SecondaryColor@0x90044c0) (declare (in ) float gl_FogFragCoord@0x9004570) (declare (uniform ) mat4 gl_ModelViewMatrix@0x8eb8520) (declare (uniform ) mat4 gl_ProjectionMatrix@0x8eb85e0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8eb86a0) (declare (uniform ) mat3 gl_NormalMatrix@0x8eb87c8) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x8eb8888) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8eb8950) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x91ff3d0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x91ff4f8) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x91ff5c0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x91ff6e8) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x91ff7f0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x91ff918) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x91ffa40) (declare (uniform ) float gl_NormalScale@0x91ffb50) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x91ffc10) (declare () int gl_MaxLights@0x91ffcd0) (declare () int gl_MaxClipPlanes@0x91ffe28) (declare () int gl_MaxTextureUnits@0x91fff80) (declare () int gl_MaxTextureCoords@0x92000d8) (declare () int gl_MaxVertexAttribs@0x9200230) (declare () int gl_MaxVertexUniformComponents@0x9200388) (declare () int gl_MaxVaryingFloats@0x9200548) (declare () int gl_MaxVertexTextureImageUnits@0x92006a0) (declare () int gl_MaxCombinedTextureImageUnits@0x9200860) (declare () int gl_MaxTextureImageUnits@0x9200a20) (declare () int gl_MaxFragmentUniformComponents@0x8f47b28) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x8f47ce8) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x8f47da8) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x8f47e68) (declare (uniform ) gl_PointParameters gl_Point@0x8f47f28) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x8f47fe0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x8f480a0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x8f48160) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x8f48220) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x8f48338) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x8f48450) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x8f48568) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x8f48628) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x8f486e8) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x8f487a8) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x8f48868) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x8f48928) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x8f489e8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x8f48aa8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x8f48ba8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x8f48ca8) (declare (uniform ) gl_FogParameters gl_Fog@0x8f48da8) (declare (in ) (array vec4 0) gl_TexCoord@0x8f48ee0) (declare () int gl_MaxDrawBuffers@0x8f49018) (declare (out ) (array vec4 8) gl_FragData@0x904ee98) (function main (signature void (parameters ) ( (declare () float diffuse@0x9167da8) (declare () vec3 normal@0x9167820) (declare () vec3 viewVec@0x9167448) (declare () vec3 lightVec@0x9167168) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9167168) (var_ref lVec@0x9166c08) ) (assign (constant bool (1)) (xyz) (var_ref viewVec@0x9167448) (var_ref vVec@0x9166d40) ) (declare (temporary ) vec3 normalize_retval@0x91679b8) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x91679b8) (call normalize ((var_ref norm@0x9166e78) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x9167820) (var_ref normalize_retval@0x91679b8) ) (declare (temporary ) float dot_retval@0x91ab7e8) (assign (constant bool (1)) (x) (var_ref dot_retval@0x91ab7e8) (call dot ((var_ref lightVec@0x9167168) (var_ref normalize_retval@0x91679b8) )) ) (declare (temporary ) float clamp_retval@0x91abb08) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x91abb08) (call clamp ((var_ref dot_retval@0x91ab7e8) (constant float (0.000000)) (constant float (1.000000)) )) ) (assign (constant bool (1)) (x) (var_ref diffuse@0x9167da8) (var_ref clamp_retval@0x91abb08) ) (declare (temporary ) vec3 reflect_retval@0x91ac118) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x91ac118) (call reflect ((expression vec3 neg (var_ref viewVec@0x9167448) ) (var_ref normal@0x9167820) )) ) (declare (temporary ) float dot_retval@0x91ac358) (assign (constant bool (1)) (x) (var_ref dot_retval@0x91ac358) (call dot ((var_ref reflect_retval@0x91ac118) (var_ref lightVec@0x9167168) )) ) (declare (temporary ) float clamp_retval@0x91ac678) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x91ac678) (call clamp ((var_ref dot_retval@0x91ac358) (constant float (0.000000)) (constant float (1.000000)) )) ) (declare (temporary ) float pow_retval@0x91ac900) (assign (constant bool (1)) (x) (var_ref pow_retval@0x91ac900) (call pow ((var_ref clamp_retval@0x91ac678) (constant float (20.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8fbc2f8) (expression vec4 + (expression vec4 * (var_ref diffuse@0x9167da8) (var_ref color@0x9166ad0) ) (var_ref pow_retval@0x91ac900) ) ) )) ) ) GLSL IR for linked vertex program 10: ( (declare (out ) vec3 norm@0x8fb63b0) (declare (out ) vec3 vVec@0x8fbc620) (declare (out ) vec3 lVec@0x8fbc680) (declare (uniform ) vec3 camPos@0x8fbc6e0) (declare (uniform ) vec3 lightPos@0x91acf20) (declare (uniform ) vec3 offset@0x91acf80) (declare (uniform ) float scale@0x91acfe0) (declare (out ) vec4 gl_Position@0x91abc10) (declare (in ) vec4 gl_Vertex@0x91abcd0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8fbbab0) (function main (signature void (parameters ) ( (declare () vec4 pos@0x9090e18) (assign (constant bool (1)) (xyzw) (var_ref pos@0x9090e18) (var_ref gl_Vertex@0x91abcd0) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x9090e18) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x91abcd0) )(var_ref scale@0x91acfe0) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x9090e18) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x9090e18) )(var_ref offset@0x91acf80) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x91abc10) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (1)) ) (swiz y (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (2)) ) (swiz z (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (3)) ) (swiz w (var_ref pos@0x9090e18) )) ) ) (declare () vec3 arg0@0x8fc4428) (assign (constant bool (1)) (xyz) (var_ref arg0@0x8fc4428) (expression vec3 + (var_ref lightPos@0x91acf20) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ) (assign (constant bool (1)) (xyz) (var_ref lVec@0x8fbc680) (expression vec3 * (var_ref arg0@0x8fc4428) (expression float rsq (expression float dot (var_ref arg0@0x8fc4428) (var_ref arg0@0x8fc4428) ) ) ) ) (declare () vec3 arg0@0x9087f08) (assign (constant bool (1)) (xyz) (var_ref arg0@0x9087f08) (expression vec3 + (var_ref camPos@0x8fbc6e0) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ) (assign (constant bool (1)) (xyz) (var_ref vVec@0x8fbc620) (expression vec3 * (var_ref arg0@0x9087f08) (expression float rsq (expression float dot (var_ref arg0@0x9087f08) (var_ref arg0@0x9087f08) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref norm@0x8fb63b0) (swiz xyz (var_ref gl_Vertex@0x91abcd0) )) )) ) ) Mesa IR for linked vertex program 10: 0: (assign (constant bool (1)) (xyzw) (var_ref pos@0x9090e18) (var_ref gl_Vertex@0x91abcd0) ) MOV TEMP[1], INPUT[0]; 1: (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x91abcd0) )(var_ref scale@0x91acfe0) ) MUL TEMP[2].xyz, INPUT[0].xyzz, UNIFORM[3].xxxx; 2: (assign (constant bool (1)) (xyz) (var_ref pos@0x9090e18) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x91abcd0) )(var_ref scale@0x91acfe0) ) )) MOV TEMP[1].xyz, TEMP[2].xyzz; 3: (expression vec3 + (swiz xyz (var_ref pos@0x9090e18) )(var_ref offset@0x91acf80) ) ADD TEMP[3].xyz, TEMP[1].xyzz, UNIFORM[2].xyzz; 4: (assign (constant bool (1)) (xyz) (var_ref pos@0x9090e18) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x9090e18) )(var_ref offset@0x91acf80) ) )) MOV TEMP[1].xyz, TEMP[3].xyzz; 5: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) MUL TEMP[4], STATE[4], TEMP[1].xxxx; 6: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (1)) ) (swiz y (var_ref pos@0x9090e18) )) ) MAD TEMP[5], STATE[5], TEMP[1].yyyy, TEMP[4]; 7: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (1)) ) (swiz y (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (2)) ) (swiz z (var_ref pos@0x9090e18) )) ) MAD TEMP[6], STATE[6], TEMP[1].zzzz, TEMP[5]; 8: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (1)) ) (swiz y (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (2)) ) (swiz z (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (3)) ) (swiz w (var_ref pos@0x9090e18) )) ) MAD TEMP[7], STATE[7], TEMP[1].wwww, TEMP[6]; 9: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x91abc10) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (0)) ) (swiz x (var_ref pos@0x9090e18) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (1)) ) (swiz y (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (2)) ) (swiz z (var_ref pos@0x9090e18) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8fbbab0) (constant int (3)) ) (swiz w (var_ref pos@0x9090e18) )) ) ) MOV OUTPUT[0], TEMP[7]; 10: (expression vec3 + (var_ref lightPos@0x91acf20) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ADD TEMP[9].xyz, UNIFORM[1].xyzz, TEMP[1].-x-y-z-z; 11: (assign (constant bool (1)) (xyz) (var_ref arg0@0x8fc4428) (expression vec3 + (var_ref lightPos@0x91acf20) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ) MOV TEMP[10].xyz, TEMP[9].xyzz; 12: (expression float dot (var_ref arg0@0x8fc4428) (var_ref arg0@0x8fc4428) ) DP3 TEMP[11].x, TEMP[10].xyzz, TEMP[10].xyzz; 13: (expression float rsq (expression float dot (var_ref arg0@0x8fc4428) (var_ref arg0@0x8fc4428) ) ) RSQ TEMP[12].x, TEMP[11].xxxx; 14: (expression vec3 * (var_ref arg0@0x8fc4428) (expression float rsq (expression float dot (var_ref arg0@0x8fc4428) (var_ref arg0@0x8fc4428) ) ) ) MUL TEMP[13].xyz, TEMP[10].xyzz, TEMP[12].xxxx; 15: (assign (constant bool (1)) (xyz) (var_ref lVec@0x8fbc680) (expression vec3 * (var_ref arg0@0x8fc4428) (expression float rsq (expression float dot (var_ref arg0@0x8fc4428) (var_ref arg0@0x8fc4428) ) ) ) ) MOV OUTPUT[18].xyz, TEMP[13].xyzz; 16: (expression vec3 + (var_ref camPos@0x8fbc6e0) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ADD TEMP[15].xyz, UNIFORM[0].xyzz, TEMP[1].-x-y-z-z; 17: (assign (constant bool (1)) (xyz) (var_ref arg0@0x9087f08) (expression vec3 + (var_ref camPos@0x8fbc6e0) (expression vec3 neg (swiz xyz (var_ref pos@0x9090e18) )) ) ) MOV TEMP[16].xyz, TEMP[15].xyzz; 18: (expression float dot (var_ref arg0@0x9087f08) (var_ref arg0@0x9087f08) ) DP3 TEMP[17].x, TEMP[16].xyzz, TEMP[16].xyzz; 19: (expression float rsq (expression float dot (var_ref arg0@0x9087f08) (var_ref arg0@0x9087f08) ) ) RSQ TEMP[18].x, TEMP[17].xxxx; 20: (expression vec3 * (var_ref arg0@0x9087f08) (expression float rsq (expression float dot (var_ref arg0@0x9087f08) (var_ref arg0@0x9087f08) ) ) ) MUL TEMP[19].xyz, TEMP[16].xyzz, TEMP[18].xxxx; 21: (assign (constant bool (1)) (xyz) (var_ref vVec@0x8fbc620) (expression vec3 * (var_ref arg0@0x9087f08) (expression float rsq (expression float dot (var_ref arg0@0x9087f08) (var_ref arg0@0x9087f08) ) ) ) ) MOV OUTPUT[17].xyz, TEMP[19].xyzz; 22: (assign (constant bool (1)) (xyz) (var_ref norm@0x8fb63b0) (swiz xyz (var_ref gl_Vertex@0x91abcd0) )) MOV OUTPUT[16].xyz, INPUT[0].xyzz; 23: END GLSL IR for linked fragment program 10: ( (declare (in ) vec3 norm@0x91ad728) (declare (in ) vec3 vVec@0x9061388) (declare (in ) vec3 lVec@0x91ae5b8) (declare (uniform ) vec4 color@0x91ae618) (declare (out ) vec4 gl_FragColor@0x91ae780) (function main (signature void (parameters ) ( (declare () vec3 _ret_val@0x8ec4c90) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x8ec4c90) (expression vec3 * (var_ref norm@0x91ad728) (expression float rsq (expression float dot (var_ref norm@0x91ad728) (var_ref norm@0x91ad728) ) ) ) ) (declare () vec3 i@0x8ec5d68) (assign (constant bool (1)) (xyz) (var_ref i@0x8ec5d68) (expression vec3 neg (var_ref vVec@0x9061388) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x91ae780) (expression vec4 + (expression vec4 * (expression float max (expression float min (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref color@0x91ae618) ) (expression float pow (expression float max (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (constant float (20.000000)) ) ) ) )) ) ) Mesa IR for linked fragment program 10: 0: (expression float dot (var_ref norm@0x91ad728) (var_ref norm@0x91ad728) ) DP3 TEMP[1].x, INPUT[14].xyzz, INPUT[14].xyzz; 1: (expression float rsq (expression float dot (var_ref norm@0x91ad728) (var_ref norm@0x91ad728) ) ) RSQ TEMP[2].x, TEMP[1].xxxx; 2: (expression vec3 * (var_ref norm@0x91ad728) (expression float rsq (expression float dot (var_ref norm@0x91ad728) (var_ref norm@0x91ad728) ) ) ) MUL TEMP[3].xyz, INPUT[14].xyzz, TEMP[2].xxxx; 3: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x8ec4c90) (expression vec3 * (var_ref norm@0x91ad728) (expression float rsq (expression float dot (var_ref norm@0x91ad728) (var_ref norm@0x91ad728) ) ) ) ) MOV TEMP[4].xyz, TEMP[3].xyzz; 4: (assign (constant bool (1)) (xyz) (var_ref i@0x8ec5d68) (expression vec3 neg (var_ref vVec@0x9061388) ) ) MOV TEMP[6].xyz, INPUT[15].-x-y-z-z; 5: (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) DP3 TEMP[7].x, INPUT[16].xyzz, TEMP[4].xyzz; 6: (expression float min (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) (constant float (1.000000)) ) MIN TEMP[8].x, TEMP[7].xxxx, CONST[1].xxxx; 7: (expression float max (expression float min (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[9].x, TEMP[8].xxxx, CONST[1].yyyy; 8: (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) DP3 TEMP[10].x, TEMP[4].xyzz, TEMP[6].xyzz; 9: (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) MUL TEMP[11].xyz, TEMP[10].xxxx, TEMP[4].xyzz; 10: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) MUL TEMP[12].xyz, CONST[1].zzzz, TEMP[11].xyzz; 11: (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) ADD TEMP[14].xyz, TEMP[6].xyzz, TEMP[12].-x-y-z-z; 12: (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) DP3 TEMP[15].x, TEMP[14].xyzz, INPUT[16].xyzz; 13: (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) MIN TEMP[16].x, TEMP[15].xxxx, CONST[1].xxxx; 14: (expression float max (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[17].x, TEMP[16].xxxx, CONST[1].yyyy; 15: (expression float pow (expression float max (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (constant float (20.000000)) ) POW TEMP[18].x, TEMP[17].xxxx, CONST[1].wwww; 16: (expression vec4 + (expression vec4 * (expression float max (expression float min (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref color@0x91ae618) ) (expression float pow (expression float max (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (constant float (20.000000)) ) ) MAD TEMP[19], TEMP[9].xxxx, UNIFORM[0], TEMP[18].xxxx; 17: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x91ae780) (expression vec4 + (expression vec4 * (expression float max (expression float min (expression float dot (var_ref lVec@0x91ae5b8) (var_ref _ret_val@0x8ec4c90) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (var_ref color@0x91ae618) ) (expression float pow (expression float max (expression float min (expression float dot (expression vec3 + (var_ref i@0x8ec5d68) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x8ec4c90) (var_ref i@0x8ec5d68) ) (var_ref _ret_val@0x8ec4c90) ) ) ) ) (var_ref lVec@0x91ae5b8) ) (constant float (1.000000)) ) (constant float (0.000000)) ) (constant float (20.000000)) ) ) ) MOV OUTPUT[1], TEMP[19]; 18: END GLSL source for shader 14: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 0 uniform vec3 lightPos; uniform float scale; uniform vec3 offset; varying vec3 lightVec; varying vec3 normal; void main(){ vec4 pos = gl_Vertex; pos.xyz *= scale; pos.xyz += offset; gl_Position = gl_ModelViewProjectionMatrix * pos; lightVec = normalize(lightPos - pos.xyz); normal = gl_Vertex.xyz; } GLSL IR for shader 14: ( (declare (out ) vec3 normal@0x9014c68) (declare (out ) vec3 lightVec@0x9014b30) (declare (uniform ) vec3 offset@0x90149f8) (declare (uniform ) float scale@0x90148c0) (declare (uniform ) vec3 lightPos@0x9014788) (declare (out ) vec4 gl_Position@0x9060db8) (declare (out ) float gl_PointSize@0x9060e98) (declare (in ) vec4 gl_Vertex@0x9089280) (declare (in ) vec3 gl_Normal@0x9089360) (declare (in ) vec4 gl_Color@0x9089450) (declare (in ) vec4 gl_SecondaryColor@0x9089550) (declare (in ) vec4 gl_MultiTexCoord0@0x9089620) (declare (in ) vec4 gl_MultiTexCoord1@0x90896f0) (declare (in ) vec4 gl_MultiTexCoord2@0x90897c0) (declare (in ) vec4 gl_MultiTexCoord3@0x9089890) (declare (in ) vec4 gl_MultiTexCoord4@0x9089960) (declare (in ) vec4 gl_MultiTexCoord5@0x9089a30) (declare (in ) vec4 gl_MultiTexCoord6@0x9089b00) (declare (in ) vec4 gl_MultiTexCoord7@0x9089bd0) (declare (in ) float gl_FogCoord@0x9089ca0) (declare (out ) vec4 gl_ClipVertex@0x9089dc0) (declare (out ) vec4 gl_FrontColor@0x9089e90) (declare (out ) vec4 gl_BackColor@0x9089f60) (declare (out ) vec4 gl_FrontSecondaryColor@0x908a030) (declare (out ) vec4 gl_BackSecondaryColor@0x908a170) (declare (out ) float gl_FogFragCoord@0x908a2b0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x908a380) (declare (uniform ) mat4 gl_ProjectionMatrix@0x91777e0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x91778b0) (declare (uniform ) mat3 gl_NormalMatrix@0x91779d8) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x9177aa8) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x9177be8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x9177d28) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x9177e50) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x9177f90) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x91780e0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x9178210) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x9178360) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x91784b0) (declare (uniform ) float gl_NormalScale@0x91785e8) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x91786b8) (declare () int gl_MaxLights@0x9178788) (declare () int gl_MaxClipPlanes@0x91788f0) (declare () int gl_MaxTextureUnits@0x9178a58) (declare () int gl_MaxTextureCoords@0x9178bc0) (declare () int gl_MaxVertexAttribs@0x9178d28) (declare () int gl_MaxVertexUniformComponents@0x9178ed8) (declare () int gl_MaxVaryingFloats@0x91790c0) (declare () int gl_MaxVertexTextureImageUnits@0x9179270) (declare () int gl_MaxCombinedTextureImageUnits@0x9179458) (declare () int gl_MaxTextureImageUnits@0x9179640) (declare () int gl_MaxFragmentUniformComponents@0x9179818) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x9179a00) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x9179b18) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x9179c30) (declare (uniform ) gl_PointParameters gl_Point@0x9179d60) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x908aaf8) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x908ac28) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x908ad70) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x908aeb8) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x908b010) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x908b168) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x908b2c0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x908b408) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x908b550) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x908b698) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x908b7e0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x908b928) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x908ba70) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x908bbb8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x908bd00) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x908be48) (declare (uniform ) gl_FogParameters gl_Fog@0x908bf90) (declare (out ) (array vec4 0) gl_TexCoord@0x908c0c8) (declare () int gl_MaxDrawBuffers@0x908c200) (function main (signature void (parameters ) ( (declare () vec4 pos@0x9119088) (assign (constant bool (1)) (xyzw) (var_ref pos@0x9119088) (var_ref gl_Vertex@0x9089280) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x9119088) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x9089280) )(var_ref scale@0x90148c0) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x9119088) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x9119088) )(var_ref offset@0x90149f8) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x9060db8) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x91778b0) (var_ref pos@0x9119088) ) ) (declare (temporary ) vec3 normalize_retval@0x911a330) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x911a330) (call normalize ((expression vec3 + (var_ref lightPos@0x9014788) (expression vec3 neg (swiz xyz (var_ref pos@0x9119088) )) ) )) ) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9014b30) (var_ref normalize_retval@0x911a330) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x9014c68) (swiz xyz (var_ref gl_Vertex@0x9089280) )) )) ) ) GLSL source for shader 15: #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 22 uniform vec4 color; varying vec3 lightVec; varying vec3 normal; void main(){ float diffuse = 0.17 * (0.4 * dot(lightVec, normal) + 0.6); gl_FragColor = diffuse * color; } GLSL IR for shader 15: ( (declare (in ) vec3 normal@0x90832c8) (declare (in ) vec3 lightVec@0x9083190) (declare (uniform ) vec4 color@0x9083058) (declare (in ) vec4 gl_FragCoord@0x8fb8fd8) (declare (in ) bool gl_FrontFacing@0x907fa60) (declare (out ) vec4 gl_FragColor@0x911aeb8) (declare (out ) float gl_FragDepth@0x911af78) (declare (in ) vec4 gl_Color@0x911b038) (declare (in ) vec4 gl_SecondaryColor@0x91056c8) (declare (in ) float gl_FogFragCoord@0x91057b8) (declare (uniform ) mat4 gl_ModelViewMatrix@0x91058a8) (declare (uniform ) mat4 gl_ProjectionMatrix@0x9105998) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x911ab70) (declare (uniform ) mat3 gl_NormalMatrix@0x911acd8) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x911ae20) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x8ef45c0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x8ef4718) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x8ef4880) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x8ef49d8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x8fd95b0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x8fd96f8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x8fd9860) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x8fd99c8) (declare (uniform ) float gl_NormalScale@0x8fd9b18) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x9088708) (declare () int gl_MaxLights@0x9088850) (declare () int gl_MaxClipPlanes@0x9088a30) (declare () int gl_MaxTextureUnits@0x9088c10) (declare () int gl_MaxTextureCoords@0x9088df0) (declare () int gl_MaxVertexAttribs@0x911b2a8) (declare () int gl_MaxVertexUniformComponents@0x911b488) (declare () int gl_MaxVaryingFloats@0x911b660) (declare () int gl_MaxVertexTextureImageUnits@0x911b840) (declare () int gl_MaxCombinedTextureImageUnits@0x911ba40) (declare () int gl_MaxTextureImageUnits@0x911bc40) (declare () int gl_MaxFragmentUniformComponents@0x8fd9e28) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x8fda000) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x8fda148) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x8fda290) (declare (uniform ) gl_PointParameters gl_Point@0x8fda3d8) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x8fda510) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x8fda658) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x8fda7a0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x8fda8e8) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x8fdaa40) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x8fdab98) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x8fdacf0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x8fdae38) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x8fdaf80) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x8fdb0c8) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x8fdb210) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x8fdb358) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x8fdb4a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x8fdb5e8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x8fdb730) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x8fdb878) (declare (uniform ) gl_FogParameters gl_Fog@0x8fdb9c0) (declare (in ) (array vec4 0) gl_TexCoord@0x8fdbaf8) (declare () int gl_MaxDrawBuffers@0x8fdbc30) (declare (out ) (array vec4 8) gl_FragData@0x8fdbe10) (function main (signature void (parameters ) ( (declare (temporary ) float dot_retval@0x9083910) (assign (constant bool (1)) (x) (var_ref dot_retval@0x9083910) (call dot ((var_ref lightVec@0x9083190) (var_ref normal@0x90832c8) )) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x911aeb8) (expression vec4 * (expression float * (constant float (0.170000)) (expression float + (expression float * (constant float (0.400000)) (var_ref dot_retval@0x9083910) ) (constant float (0.600000)) ) ) (var_ref color@0x9083058) ) ) )) ) ) GLSL IR for linked vertex program 13: ( (declare (out ) vec3 normal@0x90891a8) (declare (out ) vec3 lightVec@0x9105a88) (declare (uniform ) vec3 offset@0x9105ae8) (declare (uniform ) float scale@0x9105b48) (declare (uniform ) vec3 lightPos@0x9105ba8) (declare (out ) vec4 gl_Position@0x8eeca60) (declare (in ) vec4 gl_Vertex@0x8eecb20) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8eed5d8) (function main (signature void (parameters ) ( (declare () vec4 pos@0x92adb68) (assign (constant bool (1)) (xyzw) (var_ref pos@0x92adb68) (var_ref gl_Vertex@0x8eecb20) ) (assign (constant bool (1)) (xyz) (var_ref pos@0x92adb68) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x8eecb20) )(var_ref scale@0x9105b48) ) )) (assign (constant bool (1)) (xyz) (var_ref pos@0x92adb68) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x92adb68) )(var_ref offset@0x9105ae8) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x8eeca60) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (1)) ) (swiz y (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (2)) ) (swiz z (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (3)) ) (swiz w (var_ref pos@0x92adb68) )) ) ) (declare () vec3 arg0@0x92d4998) (assign (constant bool (1)) (xyz) (var_ref arg0@0x92d4998) (expression vec3 + (var_ref lightPos@0x9105ba8) (expression vec3 neg (swiz xyz (var_ref pos@0x92adb68) )) ) ) (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9105a88) (expression vec3 * (var_ref arg0@0x92d4998) (expression float rsq (expression float dot (var_ref arg0@0x92d4998) (var_ref arg0@0x92d4998) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x90891a8) (swiz xyz (var_ref gl_Vertex@0x8eecb20) )) )) ) ) Mesa IR for linked vertex program 13: 0: (assign (constant bool (1)) (xyzw) (var_ref pos@0x92adb68) (var_ref gl_Vertex@0x8eecb20) ) MOV TEMP[1], INPUT[0]; 1: (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x8eecb20) )(var_ref scale@0x9105b48) ) MUL TEMP[2].xyz, INPUT[0].xyzz, UNIFORM[1].xxxx; 2: (assign (constant bool (1)) (xyz) (var_ref pos@0x92adb68) (swiz xyz (expression vec3 * (swiz xyz (var_ref gl_Vertex@0x8eecb20) )(var_ref scale@0x9105b48) ) )) MOV TEMP[1].xyz, TEMP[2].xyzz; 3: (expression vec3 + (swiz xyz (var_ref pos@0x92adb68) )(var_ref offset@0x9105ae8) ) ADD TEMP[3].xyz, TEMP[1].xyzz, UNIFORM[0].xyzz; 4: (assign (constant bool (1)) (xyz) (var_ref pos@0x92adb68) (swiz xyz (expression vec3 + (swiz xyz (var_ref pos@0x92adb68) )(var_ref offset@0x9105ae8) ) )) MOV TEMP[1].xyz, TEMP[3].xyzz; 5: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) MUL TEMP[4], STATE[3], TEMP[1].xxxx; 6: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (1)) ) (swiz y (var_ref pos@0x92adb68) )) ) MAD TEMP[5], STATE[4], TEMP[1].yyyy, TEMP[4]; 7: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (1)) ) (swiz y (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (2)) ) (swiz z (var_ref pos@0x92adb68) )) ) MAD TEMP[6], STATE[5], TEMP[1].zzzz, TEMP[5]; 8: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (1)) ) (swiz y (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (2)) ) (swiz z (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (3)) ) (swiz w (var_ref pos@0x92adb68) )) ) MAD TEMP[7], STATE[6], TEMP[1].wwww, TEMP[6]; 9: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x8eeca60) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (0)) ) (swiz x (var_ref pos@0x92adb68) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (1)) ) (swiz y (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (2)) ) (swiz z (var_ref pos@0x92adb68) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8eed5d8) (constant int (3)) ) (swiz w (var_ref pos@0x92adb68) )) ) ) MOV OUTPUT[0], TEMP[7]; 10: (expression vec3 + (var_ref lightPos@0x9105ba8) (expression vec3 neg (swiz xyz (var_ref pos@0x92adb68) )) ) ADD TEMP[9].xyz, UNIFORM[2].xyzz, TEMP[1].-x-y-z-z; 11: (assign (constant bool (1)) (xyz) (var_ref arg0@0x92d4998) (expression vec3 + (var_ref lightPos@0x9105ba8) (expression vec3 neg (swiz xyz (var_ref pos@0x92adb68) )) ) ) MOV TEMP[10].xyz, TEMP[9].xyzz; 12: (expression float dot (var_ref arg0@0x92d4998) (var_ref arg0@0x92d4998) ) DP3 TEMP[11].x, TEMP[10].xyzz, TEMP[10].xyzz; 13: (expression float rsq (expression float dot (var_ref arg0@0x92d4998) (var_ref arg0@0x92d4998) ) ) RSQ TEMP[12].x, TEMP[11].xxxx; 14: (expression vec3 * (var_ref arg0@0x92d4998) (expression float rsq (expression float dot (var_ref arg0@0x92d4998) (var_ref arg0@0x92d4998) ) ) ) MUL TEMP[13].xyz, TEMP[10].xyzz, TEMP[12].xxxx; 15: (assign (constant bool (1)) (xyz) (var_ref lightVec@0x9105a88) (expression vec3 * (var_ref arg0@0x92d4998) (expression float rsq (expression float dot (var_ref arg0@0x92d4998) (var_ref arg0@0x92d4998) ) ) ) ) MOV OUTPUT[17].xyz, TEMP[13].xyzz; 16: (assign (constant bool (1)) (xyz) (var_ref normal@0x90891a8) (swiz xyz (var_ref gl_Vertex@0x8eecb20) )) MOV OUTPUT[16].xyz, INPUT[0].xyzz; 17: END GLSL IR for linked fragment program 13: ( (declare (in ) vec3 normal@0x92afd48) (declare (in ) vec3 lightVec@0x92b1158) (declare (uniform ) vec4 color@0x92b11b8) (declare (out ) vec4 gl_FragColor@0x92b1320) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x92b1320) (expression vec4 * (expression float * (constant float (0.170000)) (expression float + (expression float * (constant float (0.400000)) (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) ) (constant float (0.600000)) ) ) (var_ref color@0x92b11b8) ) ) )) ) ) Mesa IR for linked fragment program 13: 0: (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) DP3 TEMP[1].x, INPUT[15].xyzz, INPUT[14].xyzz; 1: (expression float + (expression float * (constant float (0.400000)) (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) ) (constant float (0.600000)) ) MAD TEMP[2], CONST[1].yyyy, TEMP[1].xxxx, CONST[1].zzzz; 2: (expression float * (constant float (0.170000)) (expression float + (expression float * (constant float (0.400000)) (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) ) (constant float (0.600000)) ) ) MUL TEMP[3].x, CONST[1].xxxx, TEMP[2].xxxx; 3: (expression vec4 * (expression float * (constant float (0.170000)) (expression float + (expression float * (constant float (0.400000)) (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) ) (constant float (0.600000)) ) ) (var_ref color@0x92b11b8) ) MUL TEMP[4], TEMP[3].xxxx, UNIFORM[0]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x92b1320) (expression vec4 * (expression float * (constant float (0.170000)) (expression float + (expression float * (constant float (0.400000)) (expression float dot (var_ref lightVec@0x92b1158) (var_ref normal@0x92afd48) ) ) (constant float (0.600000)) ) ) (var_ref color@0x92b11b8) ) ) MOV OUTPUT[1], TEMP[4]; 5: END GLSL IR for linked vertex program 4: ( (declare (out ) vec3 lVec@0x92d5c60) (declare (out ) vec2 texCoord@0x91d8690) (declare (in ) vec3 normal@0x927d3d8) (declare (in ) vec3 binormal@0x915a2e8) (declare (in ) vec3 tangent@0x915a088) (declare (in ) vec2 textureCoord@0x90309a8) (declare (uniform ) vec3 lightPos@0x90304e8) (declare (out ) vec4 gl_Position@0x912dd70) (declare (in ) vec4 gl_Vertex@0x90623f8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x91e58b0) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x912dd70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90623f8) )) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x91d8690) (var_ref textureCoord@0x90309a8) ) (declare (temporary ) vec3 assignment_tmp@0x92832f8) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x92832f8) (expression vec3 + (var_ref lightPos@0x90304e8) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90623f8) )) ) ) (assign (constant bool (1)) (x) (var_ref lVec@0x92d5c60) (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref tangent@0x915a088) ) ) (assign (constant bool (1)) (y) (var_ref lVec@0x92d5c60) (swiz xx (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref binormal@0x915a2e8) ) )) (assign (constant bool (1)) (z) (var_ref lVec@0x92d5c60) (swiz xxx (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref normal@0x927d3d8) ) )) )) ) ) Mesa IR for linked vertex program 4: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) MUL TEMP[1], STATE[1], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90623f8) )) ) MAD TEMP[2], STATE[2], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90623f8) )) ) MAD TEMP[3], STATE[3], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90623f8) )) ) MAD TEMP[4], STATE[4], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x912dd70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x90623f8) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x90623f8) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x91e58b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x90623f8) )) ) ) MOV OUTPUT[0], TEMP[4]; 5: (assign (constant bool (1)) (xy) (var_ref texCoord@0x91d8690) (var_ref textureCoord@0x90309a8) ) MOV OUTPUT[17].xy, INPUT[17].xyyy; 6: (expression vec3 + (var_ref lightPos@0x90304e8) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90623f8) )) ) ADD TEMP[6].xyz, UNIFORM[0].xyzz, INPUT[0].-x-y-z-z; 7: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x92832f8) (expression vec3 + (var_ref lightPos@0x90304e8) (expression vec3 neg (swiz xyz (var_ref gl_Vertex@0x90623f8) )) ) ) MOV TEMP[7].xyz, TEMP[6].xyzz; 8: (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref tangent@0x915a088) ) DP3 TEMP[8].x, TEMP[7].xyzz, INPUT[18].xyzz; 9: (assign (constant bool (1)) (x) (var_ref lVec@0x92d5c60) (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref tangent@0x915a088) ) ) MOV OUTPUT[16].x, TEMP[8].xxxx; 10: (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref binormal@0x915a2e8) ) DP3 TEMP[9].x, TEMP[7].xyzz, INPUT[19].xyzz; 11: (assign (constant bool (1)) (y) (var_ref lVec@0x92d5c60) (swiz xx (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref binormal@0x915a2e8) ) )) MOV OUTPUT[16].y, TEMP[9].xxxx; 12: (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref normal@0x927d3d8) ) DP3 TEMP[10].x, TEMP[7].xyzz, INPUT[20].xyzz; 13: (assign (constant bool (1)) (z) (var_ref lVec@0x92d5c60) (swiz xxx (expression float dot (var_ref assignment_tmp@0x92832f8) (var_ref normal@0x927d3d8) ) )) MOV OUTPUT[16].z, TEMP[10].xxxx; 14: END GLSL IR for linked fragment program 4: ( (declare (in ) vec3 lVec@0x9118ae0) (declare (in ) vec2 texCoord@0x9151b98) (declare (uniform ) sampler2D Bump@0x9151bf8) (declare (uniform ) sampler2D Base@0x9151c58) (declare (out ) vec4 gl_FragColor@0x8ed5168) (function main (signature void (parameters ) ( (declare () vec3 arg0@0x923b038) (assign (constant bool (1)) (xyz) (var_ref arg0@0x923b038) (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x9151bf8) (var_ref texCoord@0x9151b98) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8ed5168) (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x9118ae0) (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) ) (expression vec3 * (var_ref arg0@0x923b038) (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) ) ) (tex (var_ref Base@0x9151c58) (var_ref texCoord@0x9151b98) (0 0 0) 1 () )) ) )) ) ) Mesa IR for linked fragment program 4: 0: (tex (var_ref Bump@0x9151bf8) (var_ref texCoord@0x9151b98) (0 0 0) 1 () ) MOV TEMP[1], INPUT[15].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x9151bf8) (var_ref texCoord@0x9151b98) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) MAD TEMP[3], TEMP[2].xyzz, CONST[2].xxxx, CONST[2].yyyy; 3: (assign (constant bool (1)) (xyz) (var_ref arg0@0x923b038) (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref Bump@0x9151bf8) (var_ref texCoord@0x9151b98) (0 0 0) 1 () ))(constant float (2.000000)) ) (constant float (-1.000000)) ) ) MOV TEMP[4].xyz, TEMP[3].xyzz; 4: (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) DP3 TEMP[5].x, INPUT[14].xyzz, INPUT[14].xyzz; 5: (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) RSQ TEMP[6].x, TEMP[5].xxxx; 6: (expression vec3 * (var_ref lVec@0x9118ae0) (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) ) MUL TEMP[7].xyz, INPUT[14].xyzz, TEMP[6].xxxx; 7: (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) DP3 TEMP[8].x, TEMP[4].xyzz, TEMP[4].xyzz; 8: (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) RSQ TEMP[9].x, TEMP[8].xxxx; 9: (expression vec3 * (var_ref arg0@0x923b038) (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) ) MUL TEMP[10].xyz, TEMP[4].xyzz, TEMP[9].xxxx; 10: (expression float dot (expression vec3 * (var_ref lVec@0x9118ae0) (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) ) (expression vec3 * (var_ref arg0@0x923b038) (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) ) ) DP3 TEMP[11].x, TEMP[7].xyzz, TEMP[10].xyzz; 11: (tex (var_ref Base@0x9151c58) (var_ref texCoord@0x9151b98) (0 0 0) 1 () ) MOV TEMP[12], INPUT[15].xyyy; 12: TEX TEMP[13], TEMP[12], texture[1], 2D; 13: (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x9118ae0) (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) ) (expression vec3 * (var_ref arg0@0x923b038) (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) ) ) (tex (var_ref Base@0x9151c58) (var_ref texCoord@0x9151b98) (0 0 0) 1 () )) MUL TEMP[14], TEMP[11].xxxx, TEMP[13]; 14: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8ed5168) (expression vec4 * (expression float dot (expression vec3 * (var_ref lVec@0x9118ae0) (expression float rsq (expression float dot (var_ref lVec@0x9118ae0) (var_ref lVec@0x9118ae0) ) ) ) (expression vec3 * (var_ref arg0@0x923b038) (expression float rsq (expression float dot (var_ref arg0@0x923b038) (var_ref arg0@0x923b038) ) ) ) ) (tex (var_ref Base@0x9151c58) (var_ref texCoord@0x9151b98) (0 0 0) 1 () )) ) MOV OUTPUT[1], TEMP[14]; 15: END GLSL IR for linked vertex program 7: ( (declare (out ) vec2 texCoord@0x9149f00) (declare (in ) vec2 textureCoord@0x90e6458) (declare (out ) vec4 gl_Position@0x905d960) (declare (in ) vec4 gl_Vertex@0x910ec10) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x8f71220) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x905d960) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x910ec10) )) ) ) (assign (constant bool (1)) (xy) (var_ref texCoord@0x9149f00) (var_ref textureCoord@0x90e6458) ) )) ) ) Mesa IR for linked vertex program 7: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) MUL TEMP[1], STATE[0], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x910ec10) )) ) MAD TEMP[2], STATE[1], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x910ec10) )) ) MAD TEMP[3], STATE[2], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x910ec10) )) ) MAD TEMP[4], STATE[3], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x905d960) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x910ec10) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x910ec10) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x8f71220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x910ec10) )) ) ) MOV OUTPUT[0], TEMP[4]; 5: (assign (constant bool (1)) (xy) (var_ref texCoord@0x9149f00) (var_ref textureCoord@0x90e6458) ) MOV OUTPUT[16].xy, INPUT[17].xyyy; 6: END GLSL IR for linked fragment program 7: ( (declare (in ) vec2 texCoord@0x8f73d78) (declare (uniform ) sampler2D Base@0x8f73dd8) (declare (out ) vec4 gl_FragColor@0x8f738f8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f738f8) (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8f73dd8) (var_ref texCoord@0x8f73d78) (0 0 0) 1 () )) ) )) ) ) Mesa IR for linked fragment program 7: 0: (tex (var_ref Base@0x8f73dd8) (var_ref texCoord@0x8f73d78) (0 0 0) 1 () ) MOV TEMP[1], INPUT[14].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8f73dd8) (var_ref texCoord@0x8f73d78) (0 0 0) 1 () )) MUL TEMP[3], CONST[1].xxxx, TEMP[2]; 3: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x8f738f8) (expression vec4 * (constant float (0.170000)) (tex (var_ref Base@0x8f73dd8) (var_ref texCoord@0x8f73d78) (0 0 0) 1 () )) ) MOV OUTPUT[1], TEMP[3]; 4: END