nVidia GLSL matrix constructor compiler bug


There seems to be a bug in the matrix constructors in GLSL in the 280 and 290 drivers on a GTX 580:

float f = …
mat3 m = mat3(f); // f on the diagonal
mat4 m2 = mat4(m); // m filled with an identity

That’s working so far and does what the spec suggests, however:

mat4 m2 = mat4(mat3(f)); // bug

returns a different matrix.
I filed a bug report over at NVidia some time ago, but maybe this helps other people while the bug isn’t fixed (or it is correct and i don’t understand the matrix constructors, but it’s how the AMD drivers work as well…). It’s also postet at the NVidia forums, but I got no response from there, but maybe the NVidia devs are reading this forum more often :wink:
I still could be wrong with this observation, so correct my if the behavior is fine with specs.


This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.