On Mon, Dec 28, 2015 at 9:00 PM, Timothy Arceri <timothy.arc...@collabora.com> wrote: > This will also be used by tessellation packing code > in a following patch. > --- > src/glsl/lower_packed_varyings.cpp | 45 > +++++++++++++++++++++++++------------- > 1 file changed, 30 insertions(+), 15 deletions(-) > > diff --git a/src/glsl/lower_packed_varyings.cpp > b/src/glsl/lower_packed_varyings.cpp > index 08d6447..b606cc8 100644 > --- a/src/glsl/lower_packed_varyings.cpp > +++ b/src/glsl/lower_packed_varyings.cpp > @@ -180,6 +180,31 @@ needs_lowering(ir_variable *var, bool > has_enhanced_layouts, > return true; > } > > +static ir_variable * > +create_packed_var(void * const mem_ctx, const char *packed_name, > + const glsl_type *packed_type, ir_variable *unpacked_var, > + ir_variable_mode mode, unsigned location, > + bool is_outer_array_vert_idx) > +{ > + ir_variable *packed_var = new(mem_ctx) > + ir_variable(packed_type, packed_name, mode); > + if (is_outer_array_vert_idx) { > + /* Prevent update_array_sizes() from messing with the size of the > + * array. > + */ > + packed_var->data.max_array_access = unpacked_var->type->length - 1; > + } > + packed_var->data.centroid = unpacked_var->data.centroid; > + packed_var->data.sample = unpacked_var->data.sample; > + packed_var->data.patch = unpacked_var->data.patch; > + packed_var->data.interpolation = unpacked_var->data.interpolation; > + packed_var->data.location = location; > + packed_var->data.precision = unpacked_var->data.precision; > + packed_var->data.always_active_io = unpacked_var->data.always_active_io; > + > + return packed_var; > +} > + > namespace { > > /** > @@ -665,21 +690,11 @@ lower_packed_varyings_visitor::get_packed_varying_deref( > glsl_type::get_array_instance(packed_type, > unpacked_var->type->length); > } > - ir_variable *packed_var = new(this->mem_ctx) > - ir_variable(packed_type, packed_name, this->mode); > - if (this->is_outer_array_vert_idx) { > - /* Prevent update_array_sizes() from messing with the size of the > - * array. > - */ > - packed_var->data.max_array_access = unpacked_var->type->length - 1; > - } > - packed_var->data.centroid = unpacked_var->data.centroid; > - packed_var->data.sample = unpacked_var->data.sample; > - packed_var->data.patch = unpacked_var->data.patch; > - packed_var->data.interpolation = unpacked_var->data.interpolation; > - packed_var->data.location = location; > - packed_var->data.precision = unpacked_var->data.precision; > - packed_var->data.always_active_io = > unpacked_var->data.always_active_io; > + > + ir_variable *packed_var = > + create_packed_var(mem_ctx, packed_name, packed_type, unpacked_var, > + this->mode, location, > + this->is_outer_array_vert_idx); > unpacked_var->insert_before(packed_var); > this->packed_varyings[slot] = packed_var; > } else { > -- > 2.4.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev