Mesa (master): Revert "gallium: Force blend color to 16-byte alignment"

Tim Rowley torowley at kemper.freedesktop.org
Wed Jul 13 18:57:49 UTC 2016


Module: Mesa
Branch: master
Commit: 29f53d793781b67a92bb95fe66d7d38adc5488bb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=29f53d793781b67a92bb95fe66d7d38adc5488bb

Author: Tim Rowley <timothy.o.rowley at intel.com>
Date:   Wed Jul 13 10:30:46 2016 -0500

Revert "gallium: Force blend color to 16-byte alignment"

This reverts commit d8d6091a846ac2a40a011d512d6d57f6c8442e6a.

Heap allocations may be only 8-byte aligned on 32-bit system, and so having
members with 16-byte alignment (such as in the case where pipe_blend_color is
embedded in radeonsi's si_context) is undefined behavior which indeed causes
crashes when compiled with gcc -O3.

Cc: <mesa-stable at lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96835
Signed-off-by: Tim Rowley <timothy.o.rowley at intel.com>
Acked-by: Chuck Atkins <chuck.atkins at kitware.com>

---

 src/gallium/include/pipe/p_state.h | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index a73a771..a3ae870 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -326,17 +326,7 @@ struct pipe_blend_state
 
 struct pipe_blend_color
 {
-   /**
-    * Making the color array explicitly 16-byte aligned provides a hint to
-    * compilers to make more efficient auto-vectorization optimizations.
-    * The actual performance gains from vectorizing the blend color array are
-    * fairly minimal, if any, but the alignment is necessary to work around
-    * buggy vectorization in some compilers which fail to generate the correct
-    * unaligned accessors resulting in a segfault.  Specifically several
-    * versions of the Intel compiler are known to be affected but it's likely
-    * others are as well.
-    */
-   PIPE_ALIGN_VAR(16) float color[4];
+   float color[4];
 };
 
 




More information about the mesa-commit mailing list