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