This stops the offset being bumped again when and an explicit alignment has already been applied.
Fixes alignment issues in: GL44-CTS.enhanced_layouts.uniform_block_alignment Note the test still fails due to unrelated issues with doubles. --- src/compiler/glsl/ast_to_hir.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index b6db669..a2eb32d 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -6790,9 +6790,7 @@ ast_process_struct_or_iface_block_members(exec_list *instructions, fields[i].offset = glsl_align(offset, expl_align); next_offset = glsl_align(fields[i].offset + size, align); } - } - - if (!qual->flags.q.explicit_offset) { + } else if (!qual->flags.q.explicit_offset) { if (align != 0 && size != 0) next_offset = glsl_align(next_offset + size, align); } -- 2.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev