On Tue, Jan 12, 2016 at 1:10 PM, Marek Olšák <mar...@gmail.com> wrote: > Hi, > > For AMD guys: Is it okay with you to push this patch series?
No objections here. Alex > > Thanks, > > Marek > > On Fri, Jan 8, 2016 at 2:30 AM, Marek Olšák <mar...@gmail.com> wrote: >> From: Marek Olšák <marek.ol...@amd.com> >> >> It will become a system value, not an input. >> --- >> src/gallium/drivers/radeonsi/si_state_shaders.c | 45 >> ++++++++++++------------- >> 1 file changed, 22 insertions(+), 23 deletions(-) >> >> diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c >> b/src/gallium/drivers/radeonsi/si_state_shaders.c >> index 64adf69..460dda5 100644 >> --- a/src/gallium/drivers/radeonsi/si_state_shaders.c >> +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c >> @@ -399,30 +399,29 @@ static void si_shader_ps(struct si_shader *shader) >> if (!pm4) >> return; >> >> - for (i = 0; i < info->num_inputs; i++) { >> - switch (info->input_semantic_name[i]) { >> - case TGSI_SEMANTIC_POSITION: >> - /* 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; >> - } >> + /* SPI_BARYC_CNTL.POS_FLOAT_LOCATION >> + * Possible vaules: >> + * 0 -> Position = pixel center >> + * 1 -> Position = pixel centroid >> + * 2 -> Position = at sample position >> + * >> + * From GLSL 4.5 specification, section 7.1: >> + * "The variable gl_FragCoord is available as an input variable >> from >> + * within fragment shaders and it holds the window relative >> coordinates >> + * (x, y, z, 1/w) values for the fragment. If multi-sampling, this >> + * value can be for any location within the pixel, or one of the >> + * fragment samples. The use of centroid does not further restrict >> + * this value to be inside the current primitive." >> + * >> + * Meaning that centroid has no effect and we can return anything >> within >> + * the pixel. Thus, return the value at sample position, because >> that's >> + * the most accurate one shaders can get. >> + */ >> + spi_baryc_cntl |= S_0286E0_POS_FLOAT_LOCATION(2); >> >> - 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; >> - } >> - } >> + if (info->properties[TGSI_PROPERTY_FS_COORD_PIXEL_CENTER] == >> + TGSI_FS_COORD_PIXEL_CENTER_INTEGER) >> + spi_baryc_cntl |= S_0286E0_POS_FLOAT_ULC(1); >> >> /* Find out what SPI_SHADER_COL_FORMAT and CB_SHADER_MASK should be. >> */ >> colors_written = info->colors_written; >> -- >> 2.1.4 >> > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev