Removed duplicated code in Pow implementation that triggers wrong assert on Intel iGPU.

pull/26062/head
Alexander Smorkalov 5 months ago
parent f4c2e4f872
commit 76bf17a248
  1. 18
      modules/core/src/mathfuncs.cpp

@ -1203,16 +1203,6 @@ static bool ocl_pow(InputArray _src, double power, OutputArray _dst,
_dst.createSameSize(_src, type);
if (is_ipower)
{
if (ipower == 0)
{
_dst.setTo(Scalar::all(1));
return true;
}
if (ipower == 1)
{
_src.copyTo(_dst);
return true;
}
if( ipower < 0 )
{
if( depth == CV_32F || depth == CV_64F )
@ -1271,11 +1261,7 @@ void pow( InputArray _src, double power, OutputArray _dst )
bool useOpenCL = _dst.isUMat() && _src.dims() <= 2;
#endif
if( is_ipower
#ifdef HAVE_OPENCL
&& !(useOpenCL && ocl::Device::getDefault().isIntel() && depth != CV_64F)
#endif
)
if (is_ipower)
{
switch( ipower )
{
@ -1291,8 +1277,6 @@ void pow( InputArray _src, double power, OutputArray _dst )
return;
}
}
else
CV_Assert( depth == CV_32F || depth == CV_64F );
CV_OCL_RUN(useOpenCL, ocl_pow(_src, power, _dst, is_ipower, ipower))

Loading…
Cancel
Save