summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2010-09-24 10:30:52 +0100
committerJosé Fonseca <[email protected]>2010-09-25 12:21:55 +0100
commit60a45b03c389f708c513bb2b70c5973175f01068 (patch)
tree1f060b273fb3d89849e40df46ca86df9a1faedf7 /src/gallium/drivers/llvmpipe
parent2a8d1fd3cedbac1dd145a3ac5b7a8edcba9a85d5 (diff)
llvmpipe: handle FACING interpolants in line and point setup
Diffstat (limited to 'src/gallium/drivers/llvmpipe')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup_line.c6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup_point.c16
2 files changed, 19 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_line.c b/src/gallium/drivers/llvmpipe/lp_setup_line.c
index 829eb8a5a04..156bd633754 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_line.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_line.c
@@ -208,6 +208,12 @@ static void setup_line_coefficients( struct lp_setup_context *setup,
fragcoord_usage_mask |= usage_mask;
break;
+ case LP_INTERP_FACING:
+ for (i = 0; i < NUM_CHANNELS; i++)
+ if (usage_mask & (1 << i))
+ constant_coef(setup, tri, slot+1, 1.0, i);
+ break;
+
default:
assert(0);
}
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_point.c b/src/gallium/drivers/llvmpipe/lp_setup_point.c
index 2c354d1d0ed..a95c15751cc 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_point.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_point.c
@@ -232,13 +232,23 @@ setup_point_coefficients( struct lp_setup_context *setup,
break;
}
}
-
- /* Otherwise fallthrough */
- default:
+ /* FALLTHROUGH */
+ case LP_INTERP_CONSTANT:
for (i = 0; i < NUM_CHANNELS; i++) {
if (usage_mask & (1 << i))
constant_coef(setup, point, slot+1, info->v0[vert_attr][i], i);
}
+ break;
+
+ case LP_INTERP_FACING:
+ for (i = 0; i < NUM_CHANNELS; i++)
+ if (usage_mask & (1 << i))
+ constant_coef(setup, point, slot+1, 1.0, i);
+ break;
+
+ default:
+ assert(0);
+ break;
}
}