Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com>
On Sun, 2016-02-14 at 20:28 +1100, Timothy Arceri wrote: > If the following patch we will stop setting these layouts by default > on interface blocks, so we need to do this to avoid hitting the > assert. > --- > src/compiler/glsl/ast_to_hir.cpp | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/src/compiler/glsl/ast_to_hir.cpp > b/src/compiler/glsl/ast_to_hir.cpp > index 988b1e2..cf42abb 100644 > --- a/src/compiler/glsl/ast_to_hir.cpp > +++ b/src/compiler/glsl/ast_to_hir.cpp > @@ -6490,8 +6490,10 @@ > ast_process_struct_or_iface_block_members(exec_list *instructions, > * the structure may contain a structure that contains ... > a matrix > * that need the proper layout. > */ > - if (field_type->without_array()->is_matrix() > - || field_type->without_array()->is_record()) { > + if (is_interface && > + (layout->flags.q.uniform || layout->flags.q.buffer) && > + (field_type->without_array()->is_matrix() > + || field_type->without_array()->is_record())) { > /* If no layout is specified for the field, inherit the > layout > * from the block. > */ > @@ -6502,11 +6504,10 @@ > ast_process_struct_or_iface_block_members(exec_list *instructions, > else if (qual->flags.q.column_major) > fields[i].matrix_layout = > GLSL_MATRIX_LAYOUT_COLUMN_MAJOR; > > - /* If we're processing an interface block, the matrix > layout must > - * be decided by this point. > + /* If we're processing an uniform or buffer block, the > matrix > + * layout must be decided by this point. > */ > - assert(!is_interface > - || fields[i].matrix_layout == > GLSL_MATRIX_LAYOUT_ROW_MAJOR > + assert(fields[i].matrix_layout == > GLSL_MATRIX_LAYOUT_ROW_MAJOR > || fields[i].matrix_layout == > GLSL_MATRIX_LAYOUT_COLUMN_MAJOR); > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev