diff options
author | Keith Whitwell <[email protected]> | 2010-09-24 10:30:52 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-09-25 12:21:55 +0100 |
commit | 60a45b03c389f708c513bb2b70c5973175f01068 (patch) | |
tree | 1f060b273fb3d89849e40df46ca86df9a1faedf7 /src/gallium/drivers | |
parent | 2a8d1fd3cedbac1dd145a3ac5b7a8edcba9a85d5 (diff) |
llvmpipe: handle FACING interpolants in line and point setup
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_line.c | 6 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_point.c | 16 |
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; } } |