[Mesa-stable] [PATCH] llvmpipe: fix lp_rast_plane alignment on 32bit

sroland at vmware.com sroland at vmware.com
Tue Mar 15 04:41:01 UTC 2016


From: Roland Scheidegger <sroland at vmware.com>

Some rasterization code relies (for sse) on the first and third planes
(but not the second for now) being 128bit aligned, and we didn't get that
on 32bit - I mistakenly thought the 64bit number in the struct would get
the thing aligned to 64bit even on 32bit archs.
Stephane Marchesin really figured this out.

This fixes https://bugs.freedesktop.org/show_bug.cgi?id=94522

CC: <mesa-stable at lists.freedesktop.org>
---
 src/gallium/drivers/llvmpipe/lp_rast.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h
index 34008e1..d9be7f3 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast.h
@@ -116,6 +116,12 @@ struct lp_rast_plane {
 
    /* one-pixel sized trivial reject offsets for each plane */
    uint32_t eo;
+   /*
+    * We rely on this struct being 64bit aligned (ideally it would be 128bit
+    * but that's quite the waste) and therefore on 32bit we need padding
+    * since otherwise (even with the 64bit number in there) it wouldn't be.
+    */
+   uint32_t pad;
 };
 
 /**
-- 
2.1.4



More information about the mesa-stable mailing list