summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-12-01 16:24:16 -0700
committerBrian Paul <[email protected]>2009-12-01 16:24:19 -0700
commit9c486774913f66c6496cd43cfd9dbd992c28d8cb (patch)
treed2d5c262d85f2fd6697a5b553c6c94fe5bc65f81 /src/gallium
parent6bde3e0fdfe4bfc3fee33ca0d1d8e13969eb8952 (diff)
llvmpipe: simplify mask computation
Make this a little easier to understand.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast_tri.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_tri.c b/src/gallium/drivers/llvmpipe/lp_rast_tri.c
index 9543b86ecd9..f6cb628ed4b 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_tri.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast_tri.c
@@ -89,10 +89,12 @@ do_block_4( struct lp_rasterizer *rast,
assert(x % 4 == 0);
assert(y % 4 == 0);
- for (i = 0; i < 16; i++)
- mask |= (~(((c1 + tri->step[0][i]) |
- (c2 + tri->step[1][i]) |
- (c3 + tri->step[2][i])) >> 31)) & (1 << i);
+ for (i = 0; i < 16; i++) {
+ int any_negative = ((c1 + tri->step[0][i]) |
+ (c2 + tri->step[1][i]) |
+ (c3 + tri->step[2][i])) >> 31;
+ mask |= (~any_negative) & (1 << i);
+ }
/* As we do trivial reject already, masks should rarely be all zero:
*/