1*e1eccf28SAndroid Build Coastguard Worker /* 2*e1eccf28SAndroid Build Coastguard Worker * Copyright (C) 2011-2012 The Android Open Source Project 3*e1eccf28SAndroid Build Coastguard Worker * 4*e1eccf28SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*e1eccf28SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*e1eccf28SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*e1eccf28SAndroid Build Coastguard Worker * 8*e1eccf28SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*e1eccf28SAndroid Build Coastguard Worker * 10*e1eccf28SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*e1eccf28SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*e1eccf28SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*e1eccf28SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*e1eccf28SAndroid Build Coastguard Worker * limitations under the License. 15*e1eccf28SAndroid Build Coastguard Worker */ 16*e1eccf28SAndroid Build Coastguard Worker 17*e1eccf28SAndroid Build Coastguard Worker #ifndef RSD_BCC_H 18*e1eccf28SAndroid Build Coastguard Worker #define RSD_BCC_H 19*e1eccf28SAndroid Build Coastguard Worker 20*e1eccf28SAndroid Build Coastguard Worker #include <rs_hal.h> 21*e1eccf28SAndroid Build Coastguard Worker #include <rsRuntime.h> 22*e1eccf28SAndroid Build Coastguard Worker 23*e1eccf28SAndroid Build Coastguard Worker bool rsdScriptInit(const android::renderscript::Context *, android::renderscript::ScriptC *, 24*e1eccf28SAndroid Build Coastguard Worker char const *resName, char const *cacheDir, 25*e1eccf28SAndroid Build Coastguard Worker uint8_t const *bitcode, size_t bitcodeSize, uint32_t flags); 26*e1eccf28SAndroid Build Coastguard Worker bool rsdInitIntrinsic(const android::renderscript::Context *rsc, 27*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *s, 28*e1eccf28SAndroid Build Coastguard Worker RsScriptIntrinsicID iid, 29*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Element *e); 30*e1eccf28SAndroid Build Coastguard Worker 31*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeFunction(const android::renderscript::Context *dc, 32*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *script, 33*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 34*e1eccf28SAndroid Build Coastguard Worker const void *params, 35*e1eccf28SAndroid Build Coastguard Worker size_t paramLength); 36*e1eccf28SAndroid Build Coastguard Worker 37*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeForEach(const android::renderscript::Context *rsc, 38*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *s, 39*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 40*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Allocation * ain, 41*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Allocation * aout, 42*e1eccf28SAndroid Build Coastguard Worker const void * usr, 43*e1eccf28SAndroid Build Coastguard Worker size_t usrLen, 44*e1eccf28SAndroid Build Coastguard Worker const RsScriptCall *sc); 45*e1eccf28SAndroid Build Coastguard Worker 46*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeReduce(const android::renderscript::Context *rsc, 47*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *s, 48*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 49*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Allocation ** ains, 50*e1eccf28SAndroid Build Coastguard Worker size_t inLen, 51*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Allocation *aout, 52*e1eccf28SAndroid Build Coastguard Worker const RsScriptCall *sc); 53*e1eccf28SAndroid Build Coastguard Worker 54*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeForEachMulti(const android::renderscript::Context *rsc, 55*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *s, 56*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 57*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Allocation ** ains, 58*e1eccf28SAndroid Build Coastguard Worker size_t inLen, 59*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Allocation * aout, 60*e1eccf28SAndroid Build Coastguard Worker const void * usr, 61*e1eccf28SAndroid Build Coastguard Worker size_t usrLen, 62*e1eccf28SAndroid Build Coastguard Worker const RsScriptCall *sc); 63*e1eccf28SAndroid Build Coastguard Worker 64*e1eccf28SAndroid Build Coastguard Worker int rsdScriptInvokeRoot(const android::renderscript::Context *dc, 65*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *script); 66*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeInit(const android::renderscript::Context *dc, 67*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *script); 68*e1eccf28SAndroid Build Coastguard Worker void rsdScriptInvokeFreeChildren(const android::renderscript::Context *dc, 69*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *script); 70*e1eccf28SAndroid Build Coastguard Worker 71*e1eccf28SAndroid Build Coastguard Worker void rsdScriptSetGlobalVar(const android::renderscript::Context *, 72*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *, 73*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, void *data, size_t dataLen); 74*e1eccf28SAndroid Build Coastguard Worker void rsdScriptGetGlobalVar(const android::renderscript::Context *, 75*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *, 76*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, void *data, size_t dataLen); 77*e1eccf28SAndroid Build Coastguard Worker void rsdScriptSetGlobalVarWithElemDims(const android::renderscript::Context *, 78*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *, 79*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, void *data, 80*e1eccf28SAndroid Build Coastguard Worker size_t dataLength, 81*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Element *, 82*e1eccf28SAndroid Build Coastguard Worker const uint32_t *dims, 83*e1eccf28SAndroid Build Coastguard Worker size_t dimLength); 84*e1eccf28SAndroid Build Coastguard Worker void rsdScriptSetGlobalBind(const android::renderscript::Context *, 85*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *, 86*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, android::renderscript::Allocation *data); 87*e1eccf28SAndroid Build Coastguard Worker void rsdScriptSetGlobalObj(const android::renderscript::Context *, 88*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *, 89*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, android::renderscript::ObjectBase *data); 90*e1eccf28SAndroid Build Coastguard Worker 91*e1eccf28SAndroid Build Coastguard Worker void rsdScriptSetGlobal(const android::renderscript::Context *dc, 92*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *script, 93*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 94*e1eccf28SAndroid Build Coastguard Worker void *data, 95*e1eccf28SAndroid Build Coastguard Worker size_t dataLength); 96*e1eccf28SAndroid Build Coastguard Worker void rsdScriptGetGlobal(const android::renderscript::Context *dc, 97*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *script, 98*e1eccf28SAndroid Build Coastguard Worker uint32_t slot, 99*e1eccf28SAndroid Build Coastguard Worker void *data, 100*e1eccf28SAndroid Build Coastguard Worker size_t dataLength); 101*e1eccf28SAndroid Build Coastguard Worker void rsdScriptDestroy(const android::renderscript::Context *dc, 102*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Script *script); 103*e1eccf28SAndroid Build Coastguard Worker 104*e1eccf28SAndroid Build Coastguard Worker android::renderscript::Allocation * rsdScriptGetAllocationForPointer( 105*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Context *dc, 106*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *script, 107*e1eccf28SAndroid Build Coastguard Worker const void *); 108*e1eccf28SAndroid Build Coastguard Worker 109*e1eccf28SAndroid Build Coastguard Worker void rsdScriptUpdateCachedObject(const android::renderscript::Context *rsc, 110*e1eccf28SAndroid Build Coastguard Worker const android::renderscript::Script *script, 111*e1eccf28SAndroid Build Coastguard Worker android::renderscript::rs_script *obj); 112*e1eccf28SAndroid Build Coastguard Worker 113*e1eccf28SAndroid Build Coastguard Worker 114*e1eccf28SAndroid Build Coastguard Worker 115*e1eccf28SAndroid Build Coastguard Worker #endif 116