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 <zackr@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
0a70fdfb3f
commit
978d5ed06b
|
@ -128,6 +128,13 @@ draw_emit_vertex_attr(struct vertex_info *vinfo,
|
||||||
int src_index)
|
int src_index)
|
||||||
{
|
{
|
||||||
const uint n = vinfo->num_attribs;
|
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));
|
assert(n < Elements(vinfo->attrib));
|
||||||
vinfo->attrib[n].emit = emit;
|
vinfo->attrib[n].emit = emit;
|
||||||
vinfo->attrib[n].interp_mode = interp;
|
vinfo->attrib[n].interp_mode = interp;
|
||||||
|
|
Loading…
Reference in New Issue