http://bugs.winehq.org/show_bug.cgi?id=15644
--- Comment #46 from Tobias Jakobi liquid.acid@gmx.net 2009-03-11 13:42:26 --- I took a look at Jan's log from comment #35 to find out what GLSL shader object #37 consisted of.
Looks like it consists of objects #38, #36 and #35.
35 is a fragment program and 36 is the vertex shader. 38 isn't found anywhere - which is kinda strange (probably the problem??).
To cite the error message from object #37: ERROR: Varying gl_TexCoord[1] read in fragment shader, but not written
That here is #35: #version 120 #extension GL_ARB_draw_buffers : enable uniform vec4 PC[8]; uniform sampler2D Psampler0; uniform sampler2D Psampler3; vec4 T0 = gl_TexCoord[0]; vec4 T1 = gl_TexCoord[1]; vec4 T2 = gl_TexCoord[2]; vec4 T3 = gl_TexCoord[3]; vec4 R0; vec4 R1; vec4 tmp0; vec4 tmp1; uniform vec4 PLC5; uniform vec4 PLC1; void main() { T0.xyzw = (texture2D(Psampler0, T0.xy).xyzw); tmp0.x = dot(T2.xyz, (2.0 * (T0.xyz - 0.5))); tmp0.y = dot(T3.xyz, (2.0 * (T0.xyz - 0.5))); T3.xyzw = (texture2D(Psampler3, tmp0.xy).xyzw); T1.xyzw = (PC[2].xyzw * (2.0 * (T0.xyzw - 0.5))); R1.xyzw = (vec4(dot(T1.xyz, (2.0 * (gl_Color.xyz - 0.5))))); R0.xyz = (T3.xyz * PC[4].xyz); R0.w = ((R1.w * PLC1.w) + PLC1.w); R1.xyzw = ((2.0 * (gl_Color.xyzw - 0.5))); R0.xyz = (mix(R0.xyz, PC[6].xyz, R1.www)); R0.w = (R0.w * R0.w); R0.w = (R0.w + -PC[7].w); gl_FragData[0] = R0; float Fog = clamp(gl_FogFragCoord * gl_Fog.start + gl_Fog.end, 0.0, 1.0); gl_FragData[0].xyz = mix(gl_Fog.color.xyz, gl_FragData[0].xyz, Fog); }
To me the GLSL compiler error makes no sense at all since T1 is never read before it's overwritten with data that comes from elsewhere. So it's in fact written, not not read?!