1bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams/* 22980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines * Copyright (C) 2011-2012 The Android Open Source Project 3bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * 4bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * you may not use this file except in compliance with the License. 6bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * You may obtain a copy of the License at 7bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * 8bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * 10bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Unless required by applicable law or agreed to in writing, software 11bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * See the License for the specific language governing permissions and 14bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * limitations under the License. 15bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams */ 16bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 17bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifndef RSD_BCC_H 18bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#define RSD_BCC_H 19bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 20bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <rs_hal.h> 2187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include <rsRuntime.h> 22bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 23bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsbool rsdScriptInit(const android::renderscript::Context *, android::renderscript::ScriptC *, 24bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams char const *resName, char const *cacheDir, 2587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams uint8_t const *bitcode, size_t bitcodeSize, uint32_t flags); 268eaba4fee0c7b5325742c87187622fdff51d5effJason Samsbool rsdInitIntrinsic(const android::renderscript::Context *rsc, 278eaba4fee0c7b5325742c87187622fdff51d5effJason Sams android::renderscript::Script *s, 2841d6c769f5fa21da3cbc116af95d88949a4a5c76Stephen Hines RsScriptIntrinsicID iid, 298eaba4fee0c7b5325742c87187622fdff51d5effJason Sams android::renderscript::Element *e); 308eaba4fee0c7b5325742c87187622fdff51d5effJason Sams 31bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptInvokeFunction(const android::renderscript::Context *dc, 32cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams android::renderscript::Script *script, 33bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams uint32_t slot, 34bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const void *params, 35bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams size_t paramLength); 36cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams 37cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Samsvoid rsdScriptInvokeForEach(const android::renderscript::Context *rsc, 38cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams android::renderscript::Script *s, 3935e429ebf817130d8590d11d441a77aa697bd7d4Jason Sams uint32_t slot, 40cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams const android::renderscript::Allocation * ain, 41cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams android::renderscript::Allocation * aout, 42cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams const void * usr, 43099bc262f862cdeb547cf8a78fe9e0e92560f437Tim Murray size_t usrLen, 44cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams const RsScriptCall *sc); 45cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams 4614ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Walavoid rsdScriptInvokeReduce(const android::renderscript::Context *rsc, 4714ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Wala android::renderscript::Script *s, 4814ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Wala uint32_t slot, 49ae2ec3febedfc29376b9104413fb4042028f1265David Gross const android::renderscript::Allocation ** ains, 50ae2ec3febedfc29376b9104413fb4042028f1265David Gross size_t inLen, 5114ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Wala android::renderscript::Allocation *aout, 5214ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Wala const RsScriptCall *sc); 5314ce007a633b10e3b9a3fae29d8f53a7e8c9b59fMatt Wala 544b3c34e6833e39bc89c2128002806b654b8e623dChris Wailesvoid rsdScriptInvokeForEachMulti(const android::renderscript::Context *rsc, 554b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes android::renderscript::Script *s, 564b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes uint32_t slot, 574b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes const android::renderscript::Allocation ** ains, 584b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes size_t inLen, 594b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes android::renderscript::Allocation * aout, 604b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes const void * usr, 614b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes size_t usrLen, 624b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes const RsScriptCall *sc); 634b3c34e6833e39bc89c2128002806b654b8e623dChris Wailes 64bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsint rsdScriptInvokeRoot(const android::renderscript::Context *dc, 65cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams android::renderscript::Script *script); 66bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptInvokeInit(const android::renderscript::Context *dc, 67cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams android::renderscript::Script *script); 684ee16ffbd9d1d72e1757c9b26715597fdc044117Stephen Hinesvoid rsdScriptInvokeFreeChildren(const android::renderscript::Context *dc, 694ee16ffbd9d1d72e1757c9b26715597fdc044117Stephen Hines android::renderscript::Script *script); 70bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 71bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalVar(const android::renderscript::Context *, 72bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const android::renderscript::Script *, 73bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams uint32_t slot, void *data, size_t dataLen); 749c64239ebbfa4170190ede812e69150035e008e0Tim Murrayvoid rsdScriptGetGlobalVar(const android::renderscript::Context *, 759c64239ebbfa4170190ede812e69150035e008e0Tim Murray const android::renderscript::Script *, 769c64239ebbfa4170190ede812e69150035e008e0Tim Murray uint32_t slot, void *data, size_t dataLen); 772980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hinesvoid rsdScriptSetGlobalVarWithElemDims(const android::renderscript::Context *, 782980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines const android::renderscript::Script *, 792980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines uint32_t slot, void *data, 802980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines size_t dataLength, 812980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines const android::renderscript::Element *, 82ac8d146a41f18afad5314ac8af440d6aedbe20bfStephen Hines const uint32_t *dims, 832980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines size_t dimLength); 84bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalBind(const android::renderscript::Context *, 85bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const android::renderscript::Script *, 86807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams uint32_t slot, android::renderscript::Allocation *data); 87bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalObj(const android::renderscript::Context *, 88bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const android::renderscript::Script *, 89bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams uint32_t slot, android::renderscript::ObjectBase *data); 90bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 91bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobal(const android::renderscript::Context *dc, 92bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const android::renderscript::Script *script, 93bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams uint32_t slot, 94bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams void *data, 95bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams size_t dataLength); 96bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptGetGlobal(const android::renderscript::Context *dc, 97bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams const android::renderscript::Script *script, 98bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams uint32_t slot, 99bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams void *data, 100bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams size_t dataLength); 101bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptDestroy(const android::renderscript::Context *dc, 102bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams android::renderscript::Script *script); 103bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 104807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Samsandroid::renderscript::Allocation * rsdScriptGetAllocationForPointer( 105807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams const android::renderscript::Context *dc, 106807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams const android::renderscript::Script *script, 107807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams const void *); 108bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams 109a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid rsdScriptUpdateCachedObject(const android::renderscript::Context *rsc, 110a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams const android::renderscript::Script *script, 111a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams android::renderscript::rs_script *obj); 112a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams 113a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams 114dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Sams 115bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif 116