ocl: correct disabling of OpenCL code
This commit is contained in:
@@ -1364,10 +1364,16 @@ void pow( InputArray _src, double power, OutputArray _dst )
|
||||
{
|
||||
int type = _src.type(), depth = CV_MAT_DEPTH(type),
|
||||
cn = CV_MAT_CN(type), ipower = cvRound(power);
|
||||
bool is_ipower = fabs(ipower - power) < DBL_EPSILON,
|
||||
useOpenCL = _dst.isUMat() && _src.dims() <= 2;
|
||||
bool is_ipower = fabs(ipower - power) < DBL_EPSILON;
|
||||
#ifdef HAVE_OPENCL
|
||||
bool useOpenCL = _dst.isUMat() && _src.dims() <= 2;
|
||||
#endif
|
||||
|
||||
if( is_ipower && !(ocl::Device::getDefault().isIntel() && useOpenCL && depth != CV_64F))
|
||||
if( is_ipower
|
||||
#ifdef HAVE_OPENCL
|
||||
&& !(useOpenCL && ocl::Device::getDefault().isIntel() && depth != CV_64F)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
switch( ipower )
|
||||
{
|
||||
|
@@ -54,7 +54,9 @@
|
||||
|
||||
#include "opencv2/core/private.hpp"
|
||||
#include "opencv2/core/private.cuda.hpp"
|
||||
#ifdef HAVE_OPENCL
|
||||
#include "opencv2/core/ocl.hpp"
|
||||
#endif
|
||||
|
||||
#include "opencv2/hal.hpp"
|
||||
|
||||
@@ -262,7 +264,11 @@ struct ImplCollector
|
||||
|
||||
struct CoreTLSData
|
||||
{
|
||||
CoreTLSData() : device(0), useOpenCL(-1), useIPP(-1)
|
||||
CoreTLSData() :
|
||||
#ifdef HAVE_OPENCL
|
||||
device(0), useOpenCL(-1),
|
||||
#endif
|
||||
useIPP(-1)
|
||||
{
|
||||
#ifdef HAVE_TEGRA_OPTIMIZATION
|
||||
useTegra = -1;
|
||||
@@ -270,9 +276,11 @@ struct CoreTLSData
|
||||
}
|
||||
|
||||
RNG rng;
|
||||
#ifdef HAVE_OPENCL
|
||||
int device;
|
||||
ocl::Queue oclQueue;
|
||||
int useOpenCL; // 1 - use, 0 - do not use, -1 - auto/not initialized
|
||||
#endif
|
||||
int useIPP; // 1 - use, 0 - do not use, -1 - auto/not initialized
|
||||
#ifdef HAVE_TEGRA_OPTIMIZATION
|
||||
int useTegra; // 1 - use, 0 - do not use, -1 - auto/not initialized
|
||||
|
@@ -405,7 +405,9 @@ void setUseOptimized( bool flag )
|
||||
USE_SSE2 = currentFeatures->have[CV_CPU_SSE2];
|
||||
|
||||
ipp::setUseIPP(flag);
|
||||
#ifdef HAVE_OPENCL
|
||||
ocl::setUseOpenCL(flag);
|
||||
#endif
|
||||
#ifdef HAVE_TEGRA_OPTIMIZATION
|
||||
::tegra::setUseTegra(flag);
|
||||
#endif
|
||||
|
@@ -691,6 +691,7 @@ INSTANTIATE_TEST_CASE_P(UMat, getUMat, Combine(
|
||||
|
||||
///////////////////////////////////////////////////////////////// OpenCL ////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef HAVE_OPENCL
|
||||
TEST(UMat, BufferPoolGrowing)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
@@ -716,6 +717,7 @@ TEST(UMat, BufferPoolGrowing)
|
||||
else
|
||||
std::cout << "Skipped, no OpenCL" << std::endl;
|
||||
}
|
||||
#endif
|
||||
|
||||
class CV_UMatTest :
|
||||
public cvtest::BaseTest
|
||||
@@ -956,6 +958,10 @@ TEST(UMat, CopyToIfDeviceCopyIsObsolete)
|
||||
|
||||
TEST(UMat, setOpenCL)
|
||||
{
|
||||
#ifndef HAVE_OPENCL
|
||||
return; // test skipped
|
||||
#endif
|
||||
|
||||
// save the current state
|
||||
bool useOCL = cv::ocl::useOpenCL();
|
||||
|
||||
|
Reference in New Issue
Block a user