aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2011-10-19 09:29:38 -0600
committerBrian Paul <[email protected]>2011-10-19 09:32:30 -0600
commitd3561bd0bc4a88ee0500460f8e0830a818e456a9 (patch)
treef4754b6ea3d64388a09a97f45669fd430c771d0b
parentab9136ef750a1209db26d6c9dffe299f4134682e (diff)
swrast: fix float->uint conversion of gl_FragDepth
Using IROUND() to convert a float depth value to a 32-bit uint Z value. didn't work (it returns a signed value). Just use a cast instead Fixes piglit fbo-depth-array failure with swrast. Note: this is a candidate for the 7.11 branch.
-rw-r--r--src/mesa/swrast/s_fragprog.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/swrast/s_fragprog.c b/src/mesa/swrast/s_fragprog.c
index 7f205a200af..1caa0ebc226 100644
--- a/src/mesa/swrast/s_fragprog.c
+++ b/src/mesa/swrast/s_fragprog.c
@@ -237,7 +237,8 @@ run_program(struct gl_context *ctx, SWspan *span, GLuint start, GLuint end)
else if (depth >= 1.0)
span->array->z[i] = ctx->DrawBuffer->_DepthMax;
else
- span->array->z[i] = IROUND(depth * ctx->DrawBuffer->_DepthMaxF);
+ span->array->z[i] =
+ (GLuint) (depth * ctx->DrawBuffer->_DepthMaxF + 0.5F);
}
}
else {