diff options
author | Zack Rusin <[email protected]> | 2013-05-30 13:48:36 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-05-30 15:34:19 -0400 |
commit | 978d5ed06bfc3d87a4b1ca1981caeeaa88de2790 (patch) | |
tree | 6466672fb18e70e5c0a43bea818c3388a5fb6b26 | |
parent | 0a70fdfb3ffe2b03c037c64076fe4c6d3e8a0fe5 (diff) |
draw: fix vs/fs input/output mismatches
When we've changed draw_find_shader_output to return -1 instead
of 0 on non found attribs we broke the default behavior of
draw, which was to always redirect those to the first (0th) slot.
To preserve that behavior if draw_emit_vertex_attr notices a
mismatched vertex attrib, it just redirects it to the first slot
(instead of trying to use negative index in an array).
Signed-off-by: Zack Rusin <[email protected]>
Reviewed-by: José Fonseca <[email protected]>
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vertex.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vertex.h b/src/gallium/auxiliary/draw/draw_vertex.h index 9e10ada1a59..2e726e0c36d 100644 --- a/src/gallium/auxiliary/draw/draw_vertex.h +++ b/src/gallium/auxiliary/draw/draw_vertex.h @@ -128,6 +128,13 @@ draw_emit_vertex_attr(struct vertex_info *vinfo, int src_index) { const uint n = vinfo->num_attribs; + + /* If the src_index is negative, meaning it hasn't been found + * lets just redirect it to the first output slot */ + if (src_index < 0) { + src_index = 0; + } + assert(n < Elements(vinfo->attrib)); vinfo->attrib[n].emit = emit; vinfo->attrib[n].interp_mode = interp; |