Mesa (master): draw: Ensure that the vertex_header type size matches expectation.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Mon Jun 18 11:06:58 UTC 2012


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Fri Jun 15 14:02:31 2012 +0100

draw: Ensure that the vertex_header type size matches expectation.

This is failing sometimes, probably because TargetData keeps a structure layout
cache, which can becomes bogus, ever since the InvalidateStructLayoutInfo API
was removed in LLVM r135245.

This change merely makes the problem easier to diagnose (an assertion
failure instead of a random crash).

---

 src/gallium/auxiliary/draw/draw_llvm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
index 4058e11..e1df2f1 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
@@ -305,6 +305,9 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
                           target, vertex_header,
                           DRAW_JIT_VERTEX_DATA);
 
+   assert(LLVMABISizeOfType(target, vertex_header) ==
+          offsetof(struct vertex_header, data[data_elems]));
+
    return vertex_header;
 }
 




More information about the mesa-commit mailing list