Mesa (10.3): glsl: Round struct size up to at least 16 bytes
Emil Velikov
evelikov at kemper.freedesktop.org
Sat Sep 27 18:07:40 UTC 2014
Module: Mesa
Branch: 10.3
Commit: d556ed889d656639dc26d82d0d54467cb57210af
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d556ed889d656639dc26d82d0d54467cb57210af
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Wed Sep 10 10:54:55 2014 -0700
glsl: Round struct size up to at least 16 bytes
Per rule #9, the size of the structure is vec4 aligned. The MAX2 in the
loop ensures that sizes >= 16 bytes are vec4 aligned. The new MAX2
after the loop ensures that sizes < 16 bytes are vec4 aligned.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82932
Cc: mesa-stable at lists.freedesktop.org
(cherry picked from commit 2ab71e1486e76722154b48faef8216ff8173fd30)
---
src/glsl/glsl_types.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 66e9b13..56b96f5 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -965,7 +965,7 @@ glsl_type::std140_size(bool row_major) const
if (field_type->is_record() && (i + 1 < this->length))
size = glsl_align(size, 16);
}
- size = glsl_align(size, max_align);
+ size = glsl_align(size, MAX2(max_align, 16));
return size;
}
More information about the mesa-commit
mailing list