[Mesa-dev] [PATCH 4/9] glsl: Add array specifier to ast code
Timothy Arceri
t_arceri at yahoo.com.au
Mon Jan 20 01:50:43 PST 2014
On Sat, 2014-01-18 at 14:57 +1100, Timothy Arceri wrote:
> > >
> > > diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> > > index 21dc3ab..92076b5 100644
> > > --- a/src/glsl/glsl_parser_extras.cpp
> > > +++ b/src/glsl/glsl_parser_extras.cpp
> > > @@ -484,6 +484,7 @@ struct _mesa_glsl_extension {
> > > static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
> > > /* API availability */
> > > /* name GL ES supported flag */
> > > + EXT(ARB_arrays_of_arrays, true, false, ARB_arrays_of_arrays),
> > > EXT(ARB_conservative_depth, true, false, ARB_conservative_depth),
> > > EXT(ARB_draw_buffers, true, false, dummy_true),
> > > EXT(ARB_draw_instanced, true, false, ARB_draw_instanced),
> > > @@ -769,7 +770,7 @@ _mesa_ast_set_aggregate_type(const ast_type_specifier *type,
> > > link);
> > >
> > > bool is_array = decl_list->type->specifier->is_array;
> > > - ast_expression *array_size = decl_list->type->specifier->array_size;
> > > + ast_array_specifier *array_specifier = decl_list->type->specifier->array_specifier;
> > >
> > > /* Recognize variable declarations with the bracketed size attached
> > > * to the type rather than the variable name as arrays. E.g.,
> > > @@ -777,19 +778,18 @@ _mesa_ast_set_aggregate_type(const ast_type_specifier *type,
> > > * float a[2];
> > > * float[2] b;
> > > *
> > > - * are both arrays, but <a>'s array_size is decl->array_size, while
> > > - * <b>'s array_size is decl_list->type->specifier->array_size.
> > > + * are both arrays, but <a>'s array_specifier is decl->array_specifier, while
> > > + * <b>'s array_specifier is decl_list->type->specifier->array_specifier.
> > > */
> > > if (!is_array) {
> > > - /* FINISHME: Update when ARB_array_of_arrays is supported. */
> >
> > There's another identical FINISHME in this function that I don't see
> > in this patch.
> >
> > > is_array = decl->is_array;
> > > - array_size = decl->array_size;
> > > + array_specifier = decl->array_specifier;
> > > }
> >
> > I don't think this is going to work for
> >
> > float[2] a[3]
> >
> > will it? is_array will be true, but the whole array_specifier won't be complete.
> >
>
> The arrays of arrays support is added in patch 7. These changes are just
> to get things working with new array specifier. I should have left the
> TODO removal until patch 7.
I meant to say: The FULL arrays of arrays support is added in patch 7
More information about the mesa-dev
mailing list