summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2006-02-28 15:48:43 +0000
committerBrian Paul <[email protected]>2006-02-28 15:48:43 +0000
commit176dac684a65d9140d3f1ce4d3bd4220ff5b653f (patch)
treec0152fbf2d1c9fb4008763964fb103dbcf796053 /src/mesa
parent34b60b001de080643aa5b7c9e0145b98b5653ed1 (diff)
only run shader on active fragments in the span
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/swrast/s_arbshader.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_arbshader.c b/src/mesa/swrast/s_arbshader.c
index e17e799100e..c915b97d6ec 100644
--- a/src/mesa/swrast/s_arbshader.c
+++ b/src/mesa/swrast/s_arbshader.c
@@ -46,6 +46,8 @@ void _swrast_exec_arbshader (GLcontext *ctx, struct sw_span *span)
for (i = span->start; i < span->end; i++)
{
+ /* only run shader on active fragments */
+ if (span->array->mask[i]) {
GLfloat vec[4];
GLuint j;
GLboolean discard;
@@ -89,6 +91,7 @@ void _swrast_exec_arbshader (GLcontext *ctx, struct sw_span *span)
UNCLAMPED_FLOAT_TO_CHAN(span->array->rgba[i][BCOMP], vec[2]);
UNCLAMPED_FLOAT_TO_CHAN(span->array->rgba[i][ACOMP], vec[3]);
}
+ }
}
}