Support for general reduction kernels.
Requires coordinated change in frameworks/base.
Requires coordinated change in frameworks/compile/libbcc in order
for RsTest to run.
At present, general reduction kernels are run single-threaded.
Also: Remove dead struct field MTLaunchStructForEach::sig.
Bug: 23535724
Change-Id: Ice17ccf20a902f8a106eaa62ec071d46e3c0ad8c
diff --git a/rsScript.cpp b/rsScript.cpp
index bc24292..bf28328 100644
--- a/rsScript.cpp
+++ b/rsScript.cpp
@@ -232,6 +232,18 @@
static_cast<Allocation *>(vaout), sc);
}
+void rsi_ScriptReduceNew(Context *rsc, RsScript vs, uint32_t slot,
+ RsAllocation *vains, size_t inLen,
+ RsAllocation vaout, const RsScriptCall *sc,
+ size_t scLen) {
+ Script *s = static_cast<Script *>(vs);
+ Allocation **ains = (Allocation**)(vains);
+
+ s->runReduceNew(rsc, slot,
+ const_cast<const Allocation **>(ains), inLen,
+ static_cast<Allocation *>(vaout), sc);
+}
+
void rsi_ScriptInvoke(Context *rsc, RsScript vs, uint32_t slot) {
Script *s = static_cast<Script *>(vs);
s->Invoke(rsc, slot, nullptr, 0);