diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/swrast/s_nvfragprog.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/swrast/s_nvfragprog.c b/src/mesa/swrast/s_nvfragprog.c index 826e71d45c..97dbed04a8 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);           }        }     }  | 
