]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 6 Jan 2013 18:07:11 +0000 (18:07 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 6 Jan 2013 18:07:11 +0000 (18:07 +0000)
MagickCore/shear.c
MagickCore/thread-private.h

index 156e6b43858ed027c3c0fae59f89d2aa13922384..271f1f9170697bd8967ea9fd924d3ed0192dc33d 100644 (file)
@@ -1028,7 +1028,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
       tile_width=image->columns;
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static,4) \
-        magick_threads(image,image,image->rows/tile_height,1)
+        magick_threads(image,image,1,1)
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
@@ -1154,6 +1154,26 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static,4) \
         magick_threads(image,image,1,1)
+#endif
+      for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
+      {
+        register ssize_t
+          tile_x;
+
+        if (status == MagickFalse)
+          continue;
+        tile_x=0;
+        for ( ; tile_x < (ssize_t) image->columns; tile_x+=(ssize_t) tile_width)
+        {
+          MagickBooleanType
+            sync;
+
+          register const Quantum
+            *restrict p;
+
+          register Quantum
+            *restrict q;
+
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
index 456ed0f930fc3628d454db8e53b2985d4561f135..90b65808363876158ab381d5155e3946a385e497 100644 (file)
@@ -29,13 +29,13 @@ extern "C" {
 /*
   Single threaded unless workload justifies the threading overhead.
 */
-#define WorkloadThreshold()  (16*GetMagickResourceLimit(ThreadResource))
 #define magick_threads(source,destination,chunk,expression) \
-  num_threads((expression) == 0 ? 1 : ((chunk) > WorkloadThreshold()) && \
-    (GetImagePixelCacheType(source) != DiskCache) && \
+  num_threads((expression) == 0 ? 1 : \
+    ((chunk) > (16*GetMagickResourceLimit(ThreadResource))) && \
+     (GetImagePixelCacheType(source) != DiskCache) && \
     (GetImagePixelCacheType(destination) != DiskCache) ? \
-    GetMagickResourceLimit(ThreadResource) : \
-    GetMagickResourceLimit(ThreadResource) < 2 ? 1 : 2)
+      GetMagickResourceLimit(ThreadResource) : \
+      GetMagickResourceLimit(ThreadResource) < 2 ? 1 : 2)
 
 #if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
 #define MagickCachePrefetch(address,mode,locality) \