summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <timothy.arceri@collabora.com>2016-05-28 11:40:22 +1000
committerTimothy Arceri <timothy.arceri@collabora.com>2016-05-30 11:01:32 +1000
commit8f4ac20b6fc29b7739b2eb909491316bc51ca1c3 (patch)
tree26f3e9b63309618968274ad711465196a9d806dd
parent7398a32c501ed7fedb5619ee7505f9070551d4bd (diff)
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 <elima@igalia.com>
-rw-r--r--src/compiler/glsl/ast_to_hir.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index e1e26f8f6a..c3af715b93 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);
}