I am having trouble using glGetUniformfv to query the initial value of a uniform matrix. The shader looks like:
#version 120 uniform mat2 m2 = mat2(0.1, 0.2, 0.3, 0.4); // ...
After the shader compiles and links with no errors or warnings, I query the initial value of m2 with glGetUniformfv:
float v; glGetUniformfv(programHandle, index, v);
And I wind up with
v = 0.10000000 v = 0.20000000 v = -0.0013270393 v = -0.0013270393
The second column of the matrix is incorrect.
The funny thing is after I modify the uniform with glUniformMatrix2fvARB, glGetUniformfv starts to return the correct value.
Am I doing something wrong? Or is this potentially a driver bug? I have a GeForce 8800 GTX with up to date drivers as of last week. I’ve also tried with mat3 and mat4.