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>
This commit is contained in:
Timothy Arceri
2016-05-28 11:40:22 +10:00
parent 7398a32c50
commit 8f4ac20b6f
+1 -3
View File
@@ -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);
}