]> granicus.if.org Git - imagemagick/commitdiff
Fixed rounding and added clFlush to keep Intel happy.
authordirk <dirk@git.imagemagick.org>
Tue, 5 Jul 2016 19:22:15 +0000 (21:22 +0200)
committerdirk <dirk@git.imagemagick.org>
Tue, 5 Jul 2016 19:22:15 +0000 (21:22 +0200)
MagickCore/accelerate.c

index fb6ddee322550865ddf8315c013642ee8f067f94..35cc3938a460a39fce3b2dbf16fdd7eb6f674c84 100644 (file)
@@ -3216,7 +3216,7 @@ static Image *ComputeLocalContrastImage(const Image *image,MagickCLEnv clEnv,
       imageRows = (unsigned int) image->rows;
       iRadius = (cl_int) (image->rows > image->columns ? image->rows : image->columns) * 0.002f * fabs(radius); // Normalized radius, 100% gives blur radius of 20% of the largest dimension
 
-      passes = ((1.0f * imageColumns) * imageColumns * iRadius) / 4000000000.0f;
+      passes = (((1.0f * imageColumns) * imageColumns * iRadius) + 3999999999) / 4000000000.0f;
       passes = (passes < 1) ? 1: passes;
 
       /* set the kernel arguments */
@@ -3256,6 +3256,7 @@ static Image *ComputeLocalContrastImage(const Image *image,MagickCLEnv clEnv,
           (void) OpenCLThrowMagickException(device,exception, GetMagickModule(), ResourceLimitWarning, "clEnv->library->clEnqueueNDRangeKernel failed.", ".");
           goto cleanup;
         }
+        clEnv->library->clFlush(queue);
         RecordProfileData(device,blurRowKernel,event);
       }
     }
@@ -3299,6 +3300,7 @@ static Image *ComputeLocalContrastImage(const Image *image,MagickCLEnv clEnv,
           (void) OpenCLThrowMagickException(device,exception, GetMagickModule(), ResourceLimitWarning, "clEnv->library->clEnqueueNDRangeKernel failed.", ".");
           goto cleanup;
         }
+        clEnv->library->clFlush(queue);
         RecordProfileData(device,blurColumnKernel,event);
       }
     }