_mental_ wrote:The result of r13+r9*1+0x0 (or simply r13+r9) is 0x1848193.
I believe it must be 16-bytes aligned to work.
Hmm, yes, that instruction must use 16-byte aligned addresses to work.
Here's another guy having a similar type of crash:
http://pzemtsov.github.io/2016/11/06/bu ... n-x86.html. The compiler assumes that any uint32_t is 4 byte aligned. When it generates the SSE optimized code, it makes sure it is 16-byte aligned, but
only if the original assumption that it was already 4 byte aligned is correct.
Could it be that one of our pointers are not properly dword aligned?
Edit: I found this information about
glMapBuffer: "Alignment of the returned pointer is guaranteed only if the version of the GL version is 4.2 or greater." So we could very well have an alignment issue at this spot.
[quote="_mental_"]The result of [b]r13+r9*1+0x0[/b] (or simply [b]r13+r9[/b]) is [b]0x1848193[/b].
I believe it must be 16-bytes aligned to work.[/quote]
Hmm, yes, that instruction must use 16-byte aligned addresses to work.
Here's another guy having a similar type of crash: [url]http://pzemtsov.github.io/2016/11/06/bug-story-alignment-on-x86.html[/url]. The compiler assumes that any uint32_t is 4 byte aligned. When it generates the SSE optimized code, it makes sure it is 16-byte aligned, but [i]only[/i] if the original assumption that it was already 4 byte aligned is correct.
Could it be that one of our pointers are not properly dword aligned?
Edit: I found this information about [url=https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glMapBuffer.xhtml]glMapBuffer[/url]: "Alignment of the returned pointer is guaranteed only if the version of the GL version is 4.2 or greater." So we could very well have an alignment issue at this spot.