summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-07-03 17:31:59 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-07-03 17:31:59 -0600
commitac5523a9c31efbb89e58ef99da47b0d81a21409c (patch)
tree977724ca46a7a19acfcab40ed55168c54ebc4a60
parent284efcfc27aaeb447e0898ae3342e9fee20c584a (diff)
SIMD comments
-rw-r--r--src/mesa/pipe/softpipe/sp_quad_alpha_test.c4
-rw-r--r--src/mesa/pipe/softpipe/sp_quad_depth_test.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/pipe/softpipe/sp_quad_alpha_test.c b/src/mesa/pipe/softpipe/sp_quad_alpha_test.c
index 0059b3abf4..e0f7225d74 100644
--- a/src/mesa/pipe/softpipe/sp_quad_alpha_test.c
+++ b/src/mesa/pipe/softpipe/sp_quad_alpha_test.c
@@ -23,6 +23,10 @@ alpha_test_quad(struct quad_stage *qs, struct quad_header *quad)
quad->mask = 0x0;
break;
case PIPE_FUNC_LESS:
+ /*
+ * If quad->mask were an array [4] we could do this SIMD-style:
+ * quad->mask &= (quad->outputs.color[3] <= vec4(ref));
+ */
for (j = 0; j < QUAD_SIZE; j++) {
if (quad->mask & (1 << j)) {
if (quad->outputs.color[3][j] >= ref) {
diff --git a/src/mesa/pipe/softpipe/sp_quad_depth_test.c b/src/mesa/pipe/softpipe/sp_quad_depth_test.c
index b72bbac0d4..fcd6a22e1d 100644
--- a/src/mesa/pipe/softpipe/sp_quad_depth_test.c
+++ b/src/mesa/pipe/softpipe/sp_quad_depth_test.c
@@ -54,6 +54,7 @@ depth_test_quad(struct quad_stage *qs, struct quad_header *quad)
break;
case PIPE_FUNC_LESS:
/* Note this is pretty much a single sse or cell instruction.
+ * Like this: quad->mask &= (quad->outputs.depth < zzzz);
*/
for (j = 0; j < QUAD_SIZE; j++) {
if (quad->outputs.depth[j] < zzzz[j])