@@ -2269,7 +2269,7 @@ bool Kernel::run(int dims, size_t _globalsize[], size_t _localsize[],
2269
2269
return false ;
2270
2270
2271
2271
cl_command_queue qq = getQueue (q);
2272
- size_t offset[CV_MAX_DIM] = { 0 }, globalsize[CV_MAX_DIM] = {1 ,1 ,1 };
2272
+ size_t globalsize[CV_MAX_DIM] = {1 ,1 ,1 };
2273
2273
size_t total = 1 ;
2274
2274
CV_Assert (_globalsize != 0 );
2275
2275
for (int i = 0 ; i < dims; i++)
@@ -2278,15 +2278,16 @@ bool Kernel::run(int dims, size_t _globalsize[], size_t _localsize[],
2278
2278
dims == 1 ? 64 : dims == 2 ? (i == 0 ? 256 : 8 ) : dims == 3 ? (8 >>(int )(i>0 )) : 1 ;
2279
2279
CV_Assert ( val > 0 );
2280
2280
total *= _globalsize[i];
2281
- globalsize[i] = ((_globalsize[i] + val - 1 )/val)*val;
2281
+ if (_globalsize[i] == 1 )
2282
+ val = 1 ;
2283
+ globalsize[i] = divUp (_globalsize[i], (unsigned int )val) * val;
2282
2284
}
2283
- if ( total == 0 )
2284
- return true ;
2285
+ CV_Assert (total > 0 );
2285
2286
if ( p->haveTempDstUMats )
2286
2287
sync = true ;
2287
2288
cl_event asyncEvent = 0 ;
2288
2289
cl_int retval = clEnqueueNDRangeKernel (qq, p->handle , (cl_uint)dims,
2289
- offset , globalsize, _localsize, 0 , 0 ,
2290
+ NULL , globalsize, _localsize, 0 , 0 ,
2290
2291
sync ? 0 : &asyncEvent);
2291
2292
#if CV_OPENCL_SHOW_RUN_ERRORS
2292
2293
if (retval != CL_SUCCESS)
0 commit comments