[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