r600g: fix some interpolation tests for evergreen
authorVadim Girlin <vadimgirlin@gmail.com>
Sat, 21 Jan 2012 20:17:10 +0000 (00:17 +0400)
committerDave Airlie <airlied@redhat.com>
Sun, 22 Jan 2012 07:22:49 +0000 (07:22 +0000)
Same fix as previously done by Dave Airlie for r600/r700

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c

index 96c1144..a713e24 100644 (file)
@@ -2315,14 +2315,14 @@ void evergreen_pipe_shader_ps(struct pipe_context *ctx, struct r600_pipe_shader
 
                        tmp = S_028644_SEMANTIC(sid);
 
-                       if (rshader->input[i].name == TGSI_SEMANTIC_COLOR ||
-                                       rshader->input[i].name == TGSI_SEMANTIC_BCOLOR ||
-                                       rshader->input[i].name == TGSI_SEMANTIC_POSITION) {
+                       if (rshader->input[i].name == TGSI_SEMANTIC_POSITION ||
+                               rshader->input[i].interpolate == TGSI_INTERPOLATE_COLOR ||
+                               rshader->input[i].interpolate == TGSI_INTERPOLATE_CONSTANT) {
                                tmp |= S_028644_FLAT_SHADE(1);
                        }
 
                        if (rshader->input[i].name == TGSI_SEMANTIC_GENERIC &&
-                                       rctx->sprite_coord_enable & (1 << rshader->input[i].sid)) {
+                                       (rctx->sprite_coord_enable & (1 << rshader->input[i].sid))) {
                                tmp |= S_028644_PT_SPRITE_TEX(1);
                        }