Mesa (master): radeonsi: support gl_FragCoord at integer pixel center

Marek Olšák mareko at kemper.freedesktop.org
Tue Nov 18 13:33:04 UTC 2014


Module: Mesa
Branch: master
Commit: 3958378abb31164443f888f09f644100d5c34dae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3958378abb31164443f888f09f644100d5c34dae

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Nov 17 20:51:56 2014 +0100

radeonsi: support gl_FragCoord at integer pixel center

No known benefit for OpenGL, but it doesn't hurt.

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

 src/gallium/drivers/radeonsi/si_pipe.c       |    2 +-
 src/gallium/drivers/radeonsi/si_state_draw.c |    4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index 61a3885..19ad75a 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -183,6 +183,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 	case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
 	case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
 	case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
+	case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
 	case PIPE_CAP_SM3:
 	case PIPE_CAP_SEAMLESS_CUBE_MAP:
 	case PIPE_CAP_PRIMITIVE_RESTART:
@@ -240,7 +241,6 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 
 	/* Unsupported features. */
 	case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
-	case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
 	case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
 	case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
 	case PIPE_CAP_VERTEX_COLOR_CLAMPED:
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index f108282..674b4a0 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -262,6 +262,10 @@ static void si_shader_ps(struct si_shader *shader)
 				spi_baryc_cntl |= S_0286E0_POS_FLOAT_LOCATION(2);
 				break;
 			}
+
+			if (info->properties[TGSI_PROPERTY_FS_COORD_PIXEL_CENTER] ==
+			    TGSI_FS_COORD_PIXEL_CENTER_INTEGER)
+				spi_baryc_cntl |= S_0286E0_POS_FLOAT_ULC(1);
 			break;
 		}
 	}




More information about the mesa-commit mailing list