summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_quad_stipple.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-18 12:57:16 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-29 09:21:34 +0100
commit3014919211b361817c5365f7cbb8d2ef8ca61234 (patch)
treea192d357bff387f2369633831c8b7d75f33659e9 /src/gallium/drivers/llvmpipe/lp_quad_stipple.c
parentefab431684bb17459073f6a2e96044cb2ebd2524 (diff)
llvmpipe: Rasterize the quads according to what the blend function expects.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_quad_stipple.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_quad_stipple.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_quad_stipple.c b/src/gallium/drivers/llvmpipe/lp_quad_stipple.c
index 353c1ddcfa..b89978fd5f 100644
--- a/src/gallium/drivers/llvmpipe/lp_quad_stipple.c
+++ b/src/gallium/drivers/llvmpipe/lp_quad_stipple.c
@@ -34,6 +34,9 @@ stipple_quad(struct quad_stage *qs, struct quad_header *quads[], unsigned nr)
const uint stipple0 = llvmpipe->poly_stipple.stipple[y0 % 32];
const uint stipple1 = llvmpipe->poly_stipple.stipple[y1 % 32];
+ if (!quad->inout.mask)
+ continue;
+
/* turn off quad mask bits that fail the stipple test */
if ((stipple0 & (bit31 >> col0)) == 0)
quad->inout.mask &= ~MASK_TOP_LEFT;
@@ -48,10 +51,11 @@ stipple_quad(struct quad_stage *qs, struct quad_header *quads[], unsigned nr)
quad->inout.mask &= ~MASK_BOTTOM_RIGHT;
if (quad->inout.mask)
- quads[pass++] = quad;
+ ++pass;
}
- qs->next->run(qs->next, quads, pass);
+ if(pass)
+ qs->next->run(qs->next, quads, nr);
}