aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/evergreen_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_state.c')
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 9c103c59062..d1f3b9e7b0a 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -514,15 +514,13 @@ static void *evergreen_create_rs_state(struct pipe_context *ctx,
}
spi_interp = S_0286D4_FLAT_SHADE_ENA(1);
- if (state->sprite_coord_enable) {
- spi_interp |= S_0286D4_PNT_SPRITE_ENA(1) |
- S_0286D4_PNT_SPRITE_OVRD_X(2) |
- S_0286D4_PNT_SPRITE_OVRD_Y(3) |
- S_0286D4_PNT_SPRITE_OVRD_Z(0) |
- S_0286D4_PNT_SPRITE_OVRD_W(1);
- if (state->sprite_coord_mode != PIPE_SPRITE_COORD_UPPER_LEFT) {
- spi_interp |= S_0286D4_PNT_SPRITE_TOP_1(1);
- }
+ spi_interp |= S_0286D4_PNT_SPRITE_ENA(1) |
+ S_0286D4_PNT_SPRITE_OVRD_X(2) |
+ S_0286D4_PNT_SPRITE_OVRD_Y(3) |
+ S_0286D4_PNT_SPRITE_OVRD_Z(0) |
+ S_0286D4_PNT_SPRITE_OVRD_W(1);
+ if (state->sprite_coord_mode != PIPE_SPRITE_COORD_UPPER_LEFT) {
+ spi_interp |= S_0286D4_PNT_SPRITE_TOP_1(1);
}
r600_store_context_reg_seq(&rs->buffer, R_028A00_PA_SU_POINT_SIZE, 3);
@@ -3389,8 +3387,9 @@ void evergreen_update_ps_state(struct pipe_context *ctx, struct r600_pipe_shader
tmp |= S_028644_FLAT_SHADE(1);
}
- if (rshader->input[i].name == TGSI_SEMANTIC_GENERIC &&
- (sprite_coord_enable & (1 << rshader->input[i].sid))) {
+ if (rshader->input[i].name == TGSI_SEMANTIC_PCOORD ||
+ (rshader->input[i].name == TGSI_SEMANTIC_TEXCOORD &&
+ (sprite_coord_enable & (1 << rshader->input[i].sid)))) {
tmp |= S_028644_PT_SPRITE_TEX(1);
}