https://bugs.winehq.org/show_bug.cgi?id=35963
--- Comment #11 from farmboy0+winehq@googlemail.com --- (In reply to Henri Verbeet from comment #10)
(In reply to farmboy0+winehq from comment #9)
%f prints the value as -nan so you are correct. but both the directx manual and the opengl spec define the values as >= 0, so the check should be correct.
Yes, but I think it should be unnecessary, since GL should take care of it.
No it shouldnt. the GL manual says it should return an GL_INVALID_VALUE which would still be an error in wine but probably with lesser consequences. The comments in the wine code even state not to accept all the BS windows apps set as attenuation values.
There is a bug in mesa however as the glLight function is supposed to return GL_INVALID_VALUE on negative values of ATTENUATION.
Yes. Specifically, at http://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/main/light.c#n257 "if (params[0] < 0.0) {" should probably either read "if (!(params[0] >= 0.0)) {", or explicitly check for NaN. http://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/main/light.c#n173 does use ">= 0.0" in the assertion, at that's probably what causes your issue.
Yes the assertion causes the error. I will file a bug in mesa for that.