summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 0059b3abf4f..e0f7225d748 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 b72bbac0d4a..fcd6a22e1d3 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])