summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2010-08-15 16:21:46 +0100
committerKeith Whitwell <keithw@vmware.com>2010-08-15 16:25:06 +0100
commit510b03539413552a543e25de6b896eb10baf60ae (patch)
treeb5e38181ef9c7133775a29c17bc41a09c6ac1b3d /src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
parent2d53dc873ea1d9e0e3e4c1cf08a63621661e422f (diff)
llvmpipe: reorganize block4 loop, nice speedup
isosurf 95->115 fps just by exchanging the two inner loops in this function...
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h b/src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
index a410c611a3..fcb8e2b05d 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
@@ -46,19 +46,11 @@ TAG(do_block_4)(struct lp_rasterizer_task *task,
int x, int y,
const int *c)
{
- unsigned mask = 0;
- int i;
+ unsigned mask = 0xffff;
+ int j;
- for (i = 0; i < 16; i++) {
- int any_negative = 0;
- int j;
-
- for (j = 0; j < NR_PLANES; j++)
- any_negative |= (c[j] - 1 + plane[j].step[i]);
-
- any_negative >>= 31;
-
- mask |= (~any_negative) & (1 << i);
+ for (j = 0; j < NR_PLANES; j++) {
+ mask &= ~build_mask(c[j] - 1, plane[j].step);
}
/* Now pass to the shader: