OpenGL W32+GLSL+NVidia: strange linker error C9999

This topic is 4499 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Target Machine: Windows XP, NVidia card, OpenGL with GLSL Shaders. using linux on the target machine results in the shaders all compiling and linking ok. only using windows on the target machine together with the very same shaders results in this strange linker error:
Quote:
 Vertex info ----------- (0) : error C9999: symbol "@TMP2" already in table
with different symbols ( once TMP2, then TMP4 and TMP5 and so on ). the error happens during linking of shader programs hence the shader objects compile fine. it also happens only with some shaders, namely those where i have 'sampler2DShadow' in it ( that's my guess after checking out the scripts ). i have though no idea what is wrong. is this simply a driver bug and i need to fetch new ones? ( yes, drivers are not the freshest right now ) is there a bug with nvidia and sampler2DShadow that kills me here? is this something else? if so in what direction do i have to search? i checked that the following is true in the faulty programs: - uniforms are identical in the fragement shader and the vertex shader - varying are identical in the fragment shader and the vertex shader - compiles and links without a hickup on the same machine with linux

Share on other sites
playing a bit around with commenting out parts of the script i ended up with the following beeing a problem:
        vec3 temp = cross( gl_Normal.xyz, gl_MultiTexCoord1.xyz  );        mat3 matObjTan = mat3( cross( temp, gl_Normal.xyz ), temp, gl_Normal.xyz );

if i comment out the second line it works. it looks like the compiler doesn't like my construction there. can it be the cross is a problem? what i want to achieve there is simply a TBN ( Tangent-BiNormal-Normal ) matrix from input gl_Normal and gl_MultiTexCoord1 . something wrong with that?

Share on other sites
Quote:
 Original post by RPTDplaying a bit around with commenting out parts of the script i ended up with the following beeing a problem: vec3 temp = cross( gl_Normal.xyz, gl_MultiTexCoord1.xyz ); mat3 matObjTan = mat3( cross( temp, gl_Normal.xyz ), temp, gl_Normal.xyz );if i comment out the second line it works. it looks like the compiler doesn't like my construction there. can it be the cross is a problem? what i want to achieve there is simply a TBN ( Tangent-BiNormal-Normal ) matrix from input gl_Normal and gl_MultiTexCoord1 . something wrong with that?

Try
 vec3 temp = cross( vec3(gl_Normal), vec3(gl_MultiTexCoord1)); mat3 matObjTan = mat3(cross(temp, vec3(gl_Normal)), temp, vec3(gl_Normal));

Try that see what happens... What hardware are you on?

1. 1
2. 2
3. 3
Rutin
19
4. 4
JoeJ
14
5. 5

• 14
• 9
• 23
• 9
• 32
• Forum Statistics

• Total Topics
632628
• Total Posts
3007511
• Who's Online (See full list)

There are no registered users currently online

×