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/rsScriptIntrinsic.cpp b/rsScriptIntrinsic.cpp index ab439e6..86f1c50 100644 --- a/rsScriptIntrinsic.cpp +++ b/rsScriptIntrinsic.cpp
@@ -67,6 +67,18 @@ rsc->mHal.funcs.script.invokeForEach(rsc, this, slot, ain, aout, usr, usrBytes, sc); } +void ScriptIntrinsic::runForEach(Context* rsc, + uint32_t slot, + const Allocation** ains, + size_t inLen, + Allocation* aout, + const void* usr, + size_t usrBytes, + const RsScriptCall* sc) { + + rsc->mHal.funcs.script.invokeForEachMulti(rsc, this, slot, ains, inLen, aout, usr, usrBytes, sc); +} + void ScriptIntrinsic::Invoke(Context *rsc, uint32_t slot, const void *data, size_t len) { }