Cleanup of ForEachParams in cpu ref
Change-Id: I8cc51915b2a605c240d98e3010619b741a13bae2
diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index cfb6da2..f312866 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -1013,9 +1013,9 @@
const Allocation *ain0 = ains[0];
const Type *inType = ain0->getType();
- mtls->fep.dimX = inType->getDimX();
- mtls->fep.dimY = inType->getDimY();
- mtls->fep.dimZ = inType->getDimZ();
+ mtls->fep.dim.x = inType->getDimX();
+ mtls->fep.dim.y = inType->getDimY();
+ mtls->fep.dim.z = inType->getDimZ();
for (int Index = inLen; --Index >= 1;) {
if (!ain0->hasSameDims(ains[Index])) {
@@ -1029,9 +1029,9 @@
} else if (aout != nullptr) {
const Type *outType = aout->getType();
- mtls->fep.dimX = outType->getDimX();
- mtls->fep.dimY = outType->getDimY();
- mtls->fep.dimZ = outType->getDimZ();
+ mtls->fep.dim.x = outType->getDimX();
+ mtls->fep.dim.y = outType->getDimY();
+ mtls->fep.dim.z = outType->getDimZ();
} else {
mCtx->getContext()->setError(RS_ERROR_BAD_SCRIPT,
@@ -1049,35 +1049,35 @@
}
if (!sc || (sc->xEnd == 0)) {
- mtls->xEnd = mtls->fep.dimX;
+ mtls->xEnd = mtls->fep.dim.x;
} else {
- rsAssert(sc->xStart < mtls->fep.dimX);
- rsAssert(sc->xEnd <= mtls->fep.dimX);
+ rsAssert(sc->xStart < mtls->fep.dim.x);
+ rsAssert(sc->xEnd <= mtls->fep.dim.x);
rsAssert(sc->xStart < sc->xEnd);
- mtls->xStart = rsMin(mtls->fep.dimX, sc->xStart);
- mtls->xEnd = rsMin(mtls->fep.dimX, sc->xEnd);
+ mtls->xStart = rsMin(mtls->fep.dim.x, sc->xStart);
+ mtls->xEnd = rsMin(mtls->fep.dim.x, sc->xEnd);
if (mtls->xStart >= mtls->xEnd) return;
}
if (!sc || (sc->yEnd == 0)) {
- mtls->yEnd = mtls->fep.dimY;
+ mtls->yEnd = mtls->fep.dim.y;
} else {
- rsAssert(sc->yStart < mtls->fep.dimY);
- rsAssert(sc->yEnd <= mtls->fep.dimY);
+ rsAssert(sc->yStart < mtls->fep.dim.y);
+ rsAssert(sc->yEnd <= mtls->fep.dim.y);
rsAssert(sc->yStart < sc->yEnd);
- mtls->yStart = rsMin(mtls->fep.dimY, sc->yStart);
- mtls->yEnd = rsMin(mtls->fep.dimY, sc->yEnd);
+ mtls->yStart = rsMin(mtls->fep.dim.y, sc->yStart);
+ mtls->yEnd = rsMin(mtls->fep.dim.y, sc->yEnd);
if (mtls->yStart >= mtls->yEnd) return;
}
if (!sc || (sc->zEnd == 0)) {
- mtls->zEnd = mtls->fep.dimZ;
+ mtls->zEnd = mtls->fep.dim.z;
} else {
- rsAssert(sc->zStart < mtls->fep.dimZ);
- rsAssert(sc->zEnd <= mtls->fep.dimZ);
+ rsAssert(sc->zStart < mtls->fep.dim.z);
+ rsAssert(sc->zEnd <= mtls->fep.dim.z);
rsAssert(sc->zStart < sc->zEnd);
- mtls->zStart = rsMin(mtls->fep.dimZ, sc->zStart);
- mtls->zEnd = rsMin(mtls->fep.dimZ, sc->zEnd);
+ mtls->zStart = rsMin(mtls->fep.dim.z, sc->zStart);
+ mtls->zEnd = rsMin(mtls->fep.dim.z, sc->zEnd);
if (mtls->zStart >= mtls->zEnd) return;
}
@@ -1089,52 +1089,28 @@
rsAssert(inLen == 0 || (ains[0]->getType()->getDimZ() == 0));
mtls->rsc = mCtx;
- mtls->ains = ains;
- mtls->aout = aout;
+ if (ains) {
+ memcpy(mtls->ains, ains, inLen * sizeof(ains[0]));
+ }
+ mtls->aout[0] = aout;
mtls->fep.usr = usr;
mtls->fep.usrLen = usrLen;
mtls->mSliceSize = 1;
mtls->mSliceNum = 0;
- mtls->fep.inPtrs = nullptr;
- mtls->fep.inStrides = nullptr;
mtls->isThreadable = mIsThreadable;
if (inLen > 0) {
-
- if (inLen <= RS_KERNEL_INPUT_THRESHOLD) {
- mtls->fep.inPtrs = (const uint8_t**)mtls->inPtrsBuff;
- mtls->fep.inStrides = mtls->inStridesBuff;
- } else {
- mtls->fep.heapAllocatedArrays = true;
-
- mtls->fep.inPtrs = new const uint8_t*[inLen];
- mtls->fep.inStrides = new StridePair[inLen];
- }
-
mtls->fep.inLen = inLen;
-
for (int index = inLen; --index >= 0;) {
- const Allocation *ain = ains[index];
-
- mtls->fep.inPtrs[index] =
- (const uint8_t*)ain->mHal.drvState.lod[0].mallocPtr;
-
- mtls->fep.inStrides[index].eStride =
- ain->getType()->getElementSizeBytes();
- mtls->fep.inStrides[index].yStride =
- ain->mHal.drvState.lod[0].stride;
+ mtls->fep.inPtr[index] = (const uint8_t*)ains[index]->mHal.drvState.lod[0].mallocPtr;
+ mtls->fep.inStride[index] = ains[index]->getType()->getElementSizeBytes();
}
}
- mtls->fep.outPtr = nullptr;
- mtls->fep.outStride.eStride = 0;
- mtls->fep.outStride.yStride = 0;
if (aout != nullptr) {
- mtls->fep.outPtr = (uint8_t *)aout->mHal.drvState.lod[0].mallocPtr;
-
- mtls->fep.outStride.eStride = aout->getType()->getElementSizeBytes();
- mtls->fep.outStride.yStride = aout->mHal.drvState.lod[0].stride;
+ mtls->fep.outPtr[0] = (uint8_t *)aout->mHal.drvState.lod[0].mallocPtr;
+ mtls->fep.outStride[0] = aout->getType()->getElementSizeBytes();
}
}