Add backed for script groups.
Change-Id: If2fdbde7381fcdaeb54d41a913b855fd83d4f186
diff --git a/driver/rsdBcc.h b/driver/rsdBcc.h
index 114e6cf..a99a062 100644
--- a/driver/rsdBcc.h
+++ b/driver/rsdBcc.h
@@ -20,6 +20,11 @@
#include <rs_hal.h>
#include <rsRuntime.h>
+namespace bcc {
+ class BCCContext;
+ class RSCompilerDriver;
+ class RSExecutable;
+}
bool rsdScriptInit(const android::renderscript::Context *, android::renderscript::ScriptC *,
char const *resName, char const *cacheDir,
@@ -86,4 +91,94 @@
const android::renderscript::Script *script,
const void *);
+
+typedef void (*outer_foreach_t)(
+ const android::renderscript::RsForEachStubParamStruct *,
+ uint32_t x1, uint32_t x2,
+ uint32_t instep, uint32_t outstep);
+
+typedef struct RsdIntriniscFuncs_rec {
+
+ void (*bind)(const android::renderscript::Context *dc,
+ const android::renderscript::Script *script,
+ void * intrinsicData,
+ uint32_t slot, android::renderscript::Allocation *data);
+ void (*setVar)(const android::renderscript::Context *dc,
+ const android::renderscript::Script *script,
+ void * intrinsicData,
+ uint32_t slot, void *data, size_t dataLength);
+ void (*root)(const android::renderscript::RsForEachStubParamStruct *,
+ uint32_t x1, uint32_t x2, uint32_t instep, uint32_t outstep);
+
+ void (*destroy)(const android::renderscript::Context *dc,
+ const android::renderscript::Script *script,
+ void * intrinsicData);
+} RsdIntriniscFuncs_t;
+
+struct DrvScript {
+ RsScriptIntrinsicID mIntrinsicID;
+ int (*mRoot)();
+ int (*mRootExpand)();
+ void (*mInit)();
+ void (*mFreeChildren)();
+
+ bcc::BCCContext *mCompilerContext;
+ bcc::RSCompilerDriver *mCompilerDriver;
+ bcc::RSExecutable *mExecutable;
+
+ android::renderscript::Allocation **mBoundAllocs;
+ RsdIntriniscFuncs_t mIntrinsicFuncs;
+ void * mIntrinsicData;
+};
+
+typedef struct {
+ android::renderscript::RsForEachStubParamStruct fep;
+ uint32_t cpuIdx;
+
+} MTThreadStuct;
+
+typedef struct {
+ android::renderscript::RsForEachStubParamStruct fep;
+
+ android::renderscript::Context *rsc;
+ android::renderscript::Script *script;
+ ForEachFunc_t kernel;
+ uint32_t sig;
+ const android::renderscript::Allocation * ain;
+ android::renderscript::Allocation * aout;
+
+ uint32_t mSliceSize;
+ volatile int mSliceNum;
+
+ uint32_t xStart;
+ uint32_t xEnd;
+ uint32_t yStart;
+ uint32_t yEnd;
+ uint32_t zStart;
+ uint32_t zEnd;
+ uint32_t arrayStart;
+ uint32_t arrayEnd;
+} MTLaunchStruct;
+
+void rsdScriptLaunchThreads(const android::renderscript::Context *rsc,
+ android::renderscript::Script *s,
+ uint32_t slot,
+ const android::renderscript::Allocation * ain,
+ android::renderscript::Allocation * aout,
+ const void * usr,
+ uint32_t usrLen,
+ const RsScriptCall *sc,
+ MTLaunchStruct *mtls);
+
+void rsdScriptInvokeForEachMtlsSetup(const android::renderscript::Context *rsc,
+ const android::renderscript::Allocation * ain,
+ android::renderscript::Allocation * aout,
+ const void * usr,
+ uint32_t usrLen,
+ const RsScriptCall *sc,
+ MTLaunchStruct *mtls);
+
+
+
+
#endif