static bool ocl_setIdentity( InputOutputArray _m, const Scalar& s )
{
- int type = _m.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type), kercn = cn;
- if (cn == 1)
+ int type = _m.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type), kercn = cn, rowsPerWI = 1;
+ int sctype = CV_MAKE_TYPE(depth, cn == 3 ? 4 : cn);
+ if (ocl::Device::getDefault().isIntel())
{
- kercn = std::min(ocl::predictOptimalVectorWidth(_m), 4);
- if (kercn != 4)
- kercn = 1;
+ rowsPerWI = 4;
+ if (cn == 1)
+ {
+ kercn = std::min(ocl::predictOptimalVectorWidth(_m), 4);
+ if (kercn != 4)
+ kercn = 1;
+ }
}
- int sctype = CV_MAKE_TYPE(depth, cn == 3 ? 4 : cn),
- rowsPerWI = ocl::Device::getDefault().isIntel() ? 4 : 1;
ocl::Kernel k("setIdentity", ocl::core::set_identity_oclsrc,
format("-D T=%s -D T1=%s -D cn=%d -D ST=%s -D kercn=%d -D rowsPerWI=%d",