From: Konstantin Matskevich Date: Fri, 21 Mar 2014 12:56:12 +0000 (+0400) Subject: added gpu type selection in OPENCV_OPENCL_DEVICE parser X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~3365^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=79fc3a62037901606a43a58875bb2088474805d8;p=platform%2Fupstream%2Fopencv.git added gpu type selection in OPENCV_OPENCL_DEVICE parser --- diff --git a/modules/core/src/ocl.cpp b/modules/core/src/ocl.cpp index c6e0c40..736fd5f 100644 --- a/modules/core/src/ocl.cpp +++ b/modules/core/src/ocl.cpp @@ -2193,7 +2193,7 @@ static cl_device_id selectOpenCLDevice() for (size_t t = 0; t < deviceTypes.size(); t++) { int deviceType = 0; - if (deviceTypes[t] == "GPU") + if (deviceTypes[t] == "GPU" || deviceTypes[t] == "dGPU" || deviceTypes[t] == "iGPU") deviceType = Device::TYPE_GPU; else if (deviceTypes[t] == "CPU") deviceType = Device::TYPE_CPU; @@ -2229,7 +2229,14 @@ static cl_device_id selectOpenCLDevice() { std::string name; CV_OclDbgAssert(getStringInfo(clGetDeviceInfo, devices[i], CL_DEVICE_NAME, name) == CL_SUCCESS); - if (isID || name.find(deviceName) != std::string::npos) + cl_bool useGPU = true; + if(deviceTypes[t] == "dGPU" || deviceTypes[t] == "iGPU") + { + cl_bool isIGPU = CL_FALSE; + clGetDeviceInfo(devices[i], CL_DEVICE_HOST_UNIFIED_MEMORY, sizeof(isIGPU), &isIGPU, NULL); + useGPU = deviceTypes[t] == "dGPU" ? !isIGPU : isIGPU; + } + if ( (isID || name.find(deviceName) != std::string::npos) && useGPU) { // TODO check for OpenCL 1.1 return devices[i];