Adds support for multi-input kernels to Frameworks/RS.
This patch modifies Frameworks/RS in the following ways:
* Adjusted the data-layout of the C/C++ version of RsForEachStubParamStruct to
accommodate a pointer to an array of input allocations and a pointer to an
array of stride sizes for each of these allocatoins.
* Adds a new code path for Java code to pass multiple allocations to a RS
kernel.
* Packs base pointers and step values for multi-input kernels into the new
RsForEachStubParamStruct members.
Change-Id: I46d2834c37075b2a2407fd8b010546818a4540d1
diff --git a/rsAllocation.cpp b/rsAllocation.cpp
index 3fbbfff..afa3a8a 100644
--- a/rsAllocation.cpp
+++ b/rsAllocation.cpp
@@ -531,6 +531,19 @@
#endif
}
+bool Allocation::hasSameDims(const Allocation *other) const {
+ const Type *type0 = this->getType(),
+ *type1 = other->getType();
+
+ return (type0->getCellCount() == type1->getCellCount()) &&
+ (type0->getDimLOD() == type1->getDimLOD()) &&
+ (type0->getDimFaces() == type1->getDimFaces()) &&
+ (type0->getDimYuv() == type1->getDimYuv()) &&
+ (type0->getDimX() == type1->getDimX()) &&
+ (type0->getDimY() == type1->getDimY()) &&
+ (type0->getDimZ() == type1->getDimZ());
+}
+
/////////////////
//