summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-11-17 20:49:11 +0100
committerMarek Olšák <[email protected]>2014-11-18 14:27:54 +0100
commitda2dea384374c70098a3aa74f42fda6381556945 (patch)
treed1d6e71913a767252a99e7198ac4d01b8d264cc1 /src/gallium/drivers
parent68db29c434e144891e5990b032b44495de52f6eb (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.c25
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;
}
}