On Friday, January 8, 2016 10:15:58 AM PST Timothy Arceri wrote: > This change checks for component overlap, including handling overlap of > locations and components by doubles. Previously there was no validation > for assigning explicit locations to a location used by the second half > of a double. > > V3: simplify handling of doubles and fix double component aliasing > detection > > V2: fix component matching for matricies > > Cc: Anuj Phogat <anuj.pho...@gmail.com> > --- > src/glsl/link_varyings.cpp | 63 +++++++++++++++++++++++++++++++++++++ +-------- > 1 file changed, 52 insertions(+), 11 deletions(-) > > diff --git a/src/glsl/link_varyings.cpp b/src/glsl/link_varyings.cpp > index 6a9ee94..03c131a 100644 > --- a/src/glsl/link_varyings.cpp > +++ b/src/glsl/link_varyings.cpp > @@ -222,7 +222,7 @@ cross_validate_outputs_to_inputs(struct gl_shader_program *prog, > gl_shader *producer, gl_shader *consumer) > { > glsl_symbol_table parameters; > - ir_variable *explicit_locations[MAX_VARYING] = { NULL, }; > + ir_variable *explicit_locations[MAX_VARYING][4] = { {NULL, NULL} }; > > /* Find all shader outputs in the "producer" stage. > */ > @@ -243,18 +243,59 @@ cross_validate_outputs_to_inputs(struct gl_shader_program *prog, > unsigned num_elements = type->count_attribute_slots(false); > unsigned idx = var->data.location - VARYING_SLOT_VAR0; > unsigned slot_limit = idx + num_elements; > + unsigned last_comp; > + > + if (var->type->without_array()->is_record()) { > + /* The componet qualifier can't be used on structs so just treat
^^^ component Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev