diff options
| -rw-r--r-- | src/mesa/swrast/s_span.c | 15 | ||||
| -rw-r--r-- | src/mesa/swrast/s_triangle.c | 1 | ||||
| -rw-r--r-- | src/mesa/swrast/s_tritemp.h | 4 | 
3 files changed, 12 insertions, 8 deletions
| diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c index 41db42e2b8..0627dea9dd 100644 --- a/src/mesa/swrast/s_span.c +++ b/src/mesa/swrast/s_span.c @@ -939,10 +939,13 @@ _swrast_write_index_span( GLcontext *ctx, struct sw_span *span)     }     /* if we get here, something passed the depth test */ -   ctx->OcclusionResult = GL_TRUE; +   if (ctx->Depth.OcclusionTest) { +      ctx->OcclusionResult = GL_TRUE; +   }  #if FEATURE_ARB_occlusion_query     if (ctx->Occlusion.Active) { +      /* update count of 'passed' fragments */        GLuint i;        for (i = 0; i < span->end; i++)           ctx->Occlusion.PassedCounter += span->array->mask[i]; @@ -1155,10 +1158,13 @@ _swrast_write_rgba_span( GLcontext *ctx, struct sw_span *span)     }     /* if we get here, something passed the depth test */ -   ctx->OcclusionResult = GL_TRUE; +   if (ctx->Depth.OcclusionTest) { +      ctx->OcclusionResult = GL_TRUE; +   }  #if FEATURE_ARB_occlusion_query     if (ctx->Occlusion.Active) { +      /* update count of 'passed' fragments */        GLuint i;        for (i = 0; i < span->end; i++)           ctx->Occlusion.PassedCounter += span->array->mask[i]; @@ -1423,10 +1429,13 @@ _swrast_write_texture_span( GLcontext *ctx, struct sw_span *span)     }     /* if we get here, some fragments passed the depth test */ -   ctx->OcclusionResult = GL_TRUE; +   if (ctx->Depth.OcclusionTest) { +      ctx->OcclusionResult = GL_TRUE; +   }  #if FEATURE_ARB_occlusion_query     if (ctx->Occlusion.Active) { +      /* update count of 'passed' fragments */        GLuint i;        for (i = 0; i < span->end; i++)           ctx->Occlusion.PassedCounter += span->array->mask[i]; diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c index 8c2ba368c0..5c8d1ebe29 100644 --- a/src/mesa/swrast/s_triangle.c +++ b/src/mesa/swrast/s_triangle.c @@ -900,7 +900,6 @@ fast_persp_span(GLcontext *ctx, struct sw_span *span,   * Special tri function for occlusion testing   */  #define NAME occlusion_zless_triangle -#define DO_OCCLUSION_TEST  #define INTERP_Z 1  #define SETUP_CODE						\     ASSERT(ctx->Depth.Test);					\ diff --git a/src/mesa/swrast/s_tritemp.h b/src/mesa/swrast/s_tritemp.h index 89f7d29bf8..a1a51c4aaa 100644 --- a/src/mesa/swrast/s_tritemp.h +++ b/src/mesa/swrast/s_tritemp.h @@ -304,9 +304,6 @@ static void NAME(GLcontext *ctx, const SWvertex *v0,        oneOverArea = 1.0F / area;     } -#ifndef DO_OCCLUSION_TEST -   ctx->OcclusionResult = GL_TRUE; -#endif     span.facing = ctx->_Facing; /* for 2-sided stencil test */     /* Edge setup.  For a triangle strip these could be reused... */ @@ -1329,5 +1326,4 @@ static void NAME(GLcontext *ctx, const SWvertex *v0,  #undef InterpToInt  #undef INTERP_ONE -#undef DO_OCCLUSION_TEST  #undef NAME | 
