summaryrefslogtreecommitdiffstats
path: root/rsComponent.cpp
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2011-11-15 15:15:21 -0800
committerAlex Sakhartchouk <alexst@google.com>2011-11-15 15:15:21 -0800
commit2d1220c27ae91f0b307f283fe66cb767b63dfe38 (patch)
treeb2a90e5296b22469df9f43d2b0c9097eca90a9ab /rsComponent.cpp
parent795e405d18a2523ab81bcad47e3256ad66aefb24 (diff)
downloadandroid_frameworks_rs-2d1220c27ae91f0b307f283fe66cb767b63dfe38.tar.gz
android_frameworks_rs-2d1220c27ae91f0b307f283fe66cb767b63dfe38.tar.bz2
android_frameworks_rs-2d1220c27ae91f0b307f283fe66cb767b63dfe38.zip
Expand RS vector3 types to vector4.
BUG=5609007 The underlying LLVM implementation for vector3 types does this implicitly. If RS does not adjust its implementation, we will always be misaligned for any subsequent data after a vector3 type. We previously inserted padding into the reflected layers from llvm-rs-cc (hence the skip padding part of this change). We can safely ignore the padding now that the Java/native code is updated to use the expanded size. The compiler will also need modification to ensure that we don't mistakenly skip over any end-of-struct padding. Fixing the 3 component vector padding problem. Change-Id: If68af42287deb8f4b28addcd19a9fa314656be44
Diffstat (limited to 'rsComponent.cpp')
-rw-r--r--rsComponent.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/rsComponent.cpp b/rsComponent.cpp
index 7d9cf0ba..21b98f61 100644
--- a/rsComponent.cpp
+++ b/rsComponent.cpp
@@ -169,7 +169,8 @@ void Component::set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize) {
break;
}
- mBits = mTypeBits * mVectorSize;
+ mBitsUnpadded = mTypeBits * mVectorSize;
+ mBits = mTypeBits * rsHigherPow2(mVectorSize);
}
bool Component::isReference() const {