Merge "[RenderScript] Use OVERRIDE_RS_DRIVER string in the default implementation." into oc-dev

am: 827e291043

Change-Id: I1b6548be61440b195d283b929792a2342810120d
This commit is contained in:
Miao Wang
2017-06-02 23:28:07 +00:00
committed by android-build-merger
3 changed files with 143 additions and 65 deletions

View File

@@ -18,4 +18,11 @@ cc_library_shared {
"libutils",
"android.hardware.renderscript@1.0",
],
product_variables: {
override_rs_driver: {
cflags: ["-DOVERRIDE_RS_DRIVER=%s"],
},
},
}

View File

@@ -16,7 +16,19 @@ Context::Context(uint32_t sdkVersion, ContextType ct, int32_t flags) {
uint32_t _sdkVersion = sdkVersion;
RsContextType _ct = static_cast<RsContextType>(ct);
int32_t _flags = flags;
mContext = Device::getHal().ContextCreate(_dev, _version, _sdkVersion, _ct, _flags);
const char* driverName = nullptr;
#ifdef OVERRIDE_RS_DRIVER
#define XSTR(S) #S
#define STR(S) XSTR(S)
#define OVERRIDE_RS_DRIVER_STRING STR(OVERRIDE_RS_DRIVER)
static std::string driverString(OVERRIDE_RS_DRIVER_STRING);
driverName = driverString.c_str();
#undef XSTR
#undef STR
#endif // OVERRIDE_RS_DRIVER
mContext = Device::getHal().ContextCreateVendor(_dev, _version, _sdkVersion,
_ct, _flags, driverName);
}

View File

