http://bugs.winehq.org/show_bug.cgi?id=35963
--- Comment #9 from farmboy0+winehq@googlemail.com --- %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. There is a bug in mesa however as the glLight function is supposed to return GL_INVALID_VALUE on negative values of ATTENUATION.