[Mesa-dev] [RFC PATCH 05/12] glsl: avoid hitting assert for arrays of arrays

Timothy Arceri t_arceri at yahoo.com.au
Sat Mar 21 19:48:47 PDT 2015


On Sat, 2015-03-21 at 19:30 -0400, Ilia Mirkin wrote:
> On Sat, Mar 21, 2015 at 5:49 AM, Timothy Arceri <t_arceri at yahoo.com.au> wrote:
> > Also add TODO comment about adding proper support
> >
> > Signed-off-by: Timothy Arceri <t_arceri at yahoo.com.au>
> > ---
> >  src/glsl/ir_set_program_inouts.cpp | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
> > index e877a20..49cf85d 100644
> > --- a/src/glsl/ir_set_program_inouts.cpp
> > +++ b/src/glsl/ir_set_program_inouts.cpp
> > @@ -194,6 +194,12 @@ ir_set_program_inouts_visitor::try_mark_partial_variable(ir_variable *var,
> >        type = type->fields.array;
> >     }
> >
> > +   /* TODO: implement proper arrays of arrays support
> > +    * for now let the caller mark whole variable as used.
> > +    */
> > +   if (type->is_array() && type->fields.array->is_array())
> > +      return false;
> > +
> 
> Won't this also hit the GS case even without array-of-arrays?

The code just above this takes care of the non arrays-of-arrays GS case.
For reference here is is:

   if (this->shader_stage == MESA_SHADER_GEOMETRY &&
       var->data.mode == ir_var_shader_in) {
      type = type->fields.array;
   }

> 
> The subject should reflect that this is about in/out variable liveness
> calculation.

Yes it should. Will fix.

> 
> >     /* The code below only handles:
> >      *
> >      * - Indexing into matrices
> > --
> > 2.1.0
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev




More information about the mesa-dev mailing list