From: Vadim Girlin Date: Wed, 2 Nov 2011 07:50:59 +0000 (+0400) Subject: r600g: take into account PSIZE output for spi mapping X-Git-Tag: mesa-8.0-rc1~1312 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16c0a3a9720c03c3d5cbfd66e2db63014dfc4f19;p=platform%2Fupstream%2Fmesa.git r600g: take into account PSIZE output for spi mapping Skip PSIZE and POSITION when counting VS outputs. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=42435 Tested without regressions on evergreen. NOTE: this is a candidate for the 7.11 branch. Signed-off-by: Vadim Girlin Signed-off-by: Alex Deucher --- diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index e193996..350ba3c 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -62,12 +62,15 @@ int r600_find_vs_semantic_index(struct r600_shader *vs, struct r600_shader *ps, int id) { struct r600_shader_io *input = &ps->input[id]; + int index = 0; for (int i = 0; i < vs->noutput; i++) { if (input->name == vs->output[i].name && - input->sid == vs->output[i].sid) { - return i - 1; - } + input->sid == vs->output[i].sid) + return index; + else if (vs->output[i].name != TGSI_SEMANTIC_POSITION && + vs->output[i].name != TGSI_SEMANTIC_PSIZE) + index++; } return 0; }