Float->uint conversion for PIPE_FORMAT_U_Z32 resulted in overflow in depth_value(). Special-case it.

This commit is contained in:
Brian 2007-11-07 14:40:38 -07:00
parent 7e884c6f86
commit 187b631b6b

View file

@ -86,7 +86,11 @@ depth_value(GLuint pipeFormat, GLfloat value)
val = (GLuint) (value * 0xffffff);
break;
case PIPE_FORMAT_U_Z32:
val = (GLuint) (value * 0xffffffff);
/* special-case to avoid overflow */
if (value == 1.0)
val = 0xffffffff;
else
val = (GLuint) (value * 0xffffffff);
break;
case PIPE_FORMAT_S8_Z24:
/*case PIPE_FORMAT_Z24_S8:*/