Mesa (master): radeonsi: Improve calculation of number of pixel shader interpolants.
Michel Dänzer
daenzer at kemper.freedesktop.org
Wed Apr 18 02:02:14 PDT 2012
Module: Mesa
Branch: master
Commit: 0ef90e52d1c1898ae1e4618536a85622689c0b19
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ef90e52d1c1898ae1e4618536a85622689c0b19
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Wed Apr 18 10:44:03 2012 +0200
radeonsi: Improve calculation of number of pixel shader interpolants.
---
src/gallium/drivers/radeonsi/evergreen_state.c | 30 +++++------------------
1 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/evergreen_state.c b/src/gallium/drivers/radeonsi/evergreen_state.c
index 5048761..99cbbed 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;
More information about the mesa-commit
mailing list