123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095 |
- /*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #define LOG_TAG "RenderScript HIDL Adaptation"
- #include "cpp/rsDispatch.h"
- #include "rsHidlAdaptation.h"
- #include "rsFallbackAdaptation.h"
- #include <cutils/properties.h>
- #include <log/log.h>
- using ::android::hardware::renderscript::V1_0::IDevice;
- using ::android::hardware::renderscript::V1_0::IContext;
- using ::android::hardware::renderscript::V1_0::Allocation;
- using ::android::hardware::renderscript::V1_0::AllocationCubemapFace;
- using ::android::hardware::renderscript::V1_0::AllocationMipmapControl;
- using ::android::hardware::renderscript::V1_0::AllocationUsageType;
- using ::android::hardware::renderscript::V1_0::Closure;
- using ::android::hardware::renderscript::V1_0::ContextType;
- using ::android::hardware::renderscript::V1_0::DataKind;
- using ::android::hardware::renderscript::V1_0::DataType;
- using ::android::hardware::renderscript::V1_0::ForEachStrategy;
- using ::android::hardware::renderscript::V1_0::MessageToClientType;
- using ::android::hardware::renderscript::V1_0::SamplerValue;
- using ::android::hardware::renderscript::V1_0::ScriptCall;
- using ::android::hardware::renderscript::V1_0::ScriptFieldID;
- using ::android::hardware::renderscript::V1_0::ScriptKernelID;
- using ::android::hardware::renderscript::V1_0::ScriptIntrinsicID;
- using ::android::hardware::renderscript::V1_0::ThreadPriorities;
- using ::android::hardware::renderscript::V1_0::Type;
- using ::android::hardware::renderscript::V1_0::YuvFormat;
- using ::android::hardware::renderscript::V1_0::Size;
- using ::android::hidl::base::V1_0::IBase;
- using ::android::hardware::hidl_array;
- using ::android::hardware::hidl_memory;
- using ::android::hardware::details::hidl_pointer;
- using ::android::hardware::hidl_string;
- using ::android::hardware::hidl_vec;
- using ::android::hardware::Return;
- using ::android::hardware::Void;
- using ::android::sp;
- dispatchTable RsHidlAdaptation::mEntryFuncs;
- sp<IDevice> RsHidlAdaptation::mHidl;
- std::set<sp<IContext> > RsHidlAdaptation::mContexts;
- std::mutex RsHidlAdaptation::mContextsMutex;
- static uint32_t getProp(const char *str) {
- char buf[PROPERTY_VALUE_MAX];
- property_get(str, buf, "0");
- return atoi(buf);
- }
- RsHidlAdaptation::RsHidlAdaptation()
- {
- InitializeHalDeviceContext();
- }
- RsHidlAdaptation& RsHidlAdaptation::GetInstance()
- {
- // This function-local-static guarantees the instance is a singleton. The
- // constructor of RsHidlAdaptation will only be called when GetInstance is
- // called for the first time.
- static RsHidlAdaptation instance;
- return instance;
- }
- const dispatchTable* RsHidlAdaptation::GetEntryFuncs()
- {
- return &mEntryFuncs;
- }
- void RsHidlAdaptation::LoadDispatchForHidl() {
- mEntryFuncs.Allocation1DData = Allocation1DData;
- mEntryFuncs.Allocation1DElementData = Allocation1DElementData;
- mEntryFuncs.Allocation1DRead = Allocation1DRead;
- mEntryFuncs.Allocation2DData = Allocation2DData;
- mEntryFuncs.Allocation2DRead = Allocation2DRead;
- mEntryFuncs.Allocation3DData = Allocation3DData;
- mEntryFuncs.Allocation3DRead = Allocation3DRead;
- mEntryFuncs.AllocationAdapterCreate = AllocationAdapterCreate;
- mEntryFuncs.AllocationAdapterOffset = AllocationAdapterOffset;
- mEntryFuncs.AllocationCopy2DRange = AllocationCopy2DRange;
- mEntryFuncs.AllocationCopy3DRange = AllocationCopy3DRange;
- mEntryFuncs.AllocationCopyToBitmap = AllocationCopyToBitmap;
- mEntryFuncs.AllocationCreateFromBitmap = AllocationCreateFromBitmap;
- mEntryFuncs.AllocationCreateTyped = AllocationCreateTyped;
- mEntryFuncs.AllocationCubeCreateFromBitmap = AllocationCubeCreateFromBitmap;
- mEntryFuncs.AllocationElementData = AllocationElementData;
- mEntryFuncs.AllocationElementRead = AllocationElementRead;
- mEntryFuncs.AllocationGenerateMipmaps = AllocationGenerateMipmaps;
- mEntryFuncs.AllocationGetPointer = AllocationGetPointer;
- mEntryFuncs.AllocationGetSurface = AllocationGetSurface;
- mEntryFuncs.AllocationGetType = AllocationGetType;
- mEntryFuncs.AllocationIoReceive = AllocationIoReceive;
- mEntryFuncs.AllocationIoSend = AllocationIoSend;
- mEntryFuncs.AllocationRead = AllocationRead;
- mEntryFuncs.AllocationResize1D = AllocationResize1D;
- mEntryFuncs.AllocationSetSurface = AllocationSetSurface;
- mEntryFuncs.AllocationSetupBufferQueue = AllocationSetupBufferQueue;
- mEntryFuncs.AllocationShareBufferQueue = AllocationShareBufferQueue;
- mEntryFuncs.AllocationSyncAll = AllocationSyncAll;
- mEntryFuncs.AssignName = AssignName;
- mEntryFuncs.ClosureCreate = ClosureCreate;
- mEntryFuncs.ClosureSetArg = ClosureSetArg;
- mEntryFuncs.ClosureSetGlobal = ClosureSetGlobal;
- mEntryFuncs.ContextCreate = ContextCreate;
- mEntryFuncs.ContextDeinitToClient = ContextDeinitToClient;
- mEntryFuncs.ContextDestroy = ContextDestroy;
- mEntryFuncs.ContextDump = ContextDump;
- mEntryFuncs.ContextFinish = ContextFinish;
- mEntryFuncs.ContextGetMessage = ContextGetMessage;
- mEntryFuncs.ContextInitToClient = ContextInitToClient;
- mEntryFuncs.ContextPeekMessage = ContextPeekMessage;
- mEntryFuncs.ContextSendMessage = ContextSendMessage;
- mEntryFuncs.ContextSetCacheDir = ContextSetCacheDir;
- mEntryFuncs.ContextSetPriority = ContextSetPriority;
- mEntryFuncs.ElementCreate = ElementCreate;
- mEntryFuncs.ElementCreate2 = ElementCreate2;
- mEntryFuncs.ElementGetNativeData = ElementGetNativeData;
- mEntryFuncs.ElementGetSubElements = ElementGetSubElements;
- mEntryFuncs.GetName = GetName;
- mEntryFuncs.InvokeClosureCreate = InvokeClosureCreate;
- mEntryFuncs.ObjDestroy = ObjDestroy;
- mEntryFuncs.SamplerCreate = SamplerCreate;
- mEntryFuncs.ScriptBindAllocation = ScriptBindAllocation;
- mEntryFuncs.ScriptCCreate = ScriptCCreate;
- mEntryFuncs.ScriptFieldIDCreate = ScriptFieldIDCreate;
- mEntryFuncs.ScriptForEach = ScriptForEach;
- mEntryFuncs.ScriptForEachMulti = ScriptForEachMulti;
- mEntryFuncs.ScriptGetVarV = ScriptGetVarV;
- mEntryFuncs.ScriptGroup2Create = ScriptGroup2Create;
- mEntryFuncs.ScriptGroupCreate = ScriptGroupCreate;
- mEntryFuncs.ScriptGroupExecute = ScriptGroupExecute;
- mEntryFuncs.ScriptGroupSetInput = ScriptGroupSetInput;
- mEntryFuncs.ScriptGroupSetOutput = ScriptGroupSetOutput;
- mEntryFuncs.ScriptIntrinsicCreate = ScriptIntrinsicCreate;
- mEntryFuncs.ScriptInvoke = ScriptInvoke;
- mEntryFuncs.ScriptInvokeIDCreate = ScriptInvokeIDCreate;
- mEntryFuncs.ScriptInvokeV = ScriptInvokeV;
- mEntryFuncs.ScriptKernelIDCreate = ScriptKernelIDCreate;
- mEntryFuncs.ScriptReduce = ScriptReduce;
- mEntryFuncs.ScriptSetTimeZone = ScriptSetTimeZone;
- mEntryFuncs.ScriptSetVarD = ScriptSetVarD;
- mEntryFuncs.ScriptSetVarF = ScriptSetVarF;
- mEntryFuncs.ScriptSetVarI = ScriptSetVarI;
- mEntryFuncs.ScriptSetVarJ = ScriptSetVarJ;
- mEntryFuncs.ScriptSetVarObj = ScriptSetVarObj;
- mEntryFuncs.ScriptSetVarV = ScriptSetVarV;
- mEntryFuncs.ScriptSetVarVE = ScriptSetVarVE;
- mEntryFuncs.TypeCreate = TypeCreate;
- mEntryFuncs.TypeGetNativeData = TypeGetNativeData;
- }
- void RsHidlAdaptation::InitializeHalDeviceContext()
- {
- ALOGD("IRenderScriptDevice::getService()");
- if (getProp("debug.rs.rsov") == 0 &&
- getProp("debug.rs.default-CPU-driver") == 0) {
- // get HIDL service and register callback
- mHidl = IDevice::getService();
- }
- ALOGD("IRenderScriptDevice::getService() returned %p", mHidl.get());
- if (mHidl == NULL) {
- ALOGD("Using Fallback Path.");
- RsFallbackAdaptation& fallbackInstance = RsFallbackAdaptation::GetInstance();
- mEntryFuncs = *(fallbackInstance.GetEntryFuncs());
- } else {
- ALOGD("HIDL successfully loaded.");
- LoadDispatchForHidl();
- }
- }
- IContext *RsHidlAdaptation::GetIContextHandle(RsContext context) {
- return (IContext *)context;
- }
- RsContext RsHidlAdaptation::ContextCreate(RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsContextType ct, uint32_t flags)
- {
- // Get the handle to IContext interface object and save it to the map.
- sp<IContext> context = mHidl->contextCreate(sdkVersion, (ContextType)ct, flags);
- RsContext ret = (RsContext)(uintptr_t)context.get();
- std::unique_lock<std::mutex> lock(mContextsMutex);
- mContexts.insert(context);
- return ret;
- }
- void RsHidlAdaptation::ContextDestroy (RsContext context)
- {
- // Destroy the driver context and remove IContext handle from the map.
- GetIContextHandle(context)->contextDestroy();
- std::unique_lock<std::mutex> lock(mContextsMutex);
- mContexts.erase((IContext*)context);
- }
- const void* RsHidlAdaptation::AllocationGetType(RsContext context, RsAllocation allocation)
- {
- // TODO: Replace this idiom "(uint64_t)(uintptr_t)" with a rs_to_hal function?
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- uint64_t typeRet = GetIContextHandle(context)->allocationGetType(_allocation);
- return (void *)typeRet;
- }
- void RsHidlAdaptation::TypeGetNativeData(RsContext context, RsType type, uintptr_t *typedata, uint32_t typeDataSize)
- {
- uint64_t _type = (uint64_t)(uintptr_t)type;
- GetIContextHandle(context)->typeGetNativeMetadata(_type,
- [typedata, typeDataSize] (const hidl_vec<uint64_t> &retTypeData){
- for (uint32_t i=0; i<typeDataSize; i++) {
- typedata[i] = (uintptr_t)retTypeData[i];
- }
- });
- }
- void RsHidlAdaptation::ElementGetNativeData(RsContext context, RsElement element, uint32_t *elemData, uint32_t elemDataSize)
- {
- uint64_t _element = (uint64_t)(uintptr_t)element;
- GetIContextHandle(context)->elementGetNativeMetadata(_element,
- [elemData, elemDataSize] (const hidl_vec<uint32_t> &retElemData){
- for (uint32_t i=0; i<elemDataSize; i++) {
- elemData[i] = retElemData[i];
- }
- });
- }
- void RsHidlAdaptation::ElementGetSubElements(RsContext context, RsElement element, uintptr_t *ids, const char **names, size_t *arraySizes, uint32_t dataSize)
- {
- uint64_t _element = (uint64_t)(uintptr_t)element;
- uint64_t _ids = (uint64_t)(uintptr_t)ids;
- uint64_t _names = (uint64_t)(uintptr_t)names;
- uint64_t _arraySizes = (uint64_t)(uintptr_t)arraySizes;
- GetIContextHandle(context)->elementGetSubElements(_element, dataSize,
- [ids, names, arraySizes, dataSize] (const hidl_vec<uint64_t> &retIds, const hidl_vec<hidl_string> &retNames, const hidl_vec<Size> &retArraySizes){
- for (uint32_t i=0; i<dataSize; i++) {
- ids[i] = static_cast<uintptr_t>(retIds[i]);
- names[i] = static_cast<const char *>(retNames[i].c_str());
- arraySizes[i] = static_cast<size_t>(retArraySizes[i]);
- }
- });
- }
- void RsHidlAdaptation::GetName(RsContext context, void * obj, const char **name) {
- uint64_t _obj = (uint64_t)(uintptr_t)obj;
- GetIContextHandle(context)->getName(_obj, [name](hidl_string ret_name) {*name = ret_name.c_str();});
- }
- RsClosure RsHidlAdaptation::ClosureCreate(RsContext context, RsScriptKernelID kernelID,
- RsAllocation returnValue,
- RsScriptFieldID* fieldIDs, size_t fieldIDs_length,
- int64_t* values, size_t values_length,
- int* sizes, size_t sizes_length,
- RsClosure* depClosures, size_t depClosures_length,
- RsScriptFieldID* depFieldIDs,
- size_t depFieldIDs_length)
- {
- uint64_t _kernelID = (uint64_t)(uintptr_t)kernelID;
- uint64_t _returnValue = (uint64_t)(uintptr_t)returnValue;
- std::vector<ScriptFieldID> _fieldIDs(fieldIDs_length);
- std::vector<int64_t> _values(values_length);
- std::vector<int32_t> _sizes(sizes_length);
- std::vector<Closure> _depClosures(depClosures_length);
- std::vector<ScriptFieldID> _depFieldIDs(depFieldIDs_length);
- // TODO: Replace this idiom with a rs_to_hal function?
- for (size_t i = 0; i < fieldIDs_length; i++) {
- _fieldIDs[i] = (ScriptFieldID)(uintptr_t)fieldIDs[i];
- }
- for (size_t i = 0; i < values_length; i++) {
- _values[i] = (int64_t)values[i];
- }
- for (size_t i = 0; i < sizes_length; i++) {
- _sizes[i] = (int32_t)sizes[i];
- }
- for (size_t i = 0; i < depClosures_length; i++) {
- _depClosures[i] = (Closure)(uintptr_t)depClosures[i];
- }
- for (size_t i = 0; i < depFieldIDs_length; i++) {
- _depFieldIDs[i] = (ScriptFieldID)(uintptr_t)depFieldIDs[i];
- }
- uint64_t closure = GetIContextHandle(context)->closureCreate(_kernelID, _returnValue,
- _fieldIDs, _values, _sizes,
- _depClosures, _depFieldIDs);
- return (RsClosure) closure;
- }
- RsClosure RsHidlAdaptation::InvokeClosureCreate(RsContext context, RsScriptInvokeID invokeID,
- const void* params, const size_t paramLength,
- const RsScriptFieldID* fieldIDs, const size_t fieldIDs_length,
- const int64_t* values, const size_t values_length,
- const int* sizes, const size_t sizes_length)
- {
- uint64_t _invokeID = (uint64_t)(uintptr_t)invokeID;
- hidl_vec<uint8_t> _params;
- _params.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(params)), paramLength);
- std::vector<ScriptFieldID> _fieldIDs(fieldIDs_length);
- std::vector<int64_t> _values(values_length);
- std::vector<int32_t> _sizes(sizes_length);
- for (size_t i = 0; i < fieldIDs_length; i++) {
- _fieldIDs[i] = (ScriptFieldID)(uintptr_t)fieldIDs[i];
- }
- for (size_t i = 0; i < values_length; i++) {
- _values[i] = (int64_t)values[i];
- }
- for (size_t i = 0; i < sizes_length; i++) {
- _sizes[i] = (int32_t)sizes[i];
- }
- uint64_t closure = GetIContextHandle(context)->invokeClosureCreate(_invokeID,
- _params, _fieldIDs,
- _values, _sizes);
- return (RsClosure) closure;
- }
- void RsHidlAdaptation::ClosureSetArg(RsContext context, RsClosure closure, uint32_t index,
- uintptr_t value, int size)
- {
- uint64_t _closure = (uint64_t)(uintptr_t)closure;
- void * _value = (void *)value;
- GetIContextHandle(context)->closureSetArg(_closure, index, _value, size);
- }
- void RsHidlAdaptation::ClosureSetGlobal(RsContext context, RsClosure closure,
- RsScriptFieldID fieldID, int64_t value,
- int size)
- {
- uint64_t _closure = (uint64_t)(uintptr_t)closure;
- uint64_t _fieldID = (uint64_t)(uintptr_t)fieldID;
- GetIContextHandle(context)->closureSetGlobal(_closure, _fieldID, value, size);
- }
- RsMessageToClientType RsHidlAdaptation::ContextGetMessage (RsContext context, void * data, size_t data_length,
- size_t * receiveLen, size_t receiveLen_length,
- uint32_t * subID, size_t subID_length)
- {
- RsMessageToClientType msgType;
- GetIContextHandle(context)->contextGetMessage(data, data_length,
- [&msgType, receiveLen](MessageToClientType retMessageType, uint64_t retReceiveLen) {
- msgType = (RsMessageToClientType) retMessageType;
- *receiveLen = retReceiveLen;
- });
- return msgType;
- }
- RsMessageToClientType RsHidlAdaptation::ContextPeekMessage (RsContext context,
- size_t * receiveLen, size_t receiveLen_length,
- uint32_t * subID, size_t subID_length)
- {
- RsMessageToClientType msgType;
- GetIContextHandle(context)->contextPeekMessage(
- [&msgType, receiveLen, subID](MessageToClientType retMessageType, uint64_t retReceiveLen, uint32_t retSubID) {
- msgType = (RsMessageToClientType) retMessageType;
- *receiveLen = retReceiveLen;
- *subID = retSubID;
- });
- return msgType;
- }
- void RsHidlAdaptation::ContextSendMessage (RsContext context, uint32_t id, const uint8_t *data, size_t len)
- {
- hidl_vec<uint8_t> _data;
- _data.setToExternal(const_cast<uint8_t *>(data), len);
- GetIContextHandle(context)->contextSendMessage(id, _data);
- }
- void RsHidlAdaptation::ContextInitToClient (RsContext context)
- {
- GetIContextHandle(context)->contextInitToClient();
- }
- void RsHidlAdaptation::ContextDeinitToClient (RsContext context)
- {
- GetIContextHandle(context)->contextDeinitToClient();
- }
- RsType RsHidlAdaptation::TypeCreate (RsContext context, RsElement element, uint32_t dimX,
- uint32_t dimY, uint32_t dimZ, bool mipmaps,
- bool faces, uint32_t yuv)
- {
- uint64_t _element = (uint64_t)(uintptr_t)element;
- uint64_t type = GetIContextHandle(context)->typeCreate(_element, dimX, dimY, dimZ, mipmaps, faces,
- (YuvFormat) yuv);
- return (RsType) type;
- }
- RsAllocation RsHidlAdaptation::AllocationCreateTyped (RsContext context, RsType type,
- RsAllocationMipmapControl mipmaps,
- uint32_t usages, uintptr_t ptr)
- {
- uint64_t _type = (uint64_t)(uintptr_t)type;
- void * _ptr = (void *)ptr;
- uint64_t allocation = GetIContextHandle(context)->allocationCreateTyped(_type,
- (AllocationMipmapControl)mipmaps, usages, _ptr);
- return (RsAllocation) allocation;
- }
- RsAllocation RsHidlAdaptation::AllocationCreateFromBitmap (RsContext context, RsType type,
- RsAllocationMipmapControl mipmaps,
- const void *data, size_t sizeBytes, uint32_t usages)
- {
- uint64_t _type = (uint64_t)(uintptr_t)type;
- hidl_vec<uint8_t> _bitmap;
- _bitmap.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- uint64_t allocation = GetIContextHandle(context)->allocationCreateFromBitmap(_type,
- (AllocationMipmapControl)mipmaps, _bitmap, usages);
- return (RsAllocation) allocation;
- }
- RsAllocation RsHidlAdaptation::AllocationCubeCreateFromBitmap(RsContext context, RsType type,
- RsAllocationMipmapControl mipmaps,
- const void *data, size_t sizeBytes, uint32_t usages)
- {
- uint64_t _type = (uint64_t)(uintptr_t)type;
- hidl_vec<uint8_t> _bitmap;
- _bitmap.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- uint64_t allocation = GetIContextHandle(context)->allocationCubeCreateFromBitmap(_type, (AllocationMipmapControl)mipmaps, _bitmap, usages);
- return (RsAllocation) allocation;
- }
- RsNativeWindow RsHidlAdaptation::AllocationGetSurface (RsContext context, RsAllocation allocation)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- uint64_t window = GetIContextHandle(context)->allocationGetNativeWindow(_allocation);
- return (RsNativeWindow) window;
- }
- void RsHidlAdaptation::AllocationSetSurface (RsContext context, RsAllocation allocation, RsNativeWindow window)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- uint64_t _window = (uint64_t)(uintptr_t)window;
- GetIContextHandle(context)->allocationSetNativeWindow(_allocation, _window);
- }
- void RsHidlAdaptation::ContextFinish (RsContext context)
- {
- GetIContextHandle(context)->contextFinish();
- }
- void RsHidlAdaptation::ContextDump (RsContext context, int32_t bits)
- {
- GetIContextHandle(context)->contextLog();
- }
- void RsHidlAdaptation::ContextSetPriority (RsContext context, int32_t priority)
- {
- GetIContextHandle(context)->contextSetPriority((ThreadPriorities)priority);
- }
- void RsHidlAdaptation::ContextSetCacheDir (RsContext context, const char *cacheDir, size_t cacheDir_length)
- {
- GetIContextHandle(context)->contextSetCacheDir(hidl_string(cacheDir));
- }
- void RsHidlAdaptation::AssignName (RsContext context, RsObjectBase obj, const char* name, size_t size)
- {
- uint64_t _obj = (uint64_t)(uintptr_t)obj;
- GetIContextHandle(context)->assignName(_obj, hidl_string(name));
- }
- void RsHidlAdaptation::ObjDestroy (RsContext context, RsAsyncVoidPtr obj)
- {
- uint64_t _obj = (uint64_t)(uintptr_t)obj;
- GetIContextHandle(context)->objDestroy(_obj);
- }
- RsElement RsHidlAdaptation::ElementCreate (RsContext context,
- RsDataType dt,
- RsDataKind dk,
- bool norm,
- uint32_t vecSize)
- {
- uint64_t element = GetIContextHandle(context)->elementCreate((DataType) dt,
- (DataKind) dk,
- norm,
- vecSize);
- return (RsElement) element;
- }
- RsElement RsHidlAdaptation::ElementCreate2 (RsContext context,
- const RsElement * ein,
- size_t ein_length,
- const char ** names,
- size_t nameLengths_length,
- const size_t * nameLengths,
- const uint32_t * arraySizes,
- size_t arraySizes_length)
- {
- std::vector<uint64_t> _ein(ein_length);
- std::vector<hidl_string> _names(nameLengths_length);
- std::vector<Size> _arraySizes(arraySizes_length);
- for (size_t i = 0; i < ein_length; i++) {
- _ein[i] = (uint64_t)((uintptr_t)ein[i]);
- }
- for (size_t i = 0; i < ein_length; i++) {
- _names[i] = hidl_string(names[i]);
- }
- for (size_t i = 0; i < arraySizes_length; i++) {
- _arraySizes[i] = (Size)arraySizes[i];
- }
- uint64_t element = GetIContextHandle(context)->elementComplexCreate(_ein, _names, _arraySizes);
- return (RsElement) element;
- }
- void RsHidlAdaptation::AllocationCopyToBitmap (RsContext context, RsAllocation allocation, void *data, size_t sizeBytes)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationCopyToBitmap(_allocation, data, sizeBytes);
- }
- void RsHidlAdaptation::Allocation1DData (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t lod,
- uint32_t count, const void *data, size_t sizeBytes)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- GetIContextHandle(context)->allocation1DWrite(_allocation, xoff, lod, count, _data);
- }
- void RsHidlAdaptation::Allocation1DElementData (RsContext context, RsAllocation allocation, uint32_t xoff,
- uint32_t lod, const void *data, size_t sizeBytes, size_t eoff)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- GetIContextHandle(context)->allocationElementWrite(_allocation, xoff, 0, 0, lod, _data, eoff);
- }
- void RsHidlAdaptation::AllocationElementData (RsContext context, RsAllocation allocation, uint32_t x, uint32_t y, uint32_t z,
- uint32_t lod, const void *data, size_t sizeBytes, size_t eoff)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- GetIContextHandle(context)->allocationElementWrite(_allocation, x, y, z, lod, _data, eoff);
- }
- void RsHidlAdaptation::Allocation2DData (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t yoff,
- uint32_t lod, RsAllocationCubemapFace face,
- uint32_t w, uint32_t h, const void *data, size_t sizeBytes, size_t stride)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- GetIContextHandle(context)->allocation2DWrite(_allocation, xoff, yoff, lod, (AllocationCubemapFace)face, w, h, _data, stride);
- }
- void RsHidlAdaptation::Allocation3DData (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod,
- uint32_t w, uint32_t h, uint32_t d, const void *data, size_t sizeBytes, size_t stride)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), sizeBytes);
- GetIContextHandle(context)->allocation3DWrite(_allocation, xoff, yoff, zoff, lod, w, h, d, _data, stride);
- }
- void RsHidlAdaptation::AllocationGenerateMipmaps (RsContext context, RsAllocation allocation)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationGenerateMipmaps(_allocation);
- }
- void RsHidlAdaptation::AllocationRead (RsContext context, RsAllocation allocation, void *data, size_t sizeBytes)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationRead(_allocation, data, sizeBytes);
- }
- void RsHidlAdaptation::Allocation1DRead (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t lod,
- uint32_t count, void *data, size_t sizeBytes)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocation1DRead(_allocation, xoff, lod, count, data, sizeBytes);
- }
- void RsHidlAdaptation::AllocationElementRead (RsContext context, RsAllocation allocation, uint32_t x, uint32_t y, uint32_t z,
- uint32_t lod, void *data, size_t sizeBytes, size_t eoff)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationElementRead(_allocation, x, y, z, lod, data, sizeBytes, eoff);
- }
- void RsHidlAdaptation::Allocation2DRead (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t yoff,
- uint32_t lod, RsAllocationCubemapFace face,
- uint32_t w, uint32_t h, void *data, size_t sizeBytes, size_t stride)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocation2DRead(_allocation, xoff, yoff, lod, (AllocationCubemapFace)face, w, h, data, sizeBytes, stride);
- }
- void RsHidlAdaptation::Allocation3DRead (RsContext context, RsAllocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod,
- uint32_t w, uint32_t h, uint32_t d, void *data, size_t sizeBytes, size_t stride)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocation3DRead(_allocation, xoff, yoff, zoff, lod, w, h, d, data, sizeBytes, stride);
- }
- void RsHidlAdaptation::AllocationSyncAll (RsContext context, RsAllocation allocation, RsAllocationUsageType usage)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationSyncAll(_allocation,
- (AllocationUsageType) usage);
- }
- void RsHidlAdaptation::AllocationResize1D (RsContext context, RsAllocation allocation, uint32_t dimX)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationResize1D(_allocation, dimX);
- }
- void RsHidlAdaptation::AllocationCopy2DRange (RsContext context,
- RsAllocation dstAlloc,
- uint32_t dstXoff, uint32_t dstYoff,
- uint32_t dstMip, uint32_t dstFace,
- uint32_t width, uint32_t height,
- RsAllocation srcAlloc,
- uint32_t srcXoff, uint32_t srcYoff,
- uint32_t srcMip, uint32_t srcFace)
- {
- uint64_t _dstAlloc = (uint64_t)(uintptr_t)dstAlloc;
- uint64_t _srcAlloc = (uint64_t)(uintptr_t)srcAlloc;
- GetIContextHandle(context)->allocationCopy2DRange(_dstAlloc, dstXoff, dstYoff, dstMip, (AllocationCubemapFace)dstFace, width, height,
- _srcAlloc, srcXoff, srcYoff, srcMip, (AllocationCubemapFace)srcFace);
- }
- void RsHidlAdaptation::AllocationCopy3DRange (RsContext context,
- RsAllocation dstAlloc,
- uint32_t dstXoff, uint32_t dstYoff, uint32_t dstZoff,
- uint32_t dstMip,
- uint32_t width, uint32_t height, uint32_t depth,
- RsAllocation srcAlloc,
- uint32_t srcXoff, uint32_t srcYoff, uint32_t srcZoff,
- uint32_t srcMip)
- {
- uint64_t _dstAlloc = (uint64_t)(uintptr_t)dstAlloc;
- uint64_t _srcAlloc = (uint64_t)(uintptr_t)srcAlloc;
- GetIContextHandle(context)->allocationCopy3DRange(_dstAlloc, dstXoff, dstYoff, dstZoff, dstMip, width, height, depth,
- _srcAlloc, srcXoff, srcYoff, srcZoff, srcMip);
- }
- RsSampler RsHidlAdaptation::SamplerCreate (RsContext context,
- RsSamplerValue magFilter,
- RsSamplerValue minFilter,
- RsSamplerValue wrapS,
- RsSamplerValue wrapT,
- RsSamplerValue wrapR,
- float aniso)
- {
- uint64_t sampler = GetIContextHandle(context)->samplerCreate((SamplerValue) magFilter,
- (SamplerValue)minFilter,
- (SamplerValue)wrapS,
- (SamplerValue)wrapT,
- (SamplerValue)wrapR,
- aniso);
- return (RsSampler) sampler;
- }
- void RsHidlAdaptation::ScriptBindAllocation (RsContext context, RsScript script, RsAllocation allocation, uint32_t slot)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->scriptBindAllocation(_script, _allocation, slot);
- }
- void RsHidlAdaptation::ScriptSetTimeZone (RsContext context, RsScript script, const char* timezone, size_t size)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptSetTimeZone(_script, hidl_string(timezone));
- }
- void RsHidlAdaptation::ScriptInvoke (RsContext context, RsScript script, uint32_t slot)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptInvoke(_script, slot);
- }
- void RsHidlAdaptation::ScriptInvokeV (RsContext context, RsScript script, uint32_t slot, const void *data, size_t len)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), len);
- GetIContextHandle(context)->scriptInvokeV(_script, slot, _data);
- }
- void RsHidlAdaptation::ScriptForEach (RsContext context, RsScript script, uint32_t slot,
- RsAllocation vain, RsAllocation vaout,
- const void *params, size_t paramLen,
- const RsScriptCall *sc, size_t scLen)
- {
- RsAllocation * vains = nullptr;
- size_t inLen = 0;
- if (vain) {
- vains = &vain;
- inLen = 1;
- }
- ScriptForEachMulti(context, script, slot, vains, inLen, vaout, params, paramLen, sc, scLen);
- }
- void RsHidlAdaptation::ScriptForEachMulti (RsContext context, RsScript script, uint32_t slot,
- RsAllocation *vains, size_t inLen,
- RsAllocation vaout, const void *params,
- size_t paramLen, const RsScriptCall *sc,
- size_t scLen)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- std::vector<Allocation> _vains(inLen);
- for (size_t i = 0; i < inLen; i++) {
- _vains[i] = (Allocation)(uintptr_t)vains[i];
- }
- uint64_t _vaout = (uint64_t)(uintptr_t)vaout;
- hidl_vec<uint8_t> _params;
- _params.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(params)), paramLen);
- ScriptCall * _scPtr = nullptr;
- ScriptCall _sc;
- if (sc) {
- _sc.strategy = static_cast<ForEachStrategy>(sc->strategy);
- _sc.xStart = sc->xStart;
- _sc.xEnd = sc->xEnd;
- _sc.yStart = sc->yStart;
- _sc.yEnd = sc->yEnd;
- _sc.zStart = sc->zStart;
- _sc.zEnd = sc->zEnd;
- _sc.arrayStart = sc->arrayStart;
- _sc.arrayEnd = sc->arrayEnd;
- _sc.array2Start = sc->array2Start;
- _sc.array2End = sc->arrayEnd;
- _sc.array3Start = sc->array3Start;
- _sc.array3End = sc->arrayEnd;
- _sc.array4Start = sc->array4Start;
- _sc.array4End = sc->arrayEnd;
- _scPtr = &_sc;
- }
- GetIContextHandle(context)->scriptForEach(_script, slot, _vains, _vaout, _params, _scPtr);
- }
- void RsHidlAdaptation::ScriptReduce (RsContext context, RsScript script, uint32_t slot,
- RsAllocation *vains, size_t inLen, RsAllocation vaout,
- const RsScriptCall *sc, size_t scLen)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- std::vector<Allocation> _vains(inLen);
- for (size_t i = 0; i < inLen; i++) {
- _vains[i] = (Allocation)(uintptr_t)vains[i];
- }
- uint64_t _vaout = (uint64_t)(uintptr_t)vaout;
- ScriptCall * _scPtr = nullptr;
- ScriptCall _sc;
- if (sc) {
- _sc.strategy = static_cast<ForEachStrategy>(sc->strategy);
- _sc.xStart = sc->xStart;
- _sc.xEnd = sc->xEnd;
- _sc.yStart = sc->yStart;
- _sc.yEnd = sc->yEnd;
- _sc.zStart = sc->zStart;
- _sc.zEnd = sc->zEnd;
- _sc.arrayStart = sc->arrayStart;
- _sc.arrayEnd = sc->arrayEnd;
- _sc.array2Start = sc->array2Start;
- _sc.array2End = sc->arrayEnd;
- _sc.array3Start = sc->array3Start;
- _sc.array3End = sc->arrayEnd;
- _sc.array4Start = sc->array4Start;
- _sc.array4End = sc->arrayEnd;
- _scPtr = &_sc;
- }
- GetIContextHandle(context)->scriptReduce(_script, slot, _vains, _vaout, _scPtr);
- }
- void RsHidlAdaptation::ScriptSetVarI (RsContext context, RsScript script, uint32_t slot, int value)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptSetVarI(_script, slot, value);
- }
- void RsHidlAdaptation::ScriptSetVarObj (RsContext context, RsScript script, uint32_t slot, RsObjectBase obj)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- uint64_t _obj = (uint64_t)(uintptr_t)obj;
- GetIContextHandle(context)->scriptSetVarObj(_script, slot, _obj);
- }
- void RsHidlAdaptation::ScriptSetVarJ (RsContext context, RsScript script, uint32_t slot, int64_t value)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptSetVarJ(_script, slot, value);
- }
- void RsHidlAdaptation::ScriptSetVarF (RsContext context, RsScript script, uint32_t slot, float value)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptSetVarF(_script, slot, value);
- }
- void RsHidlAdaptation::ScriptSetVarD (RsContext context, RsScript script, uint32_t slot, double value)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptSetVarD(_script, slot, value);
- }
- void RsHidlAdaptation::ScriptSetVarV (RsContext context, RsScript script, uint32_t slot, const void* data, size_t len)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), len);
- GetIContextHandle(context)->scriptSetVarV(_script, slot, _data);
- }
- void RsHidlAdaptation::ScriptGetVarV (RsContext context, RsScript script, uint32_t slot, void* data, size_t len)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- GetIContextHandle(context)->scriptGetVarV(_script, slot, len,
- [data, len] (const hidl_vec<uint8_t> &retData) {
- memcpy(data, retData.data(), len);
- });
- }
- void RsHidlAdaptation::ScriptSetVarVE (RsContext context, RsScript script, uint32_t slot,
- const void *data, size_t len, RsElement ve,
- const uint32_t *dims, size_t dimLen)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- hidl_vec<uint8_t> _data;
- _data.setToExternal(reinterpret_cast<uint8_t *>(const_cast<void *>(data)), len);
- uint64_t _ve = (uint64_t)(uintptr_t)ve;
- hidl_vec<uint32_t> _dims;
- _dims.setToExternal(const_cast<uint32_t *>(dims), dimLen / sizeof(uint32_t));
- GetIContextHandle(context)->scriptSetVarVE(_script, slot, _data, _ve, _dims);
- }
- RsScript RsHidlAdaptation::ScriptCCreate (RsContext context,
- const char *resName, size_t resName_length,
- const char *cacheDir, size_t cacheDir_length,
- const char *text, size_t text_length)
- {
- hidl_vec<uint8_t> _text;
- _text.setToExternal(reinterpret_cast<uint8_t *>(const_cast<char *>(text)), text_length);
- uint64_t scriptc = GetIContextHandle(context)->scriptCCreate(hidl_string(resName), hidl_string(cacheDir), _text);
- return (RsScript) scriptc;
- }
- RsScript RsHidlAdaptation::ScriptIntrinsicCreate (RsContext context, uint32_t id, RsElement element)
- {
- uint64_t _element = (uint64_t)(uintptr_t)element;
- uint64_t intrinsic = GetIContextHandle(context)->scriptIntrinsicCreate((ScriptIntrinsicID)id, _element);
- return (RsScript) intrinsic;
- }
- RsScriptKernelID RsHidlAdaptation::ScriptKernelIDCreate (RsContext context, RsScript script, int slot, int sig)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- uint64_t kernelID = GetIContextHandle(context)->scriptKernelIDCreate(_script, slot, sig);
- return (RsScriptKernelID) kernelID;
- }
- RsScriptInvokeID RsHidlAdaptation::ScriptInvokeIDCreate (RsContext context, RsScript script, int slot)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- uint64_t invokeID = GetIContextHandle(context)->scriptInvokeIDCreate(_script, slot);
- return (RsScriptInvokeID) invokeID;
- }
- RsScriptFieldID RsHidlAdaptation::ScriptFieldIDCreate (RsContext context, RsScript script, int slot)
- {
- uint64_t _script = (uint64_t)(uintptr_t)script;
- uint64_t fieldID = GetIContextHandle(context)->scriptFieldIDCreate(_script, slot);
- return (RsScriptFieldID) fieldID;
- }
- RsScriptGroup RsHidlAdaptation::ScriptGroupCreate (RsContext context, RsScriptKernelID * kernels, size_t kernelsSize,
- RsScriptKernelID * src, size_t srcSize,
- RsScriptKernelID * dstK, size_t dstKSize,
- RsScriptFieldID * dstF, size_t dstFSize,
- const RsType * type, size_t typeSize)
- {
- std::vector<ScriptKernelID> _kernels(kernelsSize / sizeof(RsScriptKernelID));
- std::vector<ScriptKernelID> _src(srcSize / sizeof(RsScriptKernelID));
- std::vector<ScriptKernelID> _dstK(dstKSize / sizeof(RsScriptKernelID));
- std::vector<ScriptFieldID> _dstF(dstFSize / sizeof(RsScriptFieldID));
- std::vector<Type> _type(typeSize / sizeof(RsType));
- for (size_t i = 0; i < _kernels.size(); i++) {
- _kernels[i] = (ScriptKernelID)(uintptr_t)kernels[i];
- }
- for (size_t i = 0; i < _src.size(); i++) {
- _src[i] = (ScriptKernelID)(uintptr_t)src[i];
- }
- for (size_t i = 0; i < _dstK.size(); i++) {
- _dstK[i] = (ScriptKernelID)(uintptr_t)dstK[i];
- }
- for (size_t i = 0; i < _dstF.size(); i++) {
- _dstF[i] = (ScriptFieldID)(uintptr_t)dstF[i];
- }
- for (size_t i = 0; i < _type.size(); i++) {
- _type[i] = (Type)(uintptr_t)type[i];
- }
- uint64_t scriptGroup = GetIContextHandle(context)->scriptGroupCreate(_kernels, _src, _dstK, _dstF, _type);
- return (RsScriptGroup) scriptGroup;
- }
- RsScriptGroup2 RsHidlAdaptation::ScriptGroup2Create(RsContext context, const char* name, size_t nameLength,
- const char* cacheDir, size_t cacheDirLength,
- RsClosure* closures, size_t numClosures)
- {
- std::vector<Closure> _closures(numClosures);
- for (size_t i = 0; i < numClosures; i++) {
- _closures[i] = (Closure)(uintptr_t)closures[i];
- }
- uint64_t scriptGroup2 = GetIContextHandle(context)->scriptGroup2Create(hidl_string(name), hidl_string(cacheDir), _closures);
- return (RsScriptGroup2) scriptGroup2;
- }
- void RsHidlAdaptation::ScriptGroupSetOutput (RsContext context, RsScriptGroup sg, RsScriptKernelID kid, RsAllocation alloc)
- {
- uint64_t _sg = (uint64_t)(uintptr_t)sg;
- uint64_t _kid = (uint64_t)(uintptr_t)kid;
- uint64_t _alloc = (uint64_t)(uintptr_t)alloc;
- GetIContextHandle(context)->scriptGroupSetOutput(_sg, _kid, _alloc);
- }
- void RsHidlAdaptation::ScriptGroupSetInput (RsContext context, RsScriptGroup sg, RsScriptKernelID kid, RsAllocation alloc)
- {
- uint64_t _sg = (uint64_t)(uintptr_t)sg;
- uint64_t _kid = (uint64_t)(uintptr_t)kid;
- uint64_t _alloc = (uint64_t)(uintptr_t)alloc;
- GetIContextHandle(context)->scriptGroupSetInput(_sg, _kid, _alloc);
- }
- void RsHidlAdaptation::ScriptGroupExecute (RsContext context, RsScriptGroup sg)
- {
- uint64_t _sg = (uint64_t)(uintptr_t)sg;
- GetIContextHandle(context)->scriptGroupExecute(_sg);
- }
- void RsHidlAdaptation::AllocationIoSend (RsContext context, RsAllocation allocation)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationIoSend(_allocation);
- }
- int64_t RsHidlAdaptation::AllocationIoReceive (RsContext context, RsAllocation allocation)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationIoReceive(_allocation);
- // Fix me.
- return 0;
- }
- void * RsHidlAdaptation::AllocationGetPointer (RsContext context, RsAllocation allocation,
- uint32_t lod, RsAllocationCubemapFace face,
- uint32_t z, uint32_t array, size_t *stride, size_t strideLen)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- void* ptr;
- GetIContextHandle(context)->allocationGetPointer(_allocation, lod,
- (AllocationCubemapFace)face, z,
- [&ptr, stride] (void* retPtr, uint64_t retStride) {
- ptr = retPtr;
- if (retStride > 0) {
- *stride = retStride;
- }
- });
- return ptr;
- }
- void RsHidlAdaptation::AllocationSetupBufferQueue (RsContext context, RsAllocation allocation, uint32_t numAlloc)
- {
- uint64_t _allocation = (uint64_t)(uintptr_t)allocation;
- GetIContextHandle(context)->allocationSetupBufferQueue(_allocation, numAlloc);
- }
- void RsHidlAdaptation::AllocationShareBufferQueue(RsContext context, RsAllocation valloc1, RsAllocation valloc2)
- {
- uint64_t _valloc1 = (uint64_t)(uintptr_t)valloc1;
- uint64_t _valloc2 = (uint64_t)(uintptr_t)valloc2;
- GetIContextHandle(context)->allocationShareBufferQueue(_valloc1, _valloc2);
- }
- RsAllocation RsHidlAdaptation::AllocationAdapterCreate (RsContext context, RsType vtype, RsAllocation baseAlloc)
- {
- uint64_t _vtype = (uint64_t)(uintptr_t)vtype;
- uint64_t _baseAlloc = (uint64_t)(uintptr_t)baseAlloc;
- uint64_t allocationAdapter = GetIContextHandle(context)->allocationAdapterCreate(_vtype, _baseAlloc);
- return (RsAllocation) allocationAdapter;
- }
- void RsHidlAdaptation::AllocationAdapterOffset (RsContext context, RsAllocation alloc, const uint32_t * offsets, size_t offsets_length)
- {
- uint64_t _alloc = (uint64_t)(uintptr_t)alloc;
- hidl_vec<uint32_t> _offsets;
- _offsets.setToExternal(const_cast<uint32_t *>(offsets), offsets_length / sizeof(uint32_t));
- GetIContextHandle(context)->allocationAdapterOffset(_alloc, _offsets);
- }
|