Commit 44d9d59f authored by Alexander Alekhin's avatar Alexander Alekhin

ocl: stop using of OpenCL without explicit UMat arguments

parent 4a095e4d
...@@ -739,6 +739,9 @@ CV_EXPORTS MatAllocator* getOpenCLAllocator(); ...@@ -739,6 +739,9 @@ CV_EXPORTS MatAllocator* getOpenCLAllocator();
#ifdef __OPENCV_BUILD #ifdef __OPENCV_BUILD
namespace internal { namespace internal {
CV_EXPORTS bool isOpenCLForced();
#define OCL_FORCE_CHECK(condition) (cv::ocl::internal::isOpenCLForced() || (condition))
CV_EXPORTS bool isPerformanceCheckBypassed(); CV_EXPORTS bool isPerformanceCheckBypassed();
#define OCL_PERFORMANCE_CHECK(condition) (cv::ocl::internal::isPerformanceCheckBypassed() || (condition)) #define OCL_PERFORMANCE_CHECK(condition) (cv::ocl::internal::isPerformanceCheckBypassed() || (condition))
......
...@@ -6073,6 +6073,18 @@ void* Image2D::ptr() const ...@@ -6073,6 +6073,18 @@ void* Image2D::ptr() const
return p ? p->handle : 0; return p ? p->handle : 0;
} }
bool internal::isOpenCLForced()
{
static bool initialized = false;
static bool value = false;
if (!initialized)
{
value = getBoolParameter("OPENCV_OPENCL_FORCE", false);
initialized = true;
}
return value;
}
bool internal::isPerformanceCheckBypassed() bool internal::isPerformanceCheckBypassed()
{ {
static bool initialized = false; static bool initialized = false;
......
...@@ -972,7 +972,7 @@ void ORB_Impl::detectAndCompute( InputArray _image, InputArray _mask, ...@@ -972,7 +972,7 @@ void ORB_Impl::detectAndCompute( InputArray _image, InputArray _mask,
int halfPatchSize = patchSize / 2; int halfPatchSize = patchSize / 2;
int border = std::max(edgeThreshold, std::max(halfPatchSize, HARRIS_BLOCK_SIZE/2))+1; int border = std::max(edgeThreshold, std::max(halfPatchSize, HARRIS_BLOCK_SIZE/2))+1;
bool useOCL = ocl::useOpenCL(); bool useOCL = ocl::useOpenCL() && OCL_FORCE_CHECK(_image.isUMat() || _descriptors.isUMat());
Mat image = _image.getMat(), mask = _mask.getMat(); Mat image = _image.getMat(), mask = _mask.getMat();
if( image.type() != CV_8UC1 ) if( image.type() != CV_8UC1 )
......
...@@ -1290,8 +1290,8 @@ void CascadeClassifierImpl::detectMultiScaleNoGrouping( InputArray _image, std:: ...@@ -1290,8 +1290,8 @@ void CascadeClassifierImpl::detectMultiScaleNoGrouping( InputArray _image, std::
#ifdef HAVE_OPENCL #ifdef HAVE_OPENCL
bool use_ocl = tryOpenCL && ocl::useOpenCL() && bool use_ocl = tryOpenCL && ocl::useOpenCL() &&
OCL_FORCE_CHECK(_image.isUMat()) &&
featureEvaluator->getLocalSize().area() > 0 && featureEvaluator->getLocalSize().area() > 0 &&
ocl::Device::getDefault().type() != ocl::Device::TYPE_CPU &&
(data.minNodesPerTree == data.maxNodesPerTree) && (data.minNodesPerTree == data.maxNodesPerTree) &&
!isOldFormatCascade() && !isOldFormatCascade() &&
maskGenerator.empty() && maskGenerator.empty() &&
...@@ -1316,7 +1316,8 @@ void CascadeClassifierImpl::detectMultiScaleNoGrouping( InputArray _image, std:: ...@@ -1316,7 +1316,8 @@ void CascadeClassifierImpl::detectMultiScaleNoGrouping( InputArray _image, std::
// OpenCL code // OpenCL code
CV_OCL_RUN(use_ocl, ocl_detectMultiScaleNoGrouping( scales, candidates )) CV_OCL_RUN(use_ocl, ocl_detectMultiScaleNoGrouping( scales, candidates ))
tryOpenCL = false; if (use_ocl)
tryOpenCL = false;
#endif #endif
// CPU code // CPU code
......
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