I was using glUniform3fvARB(location, count, *value); for passing vectors to a vertex shader and i noticed (after a day of banging!) that the vector i was passing was not coming out right in the vertex/fragment shader. I read the documentation (both official and also from the Orange Book) and found that the "count" parameter should be the number of items passed i.e. 1 in case you are passing a 3d vector (i was passing a 3d position vector). But nothing seems to be working right, i tried passing 3 and 1 in case of a 3d vector but the results in both cases were inconsistent (from the ones i was getting while using an equivalent CG shader). Is this a known nVidia issue (i am using the latest drivers). Can someone give me more information on this please.
P.S: I then worked around by passing the parameter as glUniform3fARB(...) and that worked out fine without any change in the vs/ps code, but i want to directly pass an array.