diff options
author | José Fonseca <[email protected]> | 2010-06-01 21:29:01 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-06-01 21:30:57 +0100 |
commit | 489f637741da5d3dea2c9eb858a64b15f9af0e3f (patch) | |
tree | ef70dc07f83ae0d0562e6dcd04b3981c0f697a2b /src/gallium/drivers | |
parent | 6ce68ad3ca242076bbb93fdd99bb448f87a31d15 (diff) |
llvmpipe: Obey color interpolation.
Don't force color to be linearly interpolated when that's not being
requested.
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_derived.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_derived.c b/src/gallium/drivers/llvmpipe/lp_state_derived.c index 46a96536075..9e066f5c656 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_derived.c +++ b/src/gallium/drivers/llvmpipe/lp_state_derived.c @@ -78,6 +78,22 @@ compute_vertex_info(struct llvmpipe_context *llvmpipe) /* This can be pre-computed, except for flatshade: */ inputs[i].usage_mask = lpfs->info.input_usage_mask[i]; + + switch (lpfs->info.input_interpolate[i]) { + case TGSI_INTERPOLATE_CONSTANT: + inputs[i].interp = LP_INTERP_CONSTANT; + break; + case TGSI_INTERPOLATE_LINEAR: + inputs[i].interp = LP_INTERP_LINEAR; + break; + case TGSI_INTERPOLATE_PERSPECTIVE: + inputs[i].interp = LP_INTERP_PERSPECTIVE; + break; + default: + assert(0); + break; + } + switch (lpfs->info.input_semantic_name[i]) { case TGSI_SEMANTIC_FACE: inputs[i].interp = LP_INTERP_FACING; @@ -96,25 +112,10 @@ compute_vertex_info(struct llvmpipe_context *llvmpipe) */ if (llvmpipe->rasterizer->flatshade) inputs[i].interp = LP_INTERP_CONSTANT; - else - inputs[i].interp = LP_INTERP_LINEAR; break; default: - switch (lpfs->info.input_interpolate[i]) { - case TGSI_INTERPOLATE_CONSTANT: - inputs[i].interp = LP_INTERP_CONSTANT; - break; - case TGSI_INTERPOLATE_LINEAR: - inputs[i].interp = LP_INTERP_LINEAR; - break; - case TGSI_INTERPOLATE_PERSPECTIVE: - inputs[i].interp = LP_INTERP_PERSPECTIVE; - break; - default: - assert(0); - break; - } + break; } /* |