From 473f1aca7f4eb1dbb70e93cc6bf9a555512cd552 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 25 Aug 2006 19:45:31 +0000 Subject: clamp result.depth to [0,1] if written to --- src/mesa/swrast/s_nvfragprog.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/mesa/swrast/s_nvfragprog.c') diff --git a/src/mesa/swrast/s_nvfragprog.c b/src/mesa/swrast/s_nvfragprog.c index 826e71d45c9..97dbed04a89 100644 --- a/src/mesa/swrast/s_nvfragprog.c +++ b/src/mesa/swrast/s_nvfragprog.c @@ -1491,7 +1491,12 @@ _swrast_exec_fragment_program( GLcontext *ctx, struct sw_span *span ) if (program->Base.OutputsWritten & (1 << FRAG_RESULT_DEPR)) { const GLfloat depth = ctx->FragmentProgram.Machine.Outputs[FRAG_RESULT_DEPR][2]; - span->array->z[i] = IROUND(depth * ctx->DrawBuffer->_DepthMaxF); + if (depth <= 0.0) + span->array->z[i] = 0; + else if (depth >= 1.0) + span->array->z[i] = ctx->DrawBuffer->_DepthMax; + else + span->array->z[i] = IROUND(depth * ctx->DrawBuffer->_DepthMaxF); } } } -- cgit v1.2.3