A while back, It was reported to me that my engines default lighting shaders didn't work correctly on GeForce cards. I couldn't do anything about it, because I had an ATI card.
Well, recently I got myself a GeForce 7600 GS, and immediatly saw the issue.
I've narrowed it down to glVertexAttrib3fARB(). If I avoid this function, my shaders run perfectly.
-There's no info on google about this (that I could find).
-GLSLValidate says my shaders are standard.
-It works on ATI cards.
The above three points are very fusturating.
To pass a vertex attribute to the vertex shader, I use this code (sorry, it's C++/CLI, but it's the exact same idea. and no, problem isn't related to the CLIness of the code, because I have the same issue with the native equivalent):
Code:
void CGlsl::Attribute3f(int prog, String ^name, float f0, float f1, float f2){
int loc = Gl::glGetAttribLocationARB(prog, name);
Gl::glVertexAttrib3fARB(loc, f0, f1, f2);
}
I really need this working. Shaders are no fun if they're broken .
Thanks.