summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_quad_stipple.c
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-07-24 18:17:05 +0100
committerKeith Whitwell <keithw@vmware.com>2009-07-24 18:17:05 +0100
commita1dbd7aa159e266592a1e52504680992327ca9e0 (patch)
tree3656902d68d0b46052e9fa0f6ffc92d1efef2a6d /src/gallium/drivers/softpipe/sp_quad_stipple.c
parentab9fb5167023a26566b53e98f206dd73a18000f3 (diff)
softpipe: actually pass >1 quad from triangle routine
First attempt
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_quad_stipple.c')
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_stipple.c44
1 files changed, 21 insertions, 23 deletions
diff --git a/src/gallium/drivers/softpipe/sp_quad_stipple.c b/src/gallium/drivers/softpipe/sp_quad_stipple.c
index 05665d8e26..a0527a596a 100644
--- a/src/gallium/drivers/softpipe/sp_quad_stipple.c
+++ b/src/gallium/drivers/softpipe/sp_quad_stipple.c
@@ -20,37 +20,35 @@ stipple_quad(struct quad_stage *qs, struct quad_header *quads[], unsigned nr)
static const uint bit30 = 1 << 30;
unsigned pass = nr;
- if (quads[0]->input.prim == QUAD_PRIM_TRI) {
- struct softpipe_context *softpipe = qs->softpipe;
- unsigned q;
+ struct softpipe_context *softpipe = qs->softpipe;
+ unsigned q;
- pass = 0;
+ pass = 0;
- for (q = 0; q < nr; q++) {
- struct quad_header *quad = quads[q];
+ for (q = 0; q < nr; q++) {
+ struct quad_header *quad = quads[q];
- const int col0 = quad->input.x0 % 32;
- const int y0 = quad->input.y0;
- const int y1 = y0 + 1;
- const uint stipple0 = softpipe->poly_stipple.stipple[y0 % 32];
- const uint stipple1 = softpipe->poly_stipple.stipple[y1 % 32];
+ const int col0 = quad->input.x0 % 32;
+ const int y0 = quad->input.y0;
+ const int y1 = y0 + 1;
+ const uint stipple0 = softpipe->poly_stipple.stipple[y0 % 32];
+ const uint stipple1 = softpipe->poly_stipple.stipple[y1 % 32];
- /* turn off quad mask bits that fail the stipple test */
- if ((stipple0 & (bit31 >> col0)) == 0)
- quad->inout.mask &= ~MASK_TOP_LEFT;
+ /* turn off quad mask bits that fail the stipple test */
+ if ((stipple0 & (bit31 >> col0)) == 0)
+ quad->inout.mask &= ~MASK_TOP_LEFT;
- if ((stipple0 & (bit30 >> col0)) == 0)
- quad->inout.mask &= ~MASK_TOP_RIGHT;
+ if ((stipple0 & (bit30 >> col0)) == 0)
+ quad->inout.mask &= ~MASK_TOP_RIGHT;
- if ((stipple1 & (bit31 >> col0)) == 0)
- quad->inout.mask &= ~MASK_BOTTOM_LEFT;
+ if ((stipple1 & (bit31 >> col0)) == 0)
+ quad->inout.mask &= ~MASK_BOTTOM_LEFT;
- if ((stipple1 & (bit30 >> col0)) == 0)
- quad->inout.mask &= ~MASK_BOTTOM_RIGHT;
+ if ((stipple1 & (bit30 >> col0)) == 0)
+ quad->inout.mask &= ~MASK_BOTTOM_RIGHT;
- if (quad->inout.mask)
- quads[pass++] = quad;
- }
+ if (quad->inout.mask)
+ quads[pass++] = quad;
}
qs->next->run(qs->next, quads, pass);