diff options
Diffstat (limited to 'src/gallium')
-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 829eb8a5a0..156bd63375 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 2c354d1d0e..a95c15751c 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; } } |