From: Elena Gvozdeva Date: Thu, 31 Jul 2014 11:21:52 +0000 (+0400) Subject: fixed ocl_flip for cn==3 X-Git-Tag: submit/tizen_ivi/20141117.190038~2^2~244^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9db8592aa85c6adba8d4d1cff192e5267b55b79b;p=profile%2Fivi%2Fopencv.git fixed ocl_flip for cn==3 --- diff --git a/modules/core/src/copy.cpp b/modules/core/src/copy.cpp index 087e087..8bd2f45 100644 --- a/modules/core/src/copy.cpp +++ b/modules/core/src/copy.cpp @@ -616,9 +616,9 @@ static bool ocl_flip(InputArray _src, OutputArray _dst, int flipCode ) { CV_Assert(flipCode >= -1 && flipCode <= 1); int type = _src.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type), - flipType, kercn = std::min(ocl::predictOptimalVectorWidth(_src, _dst), 4);; + flipType, kercn = std::min(ocl::predictOptimalVectorWidth(_src, _dst), 4); - if (cn > 4 || cn == 3) + if (cn > 4) return false; const char * kernelName; @@ -631,7 +631,7 @@ static bool ocl_flip(InputArray _src, OutputArray _dst, int flipCode ) ocl::Device dev = ocl::Device::getDefault(); int pxPerWIy = (dev.isIntel() && (dev.type() & ocl::Device::TYPE_GPU)) ? 4 : 1; - kercn = std::max(kercn, cn); + kercn = (cn!=3 || flipType == FLIP_ROWS) ? std::max(kercn, cn) : cn; ocl::Kernel k(kernelName, ocl::core::flip_oclsrc, format( "-D T=%s -D T1=%s -D cn=%d -D PIX_PER_WI_Y=%d -D kercn=%d",