On Thu, 2016-08-11 at 13:43 -0700, Kenneth Graunke wrote: > The previous commit fixed xfb_buffer handling, which was largely copy > and pasted from the stream handling. The difference is that stream > was set in input_layout_mask, so it worked. > > However, that's totally rubbish: stream is only valid on geometry > shader > outputs. Presumably this was to hack around inout. Instead, apply > the > solution I used in the previous fix. > > Really, we just need to separate shader interface and parameter > qualifier handling so this isn't a mess, but this patch at least > tidies it slightly.
Agreed. I added a FIXME for this when I added input_layout_mask. Anyway thanks for fixing this up. Series: Reviewed-by: Timothy Arceri <[email protected]> > > Cc: Timothy Arceri <[email protected]> > Signed-off-by: Kenneth Graunke <[email protected]> > --- > src/compiler/glsl/ast_type.cpp | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/src/compiler/glsl/ast_type.cpp > b/src/compiler/glsl/ast_type.cpp > index 248b647..cabc698 100644 > --- a/src/compiler/glsl/ast_type.cpp > +++ b/src/compiler/glsl/ast_type.cpp > @@ -178,8 +178,6 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, > if (state->stage == MESA_SHADER_GEOMETRY) { > allowed_duplicates_mask.flags.i |= > stream_layout_mask.flags.i; > - input_layout_mask.flags.i |= > - stream_layout_mask.flags.i; > } > > if (is_single_layout_merge && !state->has_enhanced_layouts() && > @@ -229,7 +227,8 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, > if (q.flags.q.stream) { > this->flags.q.stream = 1; > this->stream = q.stream; > - } else if (!this->flags.q.stream && this->flags.q.out) { > + } else if (!this->flags.q.stream && this->flags.q.out && > + !this->flags.q.in) { > /* Assign default global stream value */ > this->flags.q.stream = 1; > this->stream = state->out_qualifier->stream; _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
