From: Timothy Arceri Date: Sat, 28 May 2016 01:40:22 +0000 (+1000) Subject: glsl: fix explicit uniform block alignment X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8f4ac20b6fc29b7739b2eb909491316bc51ca1c3;p=mesa.git glsl: fix explicit uniform block alignment 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. Reviewed-by: Eduardo Lima Mitev --- diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index e1e26f8f6ac..c3af715b934 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -6811,9 +6811,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); }