diff --git a/libImaging/Geometry.c b/libImaging/Geometry.c index 3389b8b3b..c77866589 100644 --- a/libImaging/Geometry.c +++ b/libImaging/Geometry.c @@ -165,10 +165,10 @@ ImagingTranspose(Imaging imOut, Imaging imIn) ImagingSectionEnter(&cookie); if (imIn->image8){ -#pragma omp parallel for private(x,y,xx,yy,yysize,xxsize) shared(imIn,imOut) default(none) collapse(2) +#pragma omp parallel for private(x,y,xx,yy,xxx,yyy,yysize,xxsize,xxxsize,yyysize) shared(imIn,imOut) default(none) collapse(2) TRANSPOSE(UINT8, image8) } else { -#pragma omp parallel for private(x,y,xx,yy,yysize,xxsize) shared(imIn,imOut) default(none) collapse(2) +#pragma omp parallel for private(x,y,xx,yy,xxx,yyy,yysize,xxsize,xxxsize,yyysize) shared(imIn,imOut) default(none) collapse(2) TRANSPOSE(INT32, image32) } ImagingSectionLeave(&cookie); diff --git a/libImaging/Resample.c b/libImaging/Resample.c index 877f25a94..39ac8716d 100644 --- a/libImaging/Resample.c +++ b/libImaging/Resample.c @@ -241,9 +241,10 @@ ImagingResampleHorizontal_8bpc(Imaging imOut, Imaging imIn, int offset, ImagingSectionEnter(&cookie); if (imIn->image8) { +#pragma omp parallel for private(k,x,xx,yy,xmin,xmax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds,offset) default(none) collapse(2) for (yy = 0; yy < imOut->ysize; yy++) { for (xx = 0; xx < imOut->xsize; xx++) { - xmin = bounds[xx * 2 + 0]; + xmin = bounds[xx * 2 + 0]; xmax = bounds[xx * 2 + 1]; k = &kk[xx * ksize]; ss0 = 1 << (PRECISION_BITS -1); @@ -254,7 +255,8 @@ ImagingResampleHorizontal_8bpc(Imaging imOut, Imaging imIn, int offset, } } else if (imIn->type == IMAGING_TYPE_UINT8) { if (imIn->bands == 2) { - for (yy = 0; yy < imOut->ysize; yy++) { +#pragma omp parallel for private(k,x,xx,yy,xmin,xmax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds,offset) default(none) collapse(2) + for (yy = 0; yy < imOut->ysize; yy++) { for (xx = 0; xx < imOut->xsize; xx++) { xmin = bounds[xx * 2 + 0]; xmax = bounds[xx * 2 + 1]; @@ -269,7 +271,8 @@ ImagingResampleHorizontal_8bpc(Imaging imOut, Imaging imIn, int offset, } } } else if (imIn->bands == 3) { - for (yy = 0; yy < imOut->ysize; yy++) { +#pragma omp parallel for private(k,x,xx,yy,xmin,xmax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds,offset) default(none) collapse(2) + for (yy = 0; yy < imOut->ysize; yy++) { for (xx = 0; xx < imOut->xsize; xx++) { xmin = bounds[xx * 2 + 0]; xmax = bounds[xx * 2 + 1]; @@ -285,6 +288,7 @@ ImagingResampleHorizontal_8bpc(Imaging imOut, Imaging imIn, int offset, } } } else { +#pragma omp parallel for private(k,x,xx,yy,xmin,xmax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds,offset) default(none) collapse(2) for (yy = 0; yy < imOut->ysize; yy++) { for (xx = 0; xx < imOut->xsize; xx++) { xmin = bounds[xx * 2 + 0]; @@ -322,7 +326,8 @@ ImagingResampleVertical_8bpc(Imaging imOut, Imaging imIn, int offset, ImagingSectionEnter(&cookie); if (imIn->image8) { - for (yy = 0; yy < imOut->ysize; yy++) { +#pragma omp parallel for private(k,y,xx,yy,ymin,ymax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds) default(none) + for (yy = 0; yy < imOut->ysize; yy++) { k = &kk[yy * ksize]; ymin = bounds[yy * 2 + 0]; ymax = bounds[yy * 2 + 1]; @@ -335,6 +340,7 @@ ImagingResampleVertical_8bpc(Imaging imOut, Imaging imIn, int offset, } } else if (imIn->type == IMAGING_TYPE_UINT8) { if (imIn->bands == 2) { +#pragma omp parallel for private(k,y,xx,yy,ymin,ymax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds) default(none) for (yy = 0; yy < imOut->ysize; yy++) { k = &kk[yy * ksize]; ymin = bounds[yy * 2 + 0]; @@ -350,6 +356,7 @@ ImagingResampleVertical_8bpc(Imaging imOut, Imaging imIn, int offset, } } } else if (imIn->bands == 3) { +#pragma omp parallel for private(k,y,xx,yy,ymin,ymax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds) default(none) for (yy = 0; yy < imOut->ysize; yy++) { k = &kk[yy * ksize]; ymin = bounds[yy * 2 + 0]; @@ -366,6 +373,7 @@ ImagingResampleVertical_8bpc(Imaging imOut, Imaging imIn, int offset, } } } else { +#pragma omp parallel for private(k,y,xx,yy,ymin,ymax,ss0,ss1,ss2,ss3) shared(imIn,imOut,kk,ksize,bounds) default(none) for (yy = 0; yy < imOut->ysize; yy++) { k = &kk[yy * ksize]; ymin = bounds[yy * 2 + 0]; diff --git a/setup.py b/setup.py index 69bd53048..26a74af22 100755 --- a/setup.py +++ b/setup.py @@ -622,7 +622,8 @@ class pil_build_ext(build_ext): exts = [(Extension("PIL._imaging", files, libraries=libs, - define_macros=defs))] + define_macros=defs, + extra_compile_args=extra_compile_args))] # # additional libraries