diff options
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_state_derived.c | 34 | 
1 files changed, 10 insertions, 24 deletions
| diff --git a/src/gallium/drivers/softpipe/sp_state_derived.c b/src/gallium/drivers/softpipe/sp_state_derived.c index 1faeca1c2a..3bc96b9538 100644 --- a/src/gallium/drivers/softpipe/sp_state_derived.c +++ b/src/gallium/drivers/softpipe/sp_state_derived.c @@ -66,8 +66,6 @@ softpipe_get_vertex_info(struct softpipe_context *softpipe)     if (vinfo->num_attribs == 0) {        /* compute vertex layout now */        const struct sp_fragment_shader *spfs = softpipe->fs; -      const enum interp_mode colorInterp -         = softpipe->rasterizer->flatshade ? INTERP_CONSTANT : INTERP_LINEAR;        struct vertex_info *vinfo_vbuf = &softpipe->vertex_info_vbuf;        const uint num = draw_num_vs_outputs(softpipe->draw);        uint i; @@ -108,33 +106,21 @@ softpipe_get_vertex_info(struct softpipe_context *softpipe)           switch (spfs->info.input_semantic_name[i]) {           case TGSI_SEMANTIC_POSITION: -            src = draw_find_vs_output(softpipe->draw, -                                      TGSI_SEMANTIC_POSITION, 0); -            draw_emit_vertex_attr(vinfo, EMIT_4F, INTERP_POS, src); +            interp = INTERP_POS;              break;           case TGSI_SEMANTIC_COLOR: -            src = draw_find_vs_output(softpipe->draw, TGSI_SEMANTIC_COLOR,  -                                 spfs->info.input_semantic_index[i]); -            draw_emit_vertex_attr(vinfo, EMIT_4F, colorInterp, src); +            if (softpipe->rasterizer->flatshade) { +               interp = INTERP_CONSTANT; +            }              break; - -         case TGSI_SEMANTIC_FOG: -            src = draw_find_vs_output(softpipe->draw, TGSI_SEMANTIC_FOG, 0); -            draw_emit_vertex_attr(vinfo, EMIT_4F, interp, src); -            break; - -         case TGSI_SEMANTIC_GENERIC: -         case TGSI_SEMANTIC_FACE: -            /* this includes texcoords and varying vars */ -            src = draw_find_vs_output(softpipe->draw, TGSI_SEMANTIC_GENERIC, -                                      spfs->info.input_semantic_index[i]); -            draw_emit_vertex_attr(vinfo, EMIT_4F, interp, src); -            break; - -         default: -            assert(0);           } + +         /* this includes texcoords and varying vars */ +         src = draw_find_vs_output(softpipe->draw, +                                   spfs->info.input_semantic_name[i], +                                   spfs->info.input_semantic_index[i]); +         draw_emit_vertex_attr(vinfo, EMIT_4F, interp, src);        }        softpipe->psize_slot = draw_find_vs_output(softpipe->draw, | 
