summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorVadim Girlin <[email protected]>2011-06-13 05:43:47 +0400
committerDave Airlie <[email protected]>2011-06-14 09:17:16 +1000
commit9346d895e7ff6c1f01b46513694542026ffba5cc (patch)
tree4f1735a26a30790ee3959ef2b002eb4807b7deee /src/gallium
parent2743851c1a73305dd83e42b99edc49906d9c0a51 (diff)
r600g: skip SPI setup for position and face inputs
fixes fdo bug 38145 Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r600/r600_shader.c4
-rw-r--r--src/gallium/drivers/r600/r600_state_common.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index d111caa6449..1b9f66318e1 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -63,10 +63,6 @@ int r600_find_vs_semantic_index(struct r600_shader *vs,
{
struct r600_shader_io *input = &ps->input[id];
- /* position/face doesn't get/need a semantic index */
- if (input->name == TGSI_SEMANTIC_POSITION || input->name == TGSI_SEMANTIC_FACE)
- return 0;
-
for (int i = 0; i < vs->noutput; i++) {
if (input->name == vs->output[i].name &&
input->sid == vs->output[i].sid) {
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index d58c1f0656c..fa0c5cb89d7 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -358,6 +358,10 @@ static void r600_spi_update(struct r600_pipe_context *rctx)
rstate->nregs = 0;
for (i = 0; i < rshader->ninput; i++) {
+ if (rshader->input[i].name == TGSI_SEMANTIC_POSITION ||
+ rshader->input[i].name == TGSI_SEMANTIC_FACE)
+ continue;
+
tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(&rctx->vs_shader->shader, rshader, i));
if (rshader->input[i].name == TGSI_SEMANTIC_COLOR ||