Commit eebf92ba authored by Konstantin Matskevich's avatar Konstantin Matskevich

fix for incorrect opencl device selection

parent dc28451b
...@@ -1410,7 +1410,7 @@ bool useOpenCL() ...@@ -1410,7 +1410,7 @@ bool useOpenCL()
{ {
CoreTLSData* data = coreTlsData.get(); CoreTLSData* data = coreTlsData.get();
if( data->useOpenCL < 0 ) if( data->useOpenCL < 0 )
data->useOpenCL = (int)haveOpenCL(); data->useOpenCL = (int)haveOpenCL() && Device::getDefault().ptr() != NULL;
return data->useOpenCL > 0; return data->useOpenCL > 0;
} }
...@@ -1419,7 +1419,7 @@ void setUseOpenCL(bool flag) ...@@ -1419,7 +1419,7 @@ void setUseOpenCL(bool flag)
if( haveOpenCL() ) if( haveOpenCL() )
{ {
CoreTLSData* data = coreTlsData.get(); CoreTLSData* data = coreTlsData.get();
data->useOpenCL = flag ? 1 : 0; data->useOpenCL = (flag && Device::getDefault().ptr() != NULL) ? 1 : 0;
} }
} }
...@@ -2245,6 +2245,7 @@ not_found: ...@@ -2245,6 +2245,7 @@ not_found:
std::cerr << deviceTypes[t] << " "; std::cerr << deviceTypes[t] << " ";
std::cerr << std::endl << " Device name: " << (deviceName.length() == 0 ? "any" : deviceName) << std::endl; std::cerr << std::endl << " Device name: " << (deviceName.length() == 0 ? "any" : deviceName) << std::endl;
throw cv::Exception();
return NULL; return NULL;
} }
......
...@@ -88,7 +88,7 @@ void UMatData::unlock() ...@@ -88,7 +88,7 @@ void UMatData::unlock()
MatAllocator* UMat::getStdAllocator() MatAllocator* UMat::getStdAllocator()
{ {
if( ocl::haveOpenCL() ) if( ocl::haveOpenCL() && ocl::useOpenCL() )
return ocl::getOpenCLAllocator(); return ocl::getOpenCLAllocator();
return Mat::getStdAllocator(); return Mat::getStdAllocator();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment