diff options
author | Brian <[email protected]> | 2007-11-07 14:40:38 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-11-07 14:40:38 -0700 |
commit | 187b631b6b3c504fa334e33f4b1af433b6232bac (patch) | |
tree | c396b044323a4499046f62c46286029ac603b1c6 /src/mesa | |
parent | 7e884c6f86621ca07ed31fc7ee3f4d891f0873da (diff) |
Float->uint conversion for PIPE_FORMAT_U_Z32 resulted in overflow in depth_value(). Special-case it.
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/state_tracker/st_cb_clear.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index 2c79e2890d1..cb7e43fb8e9 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -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:*/ |