ocl: fix moments global_size (should be >= local_size)
authorAlexander Alekhin <alexander.alekhin@intel.com>
Thu, 2 Nov 2017 10:35:28 +0000 (13:35 +0300)
committerAlexander Alekhin <alexander.alekhin@intel.com>
Thu, 2 Nov 2017 10:37:57 +0000 (13:37 +0300)
modules/imgproc/src/moments.cpp

index 00e74f7..7e52f1f 100644 (file)
@@ -510,7 +510,8 @@ static bool ocl_moments( InputArray _src, Moments& m, bool binary)
     int ntiles = xtiles*ytiles;
     UMat umbuf(1, ntiles*K, CV_32S);
 
-    size_t globalsize[] = {(size_t)xtiles, (size_t)sz.height}, localsize[] = {1, TILE_SIZE};
+    size_t globalsize[] = {(size_t)xtiles, std::max((size_t)TILE_SIZE, (size_t)sz.height)};
+    size_t localsize[] = {1, TILE_SIZE};
     bool ok = k.args(ocl::KernelArg::ReadOnly(src),
                      ocl::KernelArg::PtrWriteOnly(umbuf),
                      xtiles).run(2, globalsize, localsize, true);