diff options
author | Alex Deucher <[email protected]> | 2011-11-04 18:33:31 -0400 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2011-11-04 18:33:31 -0400 |
commit | df121b868a13e7ca76f19d1488b625c02d632a47 (patch) | |
tree | a17bcccfa62933d10926e28045ffa30ddecbe7f4 /src/gallium/drivers/r600/evergreen_state.c | |
parent | 9212637f34c6600daaf162f95ca49e3c42abbc40 (diff) |
Revert "r600g: precalculate semantic indices for SPI setup"
This reverts commit c15f8569fddac5f8aee77863922fd5bb992cfe8a.
This breaks r6xx.
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_state.c')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 904267da1bd..fd2e5da8664 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -2375,20 +2375,20 @@ void evergreen_pipe_shader_vs(struct pipe_context *ctx, struct r600_pipe_shader struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx; struct r600_pipe_state *rstate = &shader->rstate; struct r600_shader *rshader = &shader->shader; - unsigned spi_vs_out_id[10] = {}; - unsigned i, tmp, nparams = 0; + unsigned spi_vs_out_id[10]; + unsigned i, tmp, nparams; /* clear previous register */ rstate->nregs = 0; - for (i = 0; i < rshader->noutput; i++) { - if (rshader->output[i].spi_sid) { - tmp = rshader->output[i].spi_sid << ((nparams & 3) * 8); - spi_vs_out_id[nparams / 4] |= tmp; - nparams++; - } + /* so far never got proper semantic id from tgsi */ + for (i = 0; i < 10; i++) { + spi_vs_out_id[i] = 0; + } + for (i = 0; i < 32; i++) { + tmp = i << ((i & 3) * 8); + spi_vs_out_id[i / 4] |= tmp; } - for (i = 0; i < 10; i++) { r600_pipe_state_add_reg(rstate, R_02861C_SPI_VS_OUT_ID_0 + i * 4, @@ -2399,6 +2399,7 @@ void evergreen_pipe_shader_vs(struct pipe_context *ctx, struct r600_pipe_shader * VS is required to export at least one param and r600_shader_from_tgsi() * takes care of adding a dummy export. */ + nparams = rshader->noutput - rshader->npos; if (nparams < 1) nparams = 1; |