From: cristy Date: Sun, 16 Dec 2012 18:20:09 +0000 (+0000) Subject: Guided parallism. X-Git-Tag: 7.0.1-0~4583 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=26b649100680af051e65caec259bf535dbdb5b1a;p=imagemagick Guided parallism. --- diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c index 78237e7b7..63162f60d 100644 --- a/MagickCore/attribute.c +++ b/MagickCore/attribute.c @@ -171,7 +171,7 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image, GetPixelInfo(image,&zero); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -390,7 +390,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception) } #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -454,7 +454,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception) */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -938,7 +938,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,image->colors,1) #endif for (i=0; i < (ssize_t) image->colors; i++) { @@ -978,7 +978,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image, range); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1042,7 +1042,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/cache.c b/MagickCore/cache.c index 98bb65d62..b2b4b4dcd 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -4912,7 +4912,7 @@ static MagickBooleanType SetCacheAlphaChannel(Image *image,const Quantum alpha, image_view=AcquireVirtualCacheView(image,exception); /* must be virtual */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/channel.c b/MagickCore/channel.c index 210a6b858..b23f92738 100644 --- a/MagickCore/channel.c +++ b/MagickCore/channel.c @@ -141,7 +141,7 @@ static MagickBooleanType ChannelImage(Image *destination_image, width=MagickMin(source_image->columns,destination_image->columns); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,source_image,height,1) #endif for (y=0; y < (ssize_t) height; y++) { @@ -661,7 +661,7 @@ MagickExport Image *SeparateImage(const Image *image, separate_view=AcquireAuthenticCacheView(separate_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c index 90be84390..89a4f30c8 100644 --- a/MagickCore/colormap.c +++ b/MagickCore/colormap.c @@ -205,9 +205,9 @@ MagickExport MagickBooleanType CycleColormapImage(Image *image, (void) SetImageType(image,PaletteType,exception); status=MagickTrue; image_view=AcquireAuthenticCacheView(image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -332,7 +332,7 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,image->colors,1) #endif for (i=0; i < (ssize_t) image->colors; i++) image->colormap[i].alpha=(double) i; diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index 3b9d6a087..17349b21a 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -265,7 +265,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -334,7 +334,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -397,7 +397,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -459,7 +459,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -524,7 +524,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -589,7 +589,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -654,7 +654,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -719,7 +719,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -788,7 +788,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -863,7 +863,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -965,9 +965,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, image->filename); black=pow(10.0,(reference_black-reference_white)*(gamma/density)*0.002f/ film_gamma); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) logmap[i]=ScaleMapToQuantum((double) (MaxMap*(reference_white+ @@ -976,7 +976,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1041,7 +1041,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1110,7 +1110,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1172,7 +1172,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1233,7 +1233,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1317,9 +1317,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1350,9 +1350,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1382,9 +1382,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1453,9 +1453,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1485,9 +1485,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1517,9 +1517,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, */ primary_info.y=(double) (MaxMap+1.0f)/2.0f; primary_info.z=(double) (MaxMap+1.0f)/2.0f; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1540,9 +1540,9 @@ static MagickBooleanType sRGBTransformImage(Image *image, /* Linear conversion tables. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -1573,7 +1573,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2230,7 +2230,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2298,7 +2298,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2362,7 +2362,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2419,7 +2419,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2484,7 +2484,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2549,7 +2549,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2614,7 +2614,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2679,7 +2679,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2748,7 +2748,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2821,7 +2821,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2936,7 +2936,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3001,7 +3001,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3070,7 +3070,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3131,7 +3131,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3220,9 +3220,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, I and Q, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3251,9 +3251,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, Cb and Cr, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3281,9 +3281,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, Cb and Cr, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3310,9 +3310,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, YCC is scaled by 1.3584. C1 zero is 156 and C2 is at 137. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3344,9 +3344,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, I and Q, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3374,9 +3374,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, Pb and Pr, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3404,9 +3404,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, U and V, normally -0.5 through 0.5, must be normalized to the range 0 through QuantumRange. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3427,9 +3427,9 @@ static MagickBooleanType TransformsRGBImage(Image *image, /* Linear conversion tables. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i <= (ssize_t) MaxMap; i++) { @@ -3460,7 +3460,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3548,7 +3548,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,MaxMap,1) #endif for (i=0; i < (ssize_t) image->colors; i++) { diff --git a/MagickCore/compare.c b/MagickCore/compare.c index 7983c0e2b..de612e14c 100644 --- a/MagickCore/compare.c +++ b/MagickCore/compare.c @@ -179,7 +179,7 @@ MagickExport Image *CompareImages(Image *image,const Image *reconstruct_image, highlight_view=AcquireAuthenticCacheView(highlight_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,highlight_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -327,7 +327,7 @@ static MagickBooleanType GetAbsoluteDistortion(const Image *image, reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -452,7 +452,7 @@ static MagickBooleanType GetFuzzDistortion(const Image *image, reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -553,7 +553,7 @@ static MagickBooleanType GetMeanAbsoluteDistortion(const Image *image, reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -748,7 +748,7 @@ static MagickBooleanType GetMeanSquaredDistortion(const Image *image, reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -983,7 +983,7 @@ static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image, reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1593,7 +1593,7 @@ MagickExport Image *SimilarityImage(Image *image,const Image *reference, similarity_view=AcquireAuthenticCacheView(similarity_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) (image->rows-reference->rows+1); y++) { diff --git a/MagickCore/composite.c b/MagickCore/composite.c index 2b2ab3ca3..f7c031b85 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -360,7 +360,7 @@ static MagickBooleanType CompositeOverImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(composite_image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -639,7 +639,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(composite_image,image,composite_image->rows,1) #endif for (y=0; y < (ssize_t) composite_image->rows; y++) { @@ -1208,7 +1208,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(composite_image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2411,10 +2411,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture, /* Tile texture onto the image background. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) - #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) -#endif for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) texture_image->rows) { register ssize_t @@ -2441,9 +2437,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) - #pragma omp critical (MagickCore_TextureImage) -#endif proceed=SetImageProgress(image,TextureImageTag,(MagickOffsetType) y,image->rows); if (proceed == MagickFalse) @@ -2461,10 +2454,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture, status=MagickTrue; texture_view=AcquireVirtualCacheView(texture_image,exception); image_view=AcquireAuthenticCacheView(image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) - #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) -#endif for (y=0; y < (ssize_t) image->rows; y++) { MagickBooleanType @@ -2543,9 +2532,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) - #pragma omp critical (MagickCore_TextureImage) -#endif proceed=SetImageProgress(image,TextureImageTag,(MagickOffsetType) y, image->rows); if (proceed == MagickFalse) diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c index 7afb85ba9..7b9441c27 100644 --- a/MagickCore/decorate.c +++ b/MagickCore/decorate.c @@ -383,9 +383,9 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info, /* Draw sides of ornamental border. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -485,7 +485,7 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_FrameImage) #endif proceed=SetImageProgress(image,FrameImageTag,progress++,image->rows); @@ -690,9 +690,9 @@ MagickExport MagickBooleanType RaiseImage(Image *image, status=MagickTrue; progress=0; image_view=AcquireAuthenticCacheView(image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,raise_info->height,1) #endif for (y=0; y < (ssize_t) raise_info->height; y++) { @@ -790,7 +790,7 @@ MagickExport MagickBooleanType RaiseImage(Image *image, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_RaiseImage) #endif proceed=SetImageProgress(image,RaiseImageTag,progress++,image->rows); @@ -798,9 +798,9 @@ MagickExport MagickBooleanType RaiseImage(Image *image, status=MagickFalse; } } -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows-2*raise_info->height,1) #endif for (y=(ssize_t) raise_info->height; y < (ssize_t) (image->rows-raise_info->height); y++) { @@ -876,7 +876,7 @@ MagickExport MagickBooleanType RaiseImage(Image *image, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_RaiseImage) #endif proceed=SetImageProgress(image,RaiseImageTag,progress++,image->rows); @@ -884,9 +884,9 @@ MagickExport MagickBooleanType RaiseImage(Image *image, status=MagickFalse; } } -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,raise_info->height,1) #endif for (y=(ssize_t) (image->rows-raise_info->height); y < (ssize_t) image->rows; y++) { @@ -979,7 +979,7 @@ MagickExport MagickBooleanType RaiseImage(Image *image, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_RaiseImage) #endif proceed=SetImageProgress(image,RaiseImageTag,progress++,image->rows); diff --git a/MagickCore/distort.c b/MagickCore/distort.c index 2a854023d..51e7d80cb 100644 --- a/MagickCore/distort.c +++ b/MagickCore/distort.c @@ -2327,7 +2327,7 @@ MagickExport Image *DistortImage(const Image *image,DistortImageMethod method, distort_view=AcquireAuthenticCacheView(distort_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,distort_image,distort_image->rows,1) #endif for (j=0; j < (ssize_t) distort_image->rows; j++) { @@ -3050,7 +3050,7 @@ MagickExport Image *SparseColorImage(const Image *image, sparse_view=AcquireAuthenticCacheView(sparse_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,sparse_image,sparse_image->rows,1) #endif for (j=0; j < (ssize_t) sparse_image->rows; j++) { diff --git a/MagickCore/draw.c b/MagickCore/draw.c index fdfcb5d0a..354840c76 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -1107,8 +1107,7 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -1169,13 +1168,12 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image, stop=(ssize_t) floor(edge.y2+0.5); #if defined(MAGICKCORE_OPENMP_SUPPORT) height=(size_t) (floor(edge.y2+0.5)-ceil(edge.y1-0.5)); - width=(size_t) (floor(edge.x2+0.5)-ceil(edge.x1-0.5)); #endif source_view=AcquireVirtualCacheView(source,exception); image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(source,image,height,1) #endif for (y=start; y <= stop; y++) { @@ -3239,8 +3237,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -3264,12 +3261,11 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, GetPixelInfo(image,&zero); #if defined(MAGICKCORE_OPENMP_SUPPORT) height=bounding_box.height-bounding_box.y; - width=bounding_box.width-bounding_box.x; #endif image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(image,image,height,1) #endif for (y=bounding_box.y; y < (ssize_t) bounding_box.height; y++) { @@ -3815,8 +3811,7 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -3875,7 +3870,6 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) height=(size_t) (floor(bounds.y2+0.5)-ceil(bounds.y1-0.5)); - width=(size_t) (floor(bounds.x2+0.5)-ceil(bounds.x1-0.5)); #endif if (primitive_info->coordinates == 1) { @@ -3886,7 +3880,7 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image, stop=(ssize_t) floor(bounds.y2+0.5); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(image,image,height,1) #endif for (y=start; y <= stop; y++) { @@ -3949,7 +3943,7 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image, stop=(ssize_t) floor(bounds.y2+0.5); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(image,image,height,1) #endif for (y=start; y <= stop; y++) { diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 5db0aa45b..5cd53e849 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -300,7 +300,7 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,blur_image->rows,1) #endif for (y=0; y < (ssize_t) blur_image->rows; y++) { @@ -625,7 +625,7 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius, sharp_view=AcquireAuthenticCacheView(sharp_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,sharp_image,sharp_image->rows,1) #endif for (y=0; y < (ssize_t) sharp_image->rows; y++) { @@ -953,7 +953,7 @@ MagickExport Image *BlurImage(const Image *image,const double radius, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1078,7 +1078,7 @@ MagickExport Image *BlurImage(const Image *image,const double radius, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,image->columns,1) #endif for (x=0; x < (ssize_t) blur_image->columns; x++) { @@ -1284,7 +1284,7 @@ static void Hull(const Image *image,const ssize_t x_offset, r=p+(y_offset*(columns+2)+x_offset); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) \ - dynamic_number_threads(image,columns,rows,1) + dynamic_number_threads(image,image,rows,1) #endif for (y=0; y < (ssize_t) rows; y++) { @@ -1321,7 +1321,7 @@ static void Hull(const Image *image,const ssize_t x_offset, s=q-(y_offset*(columns+2)+x_offset); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) \ - dynamic_number_threads(image,columns,rows,1) + dynamic_number_threads(image,image,rows,1) #endif for (y=0; y < (ssize_t) rows; y++) { @@ -1952,7 +1952,7 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2728,7 +2728,7 @@ MagickExport Image *RadialBlurImage(const Image *image,const double angle, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3038,7 +3038,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius, blur_view=AcquireAuthenticCacheView(blur_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,blur_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3303,7 +3303,7 @@ MagickExport Image *ShadeImage(const Image *image,const MagickBooleanType gray, shade_view=AcquireAuthenticCacheView(shade_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,shade_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3629,7 +3629,7 @@ MagickExport Image *SpreadImage(const Image *image,const double radius, spread_view=AcquireAuthenticCacheView(spread_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,spread_image,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3771,7 +3771,7 @@ MagickExport Image *UnsharpMaskImage(const Image *image,const double radius, unsharp_view=AcquireAuthenticCacheView(unsharp_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,unsharp_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index c1025359c..a59c27960 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -354,7 +354,7 @@ MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -740,7 +740,7 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -905,7 +905,7 @@ MagickExport MagickBooleanType ContrastImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1201,7 +1201,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1352,7 +1352,7 @@ MagickExport Image *EnhanceImage(const Image *image,ExceptionInfo *exception) enhance_view=AcquireAuthenticCacheView(enhance_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,enhance_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1671,7 +1671,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1838,7 +1838,7 @@ MagickExport MagickBooleanType GammaImage(Image *image,const double gamma, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2008,7 +2008,7 @@ MagickExport MagickBooleanType HaldClutImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2213,7 +2213,7 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2378,7 +2378,7 @@ MagickExport MagickBooleanType LevelizeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2928,7 +2928,7 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3157,7 +3157,7 @@ MagickExport MagickBooleanType NegateImage(Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3459,7 +3459,7 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/feature.c b/MagickCore/feature.c index 8368b5fca..a3aa372af 100644 --- a/MagickCore/feature.c +++ b/MagickCore/feature.c @@ -224,7 +224,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -595,7 +595,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,number_grays,number_grays,1) + dynamic_number_threads(image,image,number_grays,1) #endif for (i=0; i < 4; i++) { @@ -780,7 +780,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,number_grays,number_grays,1) + dynamic_number_threads(image,image,number_grays,1) #endif for (i=0; i < 4; i++) { @@ -856,7 +856,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,number_grays,number_grays,1) + dynamic_number_threads(image,image,number_grays,1) #endif for (i=0; i < 4; i++) { @@ -977,7 +977,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, (void) ResetMagickMemory(&sum_squares,0,sizeof(sum_squares)); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,number_grays,number_grays,1) + dynamic_number_threads(image,image,number_grays,1) #endif for (i=0; i < 4; i++) { @@ -1129,7 +1129,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,number_grays,number_grays,1) + dynamic_number_threads(image,image,number_grays,1) #endif for (i=0; i < 4; i++) { diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 036039505..5f5e63f72 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -318,7 +318,7 @@ MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type, #if defined(MAGICKCORE_OPENMP_SUPPORT) key=GetRandomSecretKey(random_info[0]); #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,noise_image,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -480,7 +480,7 @@ MagickExport Image *BlueShiftImage(const Image *image,const double factor, shift_view=AcquireAuthenticCacheView(shift_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,shift_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -743,7 +743,7 @@ MagickExport Image *ColorizeImage(const Image *image,const char *blend, colorize_view=AcquireAuthenticCacheView(colorize_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,colorize_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -961,7 +961,7 @@ MagickExport Image *ColorMatrixImage(const Image *image, color_view=AcquireAuthenticCacheView(color_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,color_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3073,7 +3073,7 @@ MagickExport Image *FxImage(const Image *image,const char *expression, fx_view=AcquireAuthenticCacheView(fx_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,fx_image,fx_image->rows,1) #endif for (y=0; y < (ssize_t) fx_image->rows; y++) { @@ -3267,7 +3267,7 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount, implode_view=AcquireAuthenticCacheView(implode_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,implode_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3512,7 +3512,7 @@ MagickExport Image *MorphImages(const Image *image,const size_t number_frames, morph_view=AcquireAuthenticCacheView(morph_images,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(morph_image,morph_image,morph_image->rows,1) #endif for (y=0; y < (ssize_t) morph_images->rows; y++) { @@ -4163,7 +4163,7 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold, sepia_view=AcquireAuthenticCacheView(sepia_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,sepia_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -4458,7 +4458,7 @@ MagickExport Image *SketchImage(const Image *image,const double radius, random_view=AcquireAuthenticCacheView(random_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(random_image,random_image,random_image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) random_image->rows; y++) { @@ -4632,7 +4632,7 @@ MagickExport MagickBooleanType SolarizeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -5112,7 +5112,7 @@ MagickExport Image *SwirlImage(const Image *image,double degrees, swirl_view=AcquireAuthenticCacheView(swirl_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,swirl_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -5349,7 +5349,7 @@ MagickExport Image *TintImage(const Image *image,const char *blend, tint_view=AcquireAuthenticCacheView(tint_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,tint_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -5650,7 +5650,7 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude, BackgroundVirtualPixelMethod); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,wave_image,wave_image->rows,1) #endif for (y=0; y < (ssize_t) wave_image->rows; y++) { diff --git a/MagickCore/image-view.c b/MagickCore/image-view.c index 29353fc1c..3b3fd5a6c 100644 --- a/MagickCore/image-view.c +++ b/MagickCore/image-view.c @@ -223,8 +223,7 @@ MagickExport MagickBooleanType DuplexTransferImageViewIterator( #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -244,9 +243,8 @@ MagickExport MagickBooleanType DuplexTransferImageViewIterator( progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -542,8 +540,7 @@ MagickExport MagickBooleanType GetImageViewIterator(ImageView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -558,9 +555,8 @@ MagickExport MagickBooleanType GetImageViewIterator(ImageView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -888,8 +884,7 @@ MagickExport MagickBooleanType SetImageViewIterator(ImageView *destination, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -908,9 +903,8 @@ MagickExport MagickBooleanType SetImageViewIterator(ImageView *destination, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=destination->extent.height-destination->extent.y; - width=destination->extent.width-destination->extent.x; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(destination_image,width,height,1) + dynamic_number_threads(destination_image,destination_image,height,1) #endif for (y=destination->extent.y; y < (ssize_t) destination->extent.height; y++) { @@ -1017,8 +1011,7 @@ MagickExport MagickBooleanType TransferImageViewIterator(ImageView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -1038,9 +1031,8 @@ MagickExport MagickBooleanType TransferImageViewIterator(ImageView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -1152,8 +1144,7 @@ MagickExport MagickBooleanType UpdateImageViewIterator(ImageView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -1171,9 +1162,8 @@ MagickExport MagickBooleanType UpdateImageViewIterator(ImageView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { diff --git a/MagickCore/image.c b/MagickCore/image.c index d829b9cef..4f8239167 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -541,7 +541,7 @@ MagickExport Image *AppendImages(const Image *images, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1653,7 +1653,7 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1908,7 +1908,7 @@ MagickExport Image *NewMagickImage(const ImageInfo *image_info, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2180,7 +2180,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2259,7 +2259,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2485,7 +2485,7 @@ MagickExport MagickBooleanType SetImageColor(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3139,7 +3139,7 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3611,7 +3611,7 @@ MagickExport MagickBooleanType SyncImage(Image *image,ExceptionInfo *exception) image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(range_exception,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c index 32e39ae5d..0e2a9f450 100644 --- a/MagickCore/morphology.c +++ b/MagickCore/morphology.c @@ -2657,7 +2657,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image, #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,morphology_image,image->columns,1) #endif for (x=0; x < (ssize_t) image->columns; x++) { @@ -2834,7 +2834,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,morphology_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/paint.c b/MagickCore/paint.c index 22697b89b..3669f70a1 100644 --- a/MagickCore/paint.c +++ b/MagickCore/paint.c @@ -591,7 +591,7 @@ MagickExport Image *OilPaintImage(const Image *image,const double radius, paint_view=AcquireAuthenticCacheView(paint_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,paint_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -787,7 +787,7 @@ MagickExport MagickBooleanType OpaquePaintImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -914,7 +914,7 @@ MagickExport MagickBooleanType TransparentPaintImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1041,7 +1041,7 @@ MagickExport MagickBooleanType TransparentPaintImageChroma(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/prepress.c b/MagickCore/prepress.c index db031cf59..e1bb02d75 100644 --- a/MagickCore/prepress.c +++ b/MagickCore/prepress.c @@ -113,7 +113,7 @@ MagickExport double GetImageTotalInkDensity(Image *image, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/profile.c b/MagickCore/profile.c index fbd7301c5..0eec40b44 100644 --- a/MagickCore/profile.c +++ b/MagickCore/profile.c @@ -860,7 +860,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index 6503d46bd..f449e8993 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -543,7 +543,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2377,7 +2377,7 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels, if (image->storage_class == PseudoClass) #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,1,1) + dynamic_number_threads(image,image,image->colors,1) #endif for (i=0; i < (ssize_t) image->colors; i++) { @@ -2405,7 +2405,7 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3304,7 +3304,7 @@ static MagickBooleanType SetGrayscaleImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3381,7 +3381,7 @@ static MagickBooleanType SetGrayscaleImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/resize.c b/MagickCore/resize.c index f4ad88433..4685527ef 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -1627,7 +1627,7 @@ MagickExport Image *InterpolativeResizeImage(const Image *image, scale.y=(double) image->rows/resize_image->rows; #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,resize_image,resize_image->rows,1) #endif for (y=0; y < (ssize_t) resize_image->rows; y++) { @@ -2236,7 +2236,7 @@ static MagickBooleanType HorizontalFilter(const ResizeFilter *resize_filter, resize_view=AcquireAuthenticCacheView(resize_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,resize_image,resize_image->columns,1) #endif for (x=0; x < (ssize_t) resize_image->columns; x++) { @@ -2450,7 +2450,7 @@ static MagickBooleanType VerticalFilter(const ResizeFilter *resize_filter, resize_view=AcquireAuthenticCacheView(resize_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,resize_image,resize_image->rows,1) #endif for (y=0; y < (ssize_t) resize_image->rows; y++) { diff --git a/MagickCore/segment.c b/MagickCore/segment.c index 2a35850c3..ff9245e33 100644 --- a/MagickCore/segment.c +++ b/MagickCore/segment.c @@ -534,7 +534,7 @@ static MagickBooleanType Classify(Image *image,short **extrema, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/shear.c b/MagickCore/shear.c index 2694b2435..aac51e0b4 100644 --- a/MagickCore/shear.c +++ b/MagickCore/shear.c @@ -573,7 +573,7 @@ static void RadonProjection(const Image *image,RadonInfo *source_cells, } #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) \ - dynamic_number_threads(image,p->width,p->height,1) + dynamic_number_threads(image,image,p->width,1) #endif for (x=0; x < (ssize_t) p->width; x++) { @@ -654,7 +654,7 @@ static MagickBooleanType RadonTransform(const Image *image, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -704,7 +704,7 @@ static MagickBooleanType RadonTransform(const Image *image, (void) ResetRadonCells(source_cells); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1026,9 +1026,9 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, */ GetPixelCacheTileSize(image,&tile_width,&tile_height); tile_width=image->columns; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows/tile_height,1) #endif for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height) { @@ -1129,7 +1129,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_IntegralRotateImage) #endif proceed=SetImageProgress(image,RotateImageTag,progress+=tile_height, @@ -1242,9 +1242,9 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, */ GetPixelCacheTileSize(image,&tile_width,&tile_height); tile_width=image->columns; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows/tile_height,1) #endif for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height) { @@ -1334,7 +1334,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, tile_pixels+=width*GetPixelChannels(image); q+=GetPixelChannels(rotate_image); } -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_IntegralRotateImage) #endif sync=SyncCacheViewAuthenticPixels(rotate_view,exception); @@ -1447,7 +1447,7 @@ static MagickBooleanType XShearImage(Image *image,const double degrees, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(image,image,height,1) #endif for (y=0; y < (ssize_t) height; y++) { @@ -1663,7 +1663,7 @@ static MagickBooleanType YShearImage(Image *image,const double degrees, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,width,height,1) + dynamic_number_threads(image,image,width,1) #endif for (x=0; x < (ssize_t) width; x++) { diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c index 601dbd2dd..7057cb272 100644 --- a/MagickCore/statistic.c +++ b/MagickCore/statistic.c @@ -492,7 +492,7 @@ MagickExport Image *EvaluateImages(const Image *images, { #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,images,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -600,7 +600,7 @@ MagickExport Image *EvaluateImages(const Image *images, { #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,images,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -810,7 +810,7 @@ MagickExport MagickBooleanType EvaluateImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,image,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1039,7 +1039,7 @@ MagickExport MagickBooleanType FunctionImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1303,7 +1303,7 @@ MagickExport MagickBooleanType GetImageKurtosis(const Image *image, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1430,7 +1430,7 @@ MagickExport MagickBooleanType GetImageRange(const Image *image,double *minima, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status,initialize) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1823,7 +1823,7 @@ MagickExport Image *PolynomialImage(const Image *images, polynomial_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2501,7 +2501,7 @@ MagickExport Image *StatisticImage(const Image *image,const StatisticType type, statistic_view=AcquireAuthenticCacheView(statistic_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,statistic_image,statistic_image->rows,1) #endif for (y=0; y < (ssize_t) statistic_image->rows; y++) { diff --git a/MagickCore/thread-private.h b/MagickCore/thread-private.h index 81a7c99ca..597bab316 100644 --- a/MagickCore/thread-private.h +++ b/MagickCore/thread-private.h @@ -30,13 +30,12 @@ extern "C" { Single threaded unless workload justifies the threading overhead. */ #define WorkloadThreshold() (16*GetMagickResourceLimit(ThreadResource)) -#define dynamic_number_threads(image,columns,rows,expression) \ - if (((((columns) > WorkloadThreshold()) || \ - ((rows) > WorkloadThreshold()))) && ((MagickSizeType) \ - ((columns)*(rows)) > (WorkloadThreshold()*WorkloadThreshold())) && \ - (expression)) \ - num_threads(GetMagickResourceLimit(ThreadResource) == 1 ? 1 : \ - GetImagePixelCacheType(image) == DiskCache ? 2 : \ +#define dynamic_number_threads(source,destination,rows,expression) \ + if (((rows) > WorkloadThreshold()) && (expression)) \ + num_threads((source) != (destination) ? \ + GetMagickResourceLimit(ThreadResource) : \ + GetMagickResourceLimit(ThreadResource) == 1 ? 1 : \ + GetImagePixelCacheType(source) == DiskCache ? 2 : \ GetMagickResourceLimit(ThreadResource)) #if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10)) diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c index cec9f3567..46bbd210d 100644 --- a/MagickCore/threshold.c +++ b/MagickCore/threshold.c @@ -206,7 +206,7 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, threshold_view=AcquireAuthenticCacheView(threshold_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,threshold_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -411,7 +411,7 @@ MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -582,7 +582,7 @@ MagickExport MagickBooleanType BlackThresholdImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -740,7 +740,7 @@ MagickExport MagickBooleanType ClampImage(Image *image,ExceptionInfo *exception) image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1363,7 +1363,7 @@ MagickExport MagickBooleanType OrderedPosterizeImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1537,7 +1537,7 @@ MagickExport MagickBooleanType PerceptibleImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1704,7 +1704,7 @@ MagickExport MagickBooleanType RandomThresholdImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,key == ~0UL) + dynamic_number_threads(image,image,image->rows,key == ~0UL) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1884,7 +1884,7 @@ MagickExport MagickBooleanType WhiteThresholdImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/transform.c b/MagickCore/transform.c index b5a04894c..b854e1b6d 100644 --- a/MagickCore/transform.c +++ b/MagickCore/transform.c @@ -159,9 +159,9 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, progress=0; image_view=AcquireVirtualCacheView(image,exception); chop_view=AcquireAuthenticCacheView(chop_image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,chop_image,extent.y,1) #endif for (y=0; y < (ssize_t) extent.y; y++) { @@ -219,7 +219,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_ChopImage) #endif proceed=SetImageProgress(image,ChopImageTag,progress++,image->rows); @@ -230,9 +230,9 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, /* Extract chop image. */ -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows-(extent.y+extent.height),1) #endif for (y=0; y < (ssize_t) (image->rows-(extent.y+extent.height)); y++) { @@ -291,7 +291,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_ChopImage) #endif proceed=SetImageProgress(image,ChopImageTag,progress++,image->rows); @@ -590,7 +590,7 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry, crop_view=AcquireAuthenticCacheView(crop_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,crop_image,crop_image->rows,1) #endif for (y=0; y < (ssize_t) crop_image->rows; y++) { @@ -952,7 +952,7 @@ MagickExport Image *ExcerptImage(const Image *image, excerpt_view=AcquireAuthenticCacheView(excerpt_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,excerpt_image,excerpt_image->rows,1) #endif for (y=0; y < (ssize_t) excerpt_image->rows; y++) { @@ -1158,9 +1158,9 @@ MagickExport Image *FlipImage(const Image *image,ExceptionInfo *exception) page=image->page; image_view=AcquireVirtualCacheView(image,exception); flip_view=AcquireAuthenticCacheView(flip_image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,flip_image,flip_image->rows,1) #endif for (y=0; y < (ssize_t) flip_image->rows; y++) { @@ -1221,7 +1221,7 @@ MagickExport Image *FlipImage(const Image *image,ExceptionInfo *exception) MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_FlipImage) #endif proceed=SetImageProgress(image,FlipImageTag,progress++,image->rows); @@ -1305,9 +1305,9 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception) page=image->page; image_view=AcquireVirtualCacheView(image,exception); flop_view=AcquireAuthenticCacheView(flop_image,exception); -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,flop_image,flop_image->rows,1) #endif for (y=0; y < (ssize_t) flop_image->rows; y++) { @@ -1368,7 +1368,7 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception) MagickBooleanType proceed; -#if defined(MAGICKCORE_OPENMP_SUPPORT) && defined(NoBenefitFromParallelism) +#if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp critical (MagickCore_FlopImage) #endif proceed=SetImageProgress(image,FlopImageTag,progress++,image->rows); @@ -1437,7 +1437,7 @@ static inline MagickBooleanType CopyImageRegion(Image *destination, destination_view=AcquireAuthenticCacheView(destination,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(source,columns,rows,1) + dynamic_number_threads(source,destination,rows,1) #endif for (y=0; y < (ssize_t) rows; y++) { @@ -1679,6 +1679,11 @@ MagickExport Image *SpliceImage(const Image *image, RectangleInfo splice_geometry; +#if defined(MAGICKCORE_OPENMP_SUPPORT) + size_t + height; +#endif + ssize_t y; @@ -1766,7 +1771,7 @@ MagickExport Image *SpliceImage(const Image *image, splice_view=AcquireAuthenticCacheView(splice_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,splice_image,splice_geometry.y,1) #endif for (y=0; y < (ssize_t) splice_geometry.y; y++) { @@ -1870,8 +1875,9 @@ MagickExport Image *SpliceImage(const Image *image, } } #if defined(MAGICKCORE_OPENMP_SUPPORT) + height=splice_image->rows-2*splice_geometry.height; #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,splice_image,height,1) #endif for (y=(ssize_t) (splice_geometry.y+splice_geometry.height); y < (ssize_t) splice_image->rows; y++) @@ -2223,7 +2229,7 @@ MagickExport Image *TransposeImage(const Image *image,ExceptionInfo *exception) transpose_view=AcquireAuthenticCacheView(transpose_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,transpose_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2373,7 +2379,7 @@ MagickExport Image *TransverseImage(const Image *image,ExceptionInfo *exception) transverse_view=AcquireAuthenticCacheView(transverse_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,transverse_image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/version.h b/MagickCore/version.h index 84e60195e..693b2ce81 100644 --- a/MagickCore/version.h +++ b/MagickCore/version.h @@ -27,14 +27,14 @@ extern "C" { */ #define MagickPackageName "ImageMagick" #define MagickCopyright "Copyright (C) 1999-2013 ImageMagick Studio LLC" -#define MagickSVNRevision "10227M" +#define MagickSVNRevision "10255M" #define MagickLibVersion 0x700 #define MagickLibVersionText "7.0.0" #define MagickLibVersionNumber 8,0,0 #define MagickLibAddendum "-0" #define MagickLibInterface 8 #define MagickLibMinInterface 8 -#define MagickReleaseDate "2012-12-13" +#define MagickReleaseDate "2012-12-16" #define MagickChangeDate "20121005" #define MagickAuthoritativeURL "http://www.imagemagick.org" #if defined(MAGICKCORE_OPENMP_SUPPORT) diff --git a/MagickWand/wand-view.c b/MagickWand/wand-view.c index f854d6ab6..1addd31b7 100644 --- a/MagickWand/wand-view.c +++ b/MagickWand/wand-view.c @@ -271,8 +271,7 @@ WandExport MagickBooleanType DuplexTransferWandViewIterator(WandView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -292,9 +291,8 @@ WandExport MagickBooleanType DuplexTransferWandViewIterator(WandView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -531,8 +529,7 @@ WandExport MagickBooleanType GetWandViewIterator(WandView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -547,9 +544,8 @@ WandExport MagickBooleanType GetWandViewIterator(WandView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -932,8 +928,7 @@ WandExport MagickBooleanType SetWandViewIterator(WandView *destination, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -952,9 +947,8 @@ WandExport MagickBooleanType SetWandViewIterator(WandView *destination, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=destination->extent.height-destination->extent.y; - width=destination->extent.width-destination->extent.x; #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(destination_image,width,height,1) + dynamic_number_threads(destination_image,destination_image,height,1) #endif for (y=destination->extent.y; y < (ssize_t) destination->extent.height; y++) { @@ -1070,8 +1064,7 @@ WandExport MagickBooleanType TransferWandViewIterator(WandView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -1091,9 +1084,8 @@ WandExport MagickBooleanType TransferWandViewIterator(WandView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -1228,8 +1220,7 @@ WandExport MagickBooleanType UpdateWandViewIterator(WandView *source, #if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; #endif ssize_t @@ -1247,9 +1238,8 @@ WandExport MagickBooleanType UpdateWandViewIterator(WandView *source, progress=0; #if defined(MAGICKCORE_OPENMP_SUPPORT) height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(source_image,width,height,1) + dynamic_number_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { diff --git a/PerlMagick/Makefile.PL b/PerlMagick/Makefile.PL index 33aebf16b..ddbda57c8 100644 --- a/PerlMagick/Makefile.PL +++ b/PerlMagick/Makefile.PL @@ -44,12 +44,15 @@ sub AutodetectWin32gcc { my (@l,@b,@i) = ( (),(),() ); # try to detect 'lib' dir + push @l, catfile($dirpath,'lib'); push @l, catfile($dirpath,'..','lib'); push @l, catfile($dirpath,'..','..','lib'); push @l, catfile($dirpath,'..','..','..','lib'); foreach (@l) { push @libdir, $_ if (-d $_) }; # try to detect 'bin' dir + push @b, catfile($dirpath); + push @b, catfile($dirpath,'bin'); push @b, catfile($dirpath,'..'); push @b, catfile($dirpath,'..','bin'); push @b, catfile($dirpath,'..','..'); @@ -59,6 +62,8 @@ sub AutodetectWin32gcc { foreach (@b) { push @bindir, $_ if (-e "$_/convert.exe" || -e "$_/identify.exe") }; # try to detect 'include' dir + push @i, catfile($dirpath,'include'); + push @i, catfile($dirpath,'include','ImageMagick'); push @i, catfile($dirpath,'..','include'); push @i, catfile($dirpath,'..','include','ImageMagick'); push @i, catfile($dirpath,'..','..','include'); diff --git a/configure b/configure index 61250cd9a..1d050a8ef 100755 --- a/configure +++ b/configure @@ -3649,7 +3649,7 @@ MAGICK_LIBRARY_CURRENT_MIN=`expr $MAGICK_LIBRARY_CURRENT - $MAGICK_LIBRARY_AGE` MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE -MAGICK_SVN_REVISION=10227M +MAGICK_SVN_REVISION=10255M diff --git a/filters/analyze.c b/filters/analyze.c index de5f0da9b..fada3332c 100644 --- a/filters/analyze.c +++ b/filters/analyze.c @@ -146,7 +146,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc, image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(status) \ - dynamic_number_threads(image,image->columns,image->rows,1) + dynamic_number_threads(image,image,image->rows,1) #endif for (y=0; y < (ssize_t) image->rows; y++) {