@@ -42,91 +42,150 @@ dispatchTable loadHAL() {
void* handle = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
dispatchTable dispatchHal = {
.SetNativeLibDir = (SetNativeLibDirFnPtr)nullptr,
.SetNativeLibDir = (SetNativeLibDirFnPtr) nullptr,
.Allocation1DData = (Allocation1DDataFnPtr)dlsym(handle, "rsAllocation1DData"),
.Allocation1DElementData = (Allocation1DElementDataFnPtr)nullptr,
.Allocation1DRead = (Allocation1DReadFnPtr)dlsym(handle, "rsAllocation1DRead"),
.Allocation2DData = (Allocation2DDataFnPtr)dlsym(handle, "rsAllocation2DData"),
.Allocation2DRead = (Allocation2DReadFnPtr)dlsym(handle, "rsAllocation2DRead"),
.Allocation3DData = (Allocation3DDataFnPtr)dlsym(handle, "rsAllocation3DData"),
.Allocation3DRead = (Allocation3DReadFnPtr)dlsym(handle, "rsAllocation3DRead"),
.AllocationAdapterCreate = (AllocationAdapterCreateFnPtr)dlsym(handle, "rsAllocationAdapterCreate"),
.AllocationAdapterOffset = (AllocationAdapterOffsetFnPtr)dlsym(handle, "rsAllocationAdapterOffset"),
.AllocationCopy2DRange = (AllocationCopy2DRangeFnPtr)dlsym(handle, "rsAllocationCopy2DRange"),
.AllocationCopy3DRange = (AllocationCopy3DRangeFnPtr)dlsym(handle, "rsAllocationCopy3DRange"),
.AllocationCopyToBitmap = (AllocationCopyToBitmapFnPtr)dlsym(handle, "rsAllocationCopyToBitmap"),
.AllocationCreateFromBitmap = (AllocationCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCreateFromBitmap"),
.AllocationCreateStrided = (AllocationCreateStridedFnPtr)dlsym(handle, "rsAllocationCreateStrided"),
.AllocationCreateTyped = (AllocationCreateTypedFnPtr)dlsym(handle, "rsAllocationCreateTyped"),
.AllocationCubeCreateFromBitmap = (AllocationCubeCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCubeCreateFromBitmap"),
.AllocationElementData = (AllocationElementDataFnPtr)dlsym(handle, "rsAllocationElementData"),
.AllocationElementRead = (AllocationElementReadFnPtr)dlsym(handle, "rsAllocationElementRead"),
.AllocationGenerateMipmaps = (AllocationGenerateMipmapsFnPtr)dlsym(handle, "rsAllocationGenerateMipmaps"),
.AllocationGetPointer = (AllocationGetPointerFnPtr)dlsym(handle, "rsAllocationGetPointer"),
.AllocationGetSurface = (AllocationGetSurfaceFnPtr)dlsym(handle, "rsAllocationGetSurface"),
.AllocationGetType = (AllocationGetTypeFnPtr)dlsym(handle, "rsaAllocationGetType"),
.AllocationIoReceive = (AllocationIoReceiveFnPtr)dlsym(handle, "rsAllocationIoReceive"),
.AllocationIoSend = (AllocationIoSendFnPtr)dlsym(handle, "rsAllocationIoSend"),
.AllocationRead = (AllocationReadFnPtr)dlsym(handle, "rsAllocationRead"),
.AllocationResize1D = (AllocationResize1DFnPtr)dlsym(handle, "rsAllocationResize1D"),
.AllocationSetSurface = (AllocationSetSurfaceFnPtr)dlsym(handle, "rsAllocationSetSurface"),
.AllocationSetupBufferQueue = (AllocationSetupBufferQueueFnPtr)dlsym(handle, "rsAllocationSetupBufferQueue"),
.AllocationShareBufferQueue = (AllocationShareBufferQueueFnPtr)dlsym(handle, "rsAllocationShareBufferQueue"),
.AllocationSyncAll = (AllocationSyncAllFnPtr)dlsym(handle, "rsAllocationSyncAll"),
.Allocation1DData =
(Allocation1DDataFnPtr)dlsym(handle, "rsAllocation1DData"),
.Allocation1DElementData = (Allocation1DElementDataFnPtr) nullptr,
.Allocation1DRead =
(Allocation1DReadFnPtr)dlsym(handle, "rsAllocation1DRead"),
.Allocation2DData =
(Allocation2DDataFnPtr)dlsym(handle, "rsAllocation2DData"),
.Allocation2DRead =
(Allocation2DReadFnPtr)dlsym(handle, "rsAllocation2DRead"),
.Allocation3DData =
(Allocation3DDataFnPtr)dlsym(handle, "rsAllocation3DData"),
.Allocation3DRead =
(Allocation3DReadFnPtr)dlsym(handle, "rsAllocation3DRead"),
.AllocationAdapterCreate = (AllocationAdapterCreateFnPtr)dlsym(
handle, "rsAllocationAdapterCreate"),
.AllocationAdapterOffset = (AllocationAdapterOffsetFnPtr)dlsym(
handle, "rsAllocationAdapterOffset"),
.AllocationCopy2DRange = (AllocationCopy2DRangeFnPtr)dlsym(
handle, "rsAllocationCopy2DRange"),
.AllocationCopy3DRange = (AllocationCopy3DRangeFnPtr)dlsym(
handle, "rsAllocationCopy3DRange"),
.AllocationCopyToBitmap = (AllocationCopyToBitmapFnPtr)dlsym(
handle, "rsAllocationCopyToBitmap"),
.AllocationCreateFromBitmap = (AllocationCreateFromBitmapFnPtr)dlsym(
handle, "rsAllocationCreateFromBitmap"),
.AllocationCreateStrided = (AllocationCreateStridedFnPtr)dlsym(
handle, "rsAllocationCreateStrided"),
.AllocationCreateTyped = (AllocationCreateTypedFnPtr)dlsym(
handle, "rsAllocationCreateTyped"),
.AllocationCubeCreateFromBitmap =
(AllocationCubeCreateFromBitmapFnPtr)dlsym(
handle, "rsAllocationCubeCreateFromBitmap"),
.AllocationElementData = (AllocationElementDataFnPtr)dlsym(
handle, "rsAllocationElementData"),
.AllocationElementRead = (AllocationElementReadFnPtr)dlsym(
handle, "rsAllocationElementRead"),
.AllocationGenerateMipmaps = (AllocationGenerateMipmapsFnPtr)dlsym(
handle, "rsAllocationGenerateMipmaps"),
.AllocationGetPointer =
(AllocationGetPointerFnPtr)dlsym(handle, "rsAllocationGetPointer"),
.AllocationGetSurface =
(AllocationGetSurfaceFnPtr)dlsym(handle, "rsAllocationGetSurface"),
.AllocationGetType =
(AllocationGetTypeFnPtr)dlsym(handle, "rsaAllocationGetType"),
.AllocationIoReceive =
(AllocationIoReceiveFnPtr)dlsym(handle, "rsAllocationIoReceive"),
.AllocationIoSend =
(AllocationIoSendFnPtr)dlsym(handle, "rsAllocationIoSend"),
.AllocationRead =
(AllocationReadFnPtr)dlsym(handle, "rsAllocationRead"),
.AllocationResize1D =
(AllocationResize1DFnPtr)dlsym(handle, "rsAllocationResize1D"),
.AllocationSetSurface =
(AllocationSetSurfaceFnPtr)dlsym(handle, "rsAllocationSetSurface"),
.AllocationSetupBufferQueue = (AllocationSetupBufferQueueFnPtr)dlsym(
handle, "rsAllocationSetupBufferQueue"),
.AllocationShareBufferQueue = (AllocationShareBufferQueueFnPtr)dlsym(
handle, "rsAllocationShareBufferQueue"),
.AllocationSyncAll =
(AllocationSyncAllFnPtr)dlsym(handle, "rsAllocationSyncAll"),
.AssignName = (AssignNameFnPtr)dlsym(handle, "rsAssignName"),
.ClosureCreate = (ClosureCreateFnPtr)dlsym(handle, "rsClosureCreate"),
.ClosureSetArg = (ClosureSetArgFnPtr)dlsym(handle, "rsClosureSetArg"),
.ClosureSetGlobal = (ClosureSetGlobalFnPtr)dlsym(handle, "rsClosureSetGlobal"),
.ContextCreate = (ContextCreateFnPtr)dlsym(handle, "rsContextCreate"),
.ContextDeinitToClient = (ContextDeinitToClientFnPtr)dlsym(handle, "rsContextDeinitToClient"),
.ContextDestroy = (ContextDestroyFnPtr)dlsym(handle, "rsContextDestroy"),
.ClosureSetGlobal =
(ClosureSetGlobalFnPtr)dlsym(handle, "rsClosureSetGlobal"),
.ContextCreateVendor =
(ContextCreateVendorFnPtr)dlsym(handle, "rsContextCreateVendor"),
.ContextDeinitToClient = (ContextDeinitToClientFnPtr)dlsym(
handle, "rsContextDeinitToClient"),
.ContextDestroy =
(ContextDestroyFnPtr)dlsym(handle, "rsContextDestroy"),
.ContextDump = (ContextDumpFnPtr)dlsym(handle, "rsContextDump"),
.ContextFinish = (ContextFinishFnPtr)dlsym(handle, "rsContextFinish"),
.ContextGetMessage = (ContextGetMessageFnPtr)dlsym(handle, "rsContextGetMessage"),
.ContextInitToClient = (ContextInitToClientFnPtr)dlsym(handle, "rsContextInitToClient"),
.ContextPeekMessage = (ContextPeekMessageFnPtr)dlsym(handle, "rsContextPeekMessage"),
.ContextSendMessage = (ContextSendMessageFnPtr)dlsym(handle, "rsContextSendMessage"),
.ContextSetCacheDir = (ContextSetCacheDirFnPtr)dlsym(handle, "rsContextSetCacheDir"),
.ContextSetPriority = (ContextSetPriorityFnPtr)dlsym(handle, "rsContextSetPriority"),
.DeviceCreate = (DeviceCreateFnPtr)nullptr,
.DeviceDestroy = (DeviceDestroyFnPtr)nullptr,
.DeviceSetConfig = (DeviceSetConfigFnPtr)nullptr,
.ElementCreate2 = (ElementCreate2FnPtr)dlsym(handle, "rsElementCreate2"),
.ContextGetMessage =
(ContextGetMessageFnPtr)dlsym(handle, "rsContextGetMessage"),
.ContextInitToClient =
(ContextInitToClientFnPtr)dlsym(handle, "rsContextInitToClient"),
.ContextPeekMessage =
(ContextPeekMessageFnPtr)dlsym(handle, "rsContextPeekMessage"),
.ContextSendMessage =
(ContextSendMessageFnPtr)dlsym(handle, "rsContextSendMessage"),
.ContextSetCacheDir =
(ContextSetCacheDirFnPtr)dlsym(handle, "rsContextSetCacheDir"),
.ContextSetPriority =
(ContextSetPriorityFnPtr)dlsym(handle, "rsContextSetPriority"),
.DeviceCreate = (DeviceCreateFnPtr) nullptr,
.DeviceDestroy = (DeviceDestroyFnPtr) nullptr,
.DeviceSetConfig = (DeviceSetConfigFnPtr) nullptr,
.ElementCreate2 =
(ElementCreate2FnPtr)dlsym(handle, "rsElementCreate2"),
.ElementCreate = (ElementCreateFnPtr)dlsym(handle, "rsElementCreate"),
.ElementGetNativeData = (ElementGetNativeDataFnPtr)dlsym(handle, "rsaElementGetNativeData"),
.ElementGetSubElements = (ElementGetSubElementsFnPtr)dlsym(handle, "rsaElementGetSubElements"),
.ElementGetNativeData =
(ElementGetNativeDataFnPtr)dlsym(handle, "rsaElementGetNativeData"),
.ElementGetSubElements = (ElementGetSubElementsFnPtr)dlsym(
handle, "rsaElementGetSubElements"),
.GetName = (GetNameFnPtr)dlsym(handle, "rsaGetName"),
.InvokeClosureCreate = (InvokeClosureCreateFnPtr)dlsym(handle, "rsInvokeClosureCreate"),
.InvokeClosureCreate =
(InvokeClosureCreateFnPtr)dlsym(handle, "rsInvokeClosureCreate"),
.ObjDestroy = (ObjDestroyFnPtr)dlsym(handle, "rsObjDestroy"),
.SamplerCreate = (SamplerCreateFnPtr)dlsym(handle, "rsSamplerCreate"),
.ScriptBindAllocation = (ScriptBindAllocationFnPtr)dlsym(handle, "rsScriptBindAllocation"),
.ScriptBindAllocation =
(ScriptBindAllocationFnPtr)dlsym(handle, "rsScriptBindAllocation"),
.ScriptCCreate = (ScriptCCreateFnPtr)dlsym(handle, "rsScriptCCreate"),
.ScriptFieldIDCreate = (ScriptFieldIDCreateFnPtr)dlsym(handle, "rsScriptFieldIDCreate"),
.ScriptForEach = (ScriptForEachFnPtr)nullptr,
.ScriptForEachMulti = (ScriptForEachMultiFnPtr)dlsym(handle, "rsScriptForEachMulti"),
.ScriptFieldIDCreate =
(ScriptFieldIDCreateFnPtr)dlsym(handle, "rsScriptFieldIDCreate"),
.ScriptForEach = (ScriptForEachFnPtr) nullptr,
.ScriptForEachMulti =
(ScriptForEachMultiFnPtr)dlsym(handle, "rsScriptForEachMulti"),
.ScriptGetVarV = (ScriptGetVarVFnPtr)dlsym(handle, "rsScriptGetVarV"),
.ScriptGroup2Create = (ScriptGroup2CreateFnPtr)dlsym(handle, "rsScriptGroup2Create"),
.ScriptGroupCreate = (ScriptGroupCreateFnPtr)dlsym(handle, "rsScriptGroupCreate"),
.ScriptGroupExecute = (ScriptGroupExecuteFnPtr)dlsym(handle, "rsScriptGroupExecute"),
.ScriptGroupSetInput = (ScriptGroupSetInputFnPtr)dlsym(handle, "rsScriptGroupSetInput"),
.ScriptGroupSetOutput = (ScriptGroupSetOutputFnPtr)dlsym(handle, "rsScriptGroupSetOutput"),
.ScriptIntrinsicCreate = (ScriptIntrinsicCreateFnPtr)dlsym(handle, "rsScriptIntrinsicCreate"),
.ScriptGroup2Create =
(ScriptGroup2CreateFnPtr)dlsym(handle, "rsScriptGroup2Create"),
.ScriptGroupCreate =
(ScriptGroupCreateFnPtr)dlsym(handle, "rsScriptGroupCreate"),
.ScriptGroupExecute =
(ScriptGroupExecuteFnPtr)dlsym(handle, "rsScriptGroupExecute"),
.ScriptGroupSetInput =
(ScriptGroupSetInputFnPtr)dlsym(handle, "rsScriptGroupSetInput"),
.ScriptGroupSetOutput =
(ScriptGroupSetOutputFnPtr)dlsym(handle, "rsScriptGroupSetOutput"),
.ScriptIntrinsicCreate = (ScriptIntrinsicCreateFnPtr)dlsym(
handle, "rsScriptIntrinsicCreate"),
.ScriptInvoke = (ScriptInvokeFnPtr)dlsym(handle, "rsScriptInvoke"),
.ScriptInvokeIDCreate = (ScriptInvokeIDCreateFnPtr)dlsym(handle, "rsScriptInvokeIDCreate"),
.ScriptInvokeIDCreate =
(ScriptInvokeIDCreateFnPtr)dlsym(handle, "rsScriptInvokeIDCreate"),
.ScriptInvokeV = (ScriptInvokeVFnPtr)dlsym(handle, "rsScriptInvokeV"),
.ScriptKernelIDCreate = (ScriptKernelIDCreateFnPtr)dlsym(handle, "rsScriptKernelIDCreate"),
.ScriptKernelIDCreate =
(ScriptKernelIDCreateFnPtr)dlsym(handle, "rsScriptKernelIDCreate"),
.ScriptReduce = (ScriptReduceFnPtr)dlsym(handle, "rsScriptReduce"),
.ScriptSetTimeZone = (ScriptSetTimeZoneFnPtr)dlsym(handle, "rsScriptSetTimeZone"),
.ScriptSetTimeZone =
(ScriptSetTimeZoneFnPtr)dlsym(handle, "rsScriptSetTimeZone"),
.ScriptSetVarD = (ScriptSetVarDFnPtr)dlsym(handle, "rsScriptSetVarD"),
.ScriptSetVarF = (ScriptSetVarFFnPtr)dlsym(handle, "rsScriptSetVarF"),
.ScriptSetVarI = (ScriptSetVarIFnPtr)dlsym(handle, "rsScriptSetVarI"),
.ScriptSetVarJ = (ScriptSetVarJFnPtr)dlsym(handle, "rsScriptSetVarJ"),
.ScriptSetVarObj = (ScriptSetVarObjFnPtr)dlsym(handle, "rsScriptSetVarObj"),
.ScriptSetVarVE = (ScriptSetVarVEFnPtr)dlsym(handle, "rsScriptSetVarVE"),
.ScriptSetVarObj =
(ScriptSetVarObjFnPtr)dlsym(handle, "rsScriptSetVarObj"),
.ScriptSetVarVE =
(ScriptSetVarVEFnPtr)dlsym(handle, "rsScriptSetVarVE"),
.ScriptSetVarV = (ScriptSetVarVFnPtr)dlsym(handle, "rsScriptSetVarV"),
.TypeCreate = (TypeCreateFnPtr)dlsym(handle, "rsTypeCreate"),
.TypeGetNativeData = (TypeGetNativeDataFnPtr)dlsym(handle, "rsaTypeGetNativeData"),
.TypeGetNativeData =
(TypeGetNativeDataFnPtr)dlsym(handle, "rsaTypeGetNativeData"),
};
return dispatchHal;