r600g: select linear interpolate if tgsi input requests it
authorDave Airlie <airlied@redhat.com>
Thu, 14 Oct 2010 04:27:34 +0000 (14:27 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 14 Oct 2010 04:27:34 +0000 (14:27 +1000)
src/gallium/drivers/r600/r600_shader.c

index d6f73cb74326f17a147fe9fa792f19c944b54fb6..141adcc54be0a3f485d334db50715099634aec3f 100644 (file)
@@ -117,6 +117,9 @@ static void r600_pipe_shader_ps(struct pipe_context *ctx, struct r600_pipe_shade
                tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(&rctx->vs_shader->shader, rshader, i));
                if (rshader->input[i].centroid)
                        tmp |= S_028644_SEL_CENTROID(1);
+               if (rshader->input[i].interpolate == TGSI_INTERPOLATE_LINEAR)
+                       tmp |= S_028644_SEL_LINEAR(1);
+
                if (rshader->input[i].name == TGSI_SEMANTIC_POSITION)
                        pos_index = i;
                if (rshader->input[i].name == TGSI_SEMANTIC_COLOR ||