[Mesa-dev] [PATCH] glsl: Disallow unsized array of atomic_uint
Iago Toral
itoral at igalia.com
Tue Sep 12 07:06:18 UTC 2017
On Tue, 2017-09-12 at 00:03 -0700, Kenneth Graunke wrote:
> On Monday, September 11, 2017 11:15:05 PM PDT Iago Toral Quiroga
> wrote:
> > This was a bugfix to the spec addressed in OpenGL 4.5 and there is
> > a CTS test to check this.
> >
> > Fixes:
> > KHR-GL45.shader_atomic_counters.negative-unsized-array
> > ---
> > src/compiler/glsl/ast_to_hir.cpp | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/src/compiler/glsl/ast_to_hir.cpp
> > b/src/compiler/glsl/ast_to_hir.cpp
> > index 98d2f94e12..81eeec103b 100644
> > --- a/src/compiler/glsl/ast_to_hir.cpp
> > +++ b/src/compiler/glsl/ast_to_hir.cpp
> > @@ -5542,6 +5542,17 @@ ast_declarator_list::hir(exec_list
> > *instructions,
> > "GLSL ES");
> > }
> >
> > + /* Section 4.4.6.1 Atomic Counter Layout Qualifiers of the
> > GLSL 4.50 spec:
>
> Maybe:
>
> "of the 4.50 revision 7 spec says:"
>
> since only the latest version of 4.5 says this? Or just quote 4.6 :)
Good catch, I'll fix this.
> > + *
> > + * "It is a compile-time error to declare an unsized
> > array of
> > + * atomic_uint"
> > + */
> > + if (var->type->is_unsized_array() &&
> > + var->type->without_array()->base_type ==
> > GLSL_TYPE_ATOMIC_UINT) {
> > + _mesa_glsl_error(& loc, state,
> > + "Unsized array of atomic_uint is not
> > allowed");
> > + }
> > +
> > /* If the declaration is not a redeclaration, there are a
> > few additional
> > * semantic checks that must be applied. In addition,
> > variable that was
> > * created for the declaration should be added to the IR
> > stream.
> >
>
> Either way,
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Thanks!
More information about the mesa-dev
mailing list