From: Zack Rusin Date: Thu, 30 May 2013 17:48:36 +0000 (-0400) Subject: draw: fix vs/fs input/output mismatches X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=978d5ed06bfc3d87a4b1ca1981caeeaa88de2790;p=mesa.git 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 Reviewed-by: José Fonseca --- 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;