[Mesa-dev] [PATCH] glsl: simplify validation of illegal layouts on block members
Timothy Arceri
t_arceri at yahoo.com.au
Thu Nov 12 16:54:14 PST 2015
On Thu, 2015-11-12 at 13:59 +0100, Iago Toral wrote:
> On Thu, 2015-11-12 at 16:13 +1100, Timothy Arceri wrote:
> > From: Timothy Arceri <timothy.arceri at collabora.com>
> >
> > We already give the location of the qualifier so there is
> > no need to list all the identifiers in the error message.
>
> However, there can be multiple layout qualifiers in the same declaration
> and in that case, with this change, the user can't tell which one caused
> this error.
Right the location is not for the qualifier as I thought it was in fact its
for the block itself. Ignore this patch I have some new ones on the way.
Thanks.
>
> Iago
>
> > Also not calling the binding validation function will make things
> > much simpler when adding compile time constant support as we
> > wont need to resolve the binding value.
> > ---
> > src/glsl/ast_to_hir.cpp | 12 ++++--------
> > 1 file changed, 4 insertions(+), 8 deletions(-)
> >
> > diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
> > index 9d341e8..79bd4e7 100644
> > --- a/src/glsl/ast_to_hir.cpp
> > +++ b/src/glsl/ast_to_hir.cpp
> > @@ -5896,18 +5896,14 @@ ast_process_structure_or_interface_block(exec_list
> > *instructions,
> > const struct ast_type_qualifier *const qual =
> > & decl_list->type->qualifier;
> >
> > - if (qual->flags.q.explicit_binding)
> > - validate_binding_qualifier(state, &loc, decl_type, qual);
> > -
> > if (qual->flags.q.std140 ||
> > qual->flags.q.std430 ||
> > qual->flags.q.packed ||
> > - qual->flags.q.shared) {
> > + qual->flags.q.shared ||
> > + qual->flags.q.explicit_binding) {
> > _mesa_glsl_error(&loc, state,
> > - "uniform/shader storage block layout
> > qualifiers "
> > - "std140, std430, packed, and shared can only
> > be "
> > - "applied to uniform/shader storage blocks,
> > not "
> > - "members");
> > + "this layout qualifier can only be applied
> > to "
> > + "uniform/shader storage blocks, not
> > members");
> > }
> >
> > if (qual->flags.q.constant) {
>
>
More information about the mesa-dev
mailing list