diff options
author | Marek Olšák <[email protected]> | 2014-11-17 20:49:11 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-11-18 14:27:54 +0100 |
commit | da2dea384374c70098a3aa74f42fda6381556945 (patch) | |
tree | d1d6e71913a767252a99e7198ac4d01b8d264cc1 /src/gallium/drivers | |
parent | 68db29c434e144891e5990b032b44495de52f6eb (diff) |
radeonsi: support per-sample gl_FragCoord
Cc: 10.4 <[email protected]>
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_draw.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index d5b27e7e3a6..f1082827111 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -248,20 +248,21 @@ static void si_shader_ps(struct si_shader *shader) for (i = 0; i < info->num_inputs; i++) { switch (info->input_semantic_name[i]) { case TGSI_SEMANTIC_POSITION: - if (info->input_interpolate_loc[i] == - TGSI_INTERPOLATE_LOC_CENTROID) { - /* SPI_BARYC_CNTL.POS_FLOAT_LOCATION - * Possible vaules: - * 0 -> Position = pixel center (default) - * 1 -> Position = pixel centroid - * 2 -> Position = iterated sample number XXX: - * What does this mean? - */ + /* SPI_BARYC_CNTL.POS_FLOAT_LOCATION + * Possible vaules: + * 0 -> Position = pixel center (default) + * 1 -> Position = pixel centroid + * 2 -> Position = at sample position + */ + switch (info->input_interpolate_loc[i]) { + case TGSI_INTERPOLATE_LOC_CENTROID: spi_baryc_cntl |= S_0286E0_POS_FLOAT_LOCATION(1); + break; + case TGSI_INTERPOLATE_LOC_SAMPLE: + spi_baryc_cntl |= S_0286E0_POS_FLOAT_LOCATION(2); + break; } - /* Fall through */ - case TGSI_SEMANTIC_FACE: - continue; + break; } } |