Fix YUV allocation table.
Change-Id: Ia6265c7eb2fa60f6789eb43b3e03fdfe8327dd7e
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 248e7b6..9a40756 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -317,7 +317,13 @@
size_t o = alloc->mHal.drvState.lod[0].stride * rsMax(alloc->mHal.drvState.lod[0].dimY, 1u) *
rsMax(alloc->mHal.drvState.lod[0].dimZ, 1u);
- if(alloc->mHal.drvState.lodCount > 1) {
+ if (alloc->mHal.state.yuv) {
+ o += DeriveYUVLayout(alloc->mHal.state.yuv, &alloc->mHal.drvState);
+
+ for (uint32_t ct = 1; ct < alloc->mHal.drvState.lodCount; ct++) {
+ offsets[ct] = (size_t)alloc->mHal.drvState.lod[ct].mallocPtr;
+ }
+ } else if(alloc->mHal.drvState.lodCount > 1) {
uint32_t tx = alloc->mHal.drvState.lod[0].dimX;
uint32_t ty = alloc->mHal.drvState.lod[0].dimY;
uint32_t tz = alloc->mHal.drvState.lod[0].dimZ;
@@ -333,12 +339,6 @@
if (ty > 1) ty >>= 1;
if (tz > 1) tz >>= 1;
}
- } else if (alloc->mHal.state.yuv) {
- o += DeriveYUVLayout(alloc->mHal.state.yuv, &alloc->mHal.drvState);
-
- for (uint32_t ct = 1; ct < alloc->mHal.drvState.lodCount; ct++) {
- offsets[ct] = (size_t)alloc->mHal.drvState.lod[ct].mallocPtr;
- }
}
alloc->mHal.drvState.faceOffset = o;