Module: Mesa Branch: master Commit: 16c0a3a9720c03c3d5cbfd66e2db63014dfc4f19 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=16c0a3a9720c03c3d5cbfd66e2db63014dfc4f19
Author: Vadim Girlin <[email protected]> Date: Wed Nov 2 11:50:59 2011 +0400 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 <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- src/gallium/drivers/r600/r600_shader.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) 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; } _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
