From: Michel Dänzer Date: Wed, 18 Apr 2012 08:44:03 +0000 (+0200) Subject: radeonsi: Improve calculation of number of pixel shader interpolants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0ef90e52d1c1898ae1e4618536a85622689c0b19;p=mesa.git radeonsi: Improve calculation of number of pixel shader interpolants. --- diff --git a/src/gallium/drivers/radeonsi/evergreen_state.c b/src/gallium/drivers/radeonsi/evergreen_state.c index 5048761fc7f..99cbbed5abc 100644 --- a/src/gallium/drivers/radeonsi/evergreen_state.c +++ b/src/gallium/drivers/radeonsi/evergreen_state.c @@ -1922,21 +1922,13 @@ void si_pipe_shader_ps(struct pipe_context *ctx, struct si_pipe_shader *shader) db_shader_control = S_02880C_Z_ORDER(V_02880C_EARLY_Z_THEN_LATE_Z); for (i = 0; i < rshader->ninput; i++) { - /* evergreen NUM_INTERP only contains values interpolated into the LDS, - POSITION goes via GPRs from the SC so isn't counted */ - if (rshader->input[i].name == TGSI_SEMANTIC_POSITION) - pos_index = i; - else if (rshader->input[i].name == TGSI_SEMANTIC_FACE) - face_index = i; - else { - ninterp++; - if (rshader->input[i].interpolate == TGSI_INTERPOLATE_LINEAR) - have_linear = TRUE; - if (rshader->input[i].interpolate == TGSI_INTERPOLATE_PERSPECTIVE) - have_perspective = TRUE; - if (rshader->input[i].centroid) - have_centroid = TRUE; - } + ninterp++; + if (rshader->input[i].interpolate == TGSI_INTERPOLATE_LINEAR) + have_linear = TRUE; + if (rshader->input[i].interpolate == TGSI_INTERPOLATE_PERSPECTIVE) + have_perspective = TRUE; + if (rshader->input[i].centroid) + have_centroid = TRUE; } for (i = 0; i < rshader->noutput; i++) { @@ -1966,14 +1958,6 @@ void si_pipe_shader_ps(struct pipe_context *ctx, struct si_pipe_shader *shader) exports_ps = 2; } - if (ninterp == 0) { - ninterp = 1; - have_perspective = TRUE; - } - - if (!have_perspective && !have_linear) - have_perspective = TRUE; - spi_ps_in_control = S_0286D8_NUM_INTERP(ninterp); spi_baryc_cntl = 0;