This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 05/16/2016 05:33 PM, Dave Airlie wrote: > From: Dave Airlie <airl...@redhat.com> > > This is my attempt at fixing at least one of the UE4 bugs with GL4.3. > > If we are doing intrastage matching and hit anonymous structs, then > we should do a record comparison instead of using the names. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95005 > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/compiler/glsl/link_varyings.cpp | 24 +++++++++++++++--------- > 1 file changed, 15 insertions(+), 9 deletions(-) > > diff --git a/src/compiler/glsl/link_varyings.cpp > b/src/compiler/glsl/link_varyings.cpp > index 003b9d4..9ae5791 100644 > --- a/src/compiler/glsl/link_varyings.cpp > +++ b/src/compiler/glsl/link_varyings.cpp > @@ -226,15 +226,21 @@ cross_validate_types_and_qualifiers(struct > gl_shader_program *prog, > * fragment language." > */ > if (!output->type->is_array() || !is_gl_identifier(output->name)) { > - linker_error(prog, > - "%s shader output `%s' declared as type `%s', " > - "but %s shader input declared as type `%s'\n", > - _mesa_shader_stage_to_string(producer_stage), > - output->name, > - output->type->name, > - _mesa_shader_stage_to_string(consumer_stage), > - input->type->name); > - return; > + bool anon_matches = output->type->is_anonymous() && > + type_to_match->is_anonymous() && > + type_to_match->record_compare(output->type); > + > + if (!anon_matches) { > + linker_error(prog, > + "%s shader output `%s' declared as type `%s', " > + "but %s shader input declared as type `%s'\n", > + _mesa_shader_stage_to_string(producer_stage), > + output->name, > + output->type->name, > + _mesa_shader_stage_to_string(consumer_stage), > + input->type->name); > + return; > + } > } > } > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev