summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_span.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/swrast/s_span.c')
-rw-r--r--src/mesa/swrast/s_span.c15
1 files changed, 12 insertions, 3 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];