Fix for unaligned reads #783
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Versions >= 3713 stream some smaller-than-
int
data toGLCommandBuffer
:bool
in the FBO case, and then there areU16
s elsewhere. Some platforms seem to be choking on the unaligned reads that result.This is the fix posted in #760. I suspect it's also what #751 is about—captures and snapshots both touch FBOs—but still waiting on word there.
This replaces the
reinterpret_cast
+ dereference with a (fixed-size, per template instantiation)memcpy()
. From various C++ discussions I've followed it sounds like all the compilers we use will do the obvious (safe) peephole optimization here.