GNOME Bugzilla – Bug 795880
Slow version of Windows Gimp 2.10 (gimp.org)
Last modified: 2018-05-21 07:08:12 UTC
Bonjour, The official versions of Gimp 2.10.0 for Windows seemed slow and I did tests to check the speed. I tested the latest 64/32 bit version of Gimp.org, the version of Partha and GimpEval in a Windows 10 64-bit environment. I applied the 'Circular Motion Blur' filter on an image of 7206 * 7206 pixels (dimension that we use for our scrapbooking montages). The rendering of the filter is obtained after the same time on the versions of Partha and GimpEval is about 3mn 47s. The same rendering is obtained after 5mn 20s on the version of Gimp.org. This confirms this problem of slowness. I do not know if the problem comes from cross-compilation, library versions but big improvements are possible. Thank you. :o) Here are the environments of the 3 versions : ******** Gimp.org GNU Image Manipulation Program version 2.10.0 git-describe: GIMP_2_10_0 C compiler: Using built-in specs. COLLECT_GCC=x86_64-w64-mingw32-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-w64-mingw32/6.3-win32/lto-wrapper Target: x86_64-w64-mingw32 Configured with: ../../src/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir='/usr/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --enable-shared --enable-static --disable-multilib --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libgomp --enable-languages=c,c++,fortran,objc,obj-c++ --enable-lto --with-plugin-ld --enable-threads=win32 --program-suffix=-win32 --program-prefix=x86_64-w64-mingw32- --target=x86_64-w64-mingw32 --with-as=/usr/bin/x86_64-w64-mingw32-as --with-ld=/usr/bin/x86_64-w64-mingw32-ld --enable-libatomic Thread model: win32 gcc version 6.3.0 20170415 (GCC) using GEGL version 0.4.1 (compiled against version 0.4.1) using GLib version 2.54.2 (compiled against version 2.54.2) using GdkPixbuf version 2.36.11 (compiled against version 2.36.11) using GTK+ version 2.24.31 (compiled against version 2.24.31) using Pango version 1.40.11 (compiled against version 1.40.11) using Fontconfig version 2.12.6 (compiled against version 2.12.6) using Cairo version 1.15.10 (compiled against version 1.15.10) ******** Partha GNU Image Manipulation Program version 2.10.1 git-describe: GIMP_2_9_8-360-g567ff4e C compiler: Using built-in specs. COLLECT_GCC=D:Msys-Platformgccingcc.exe COLLECT_LTO_WRAPPER=D:/Msys-Platform/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/7.1.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../../../src/gcc-7.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw710/x86_64-710-posix-seh-rt_v5-rev1/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev1, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw710/x86_64-710-posix-seh-rt_v5-rev1/mingw64/opt/lib -L/c/mingw710/prerequisites/x86_64-zlib-static/lib -L/c/mingw710/prerequisites/x86_64-w64-mingw32-static/lib ' Thread model: posix gcc version 7.1.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project) using GEGL version 0.4.1 (compiled against version 0.4.1) using GLib version 2.54.3 (compiled against version 2.54.3) using GdkPixbuf version 2.36.6 (compiled against version 2.36.6) using GTK+ version 2.24.32 (compiled against version 2.24.32) using Pango version 1.40.14 (compiled against version 1.40.14) using Fontconfig version 2.12.4 (compiled against version 2.12.4) using Cairo version 1.15.4 (compiled against version 1.15.4) ******** GimpEval GNU Image Manipulation Program version 2.10.1 git-describe: GIMP_2_10_0-74-g2e643e6270 C compiler: Using built-in specs. COLLECT_GCC=F:petit-msys2-mingw-32bits-64bits-gimp210-qtmsys64mingw64\x08in\x86_64-w64-mingw32-gcc.exe COLLECT_LTO_WRAPPER=F:/petit-msys2-mingw-32bits-64bits-gimp210-qt/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-7.3.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev2, Built by MSYS2 project' --with-bugurl=https://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 7.3.0 (Rev2, Built by MSYS2 project) using GEGL version 0.4.1 (compiled against version 0.4.1) using GLib version 2.56.1 (compiled against version 2.56.1) using GdkPixbuf version 2.36.12 (compiled against version 2.36.12) using GTK+ version 2.24.32 (compiled against version 2.24.32) using Pango version 1.42.1 (compiled against version 1.42.1) using Fontconfig version 2.13.0 (compiled against version 2.13.0) using Cairo version 1.15.12 (compiled against version 1.15.12)
I can confirm that the official build of 2.10.0 is much slower than 2.8.x on Win10/64 machine with 8GB RAM, 2.5Ghz i5 processor, updated graphics drivers. Used Windows Installer version, not self-compiled. Most operations, such as applying a Gaussian blur, take at least 3 secs (I do not have exact timing) to redraw on the canvas; you can almost double that amount of time and include other simple operations such as rearranging/adding/deleting layers or even loading/opening the file for 16-bit images. These operations run smoother/faster in Partha-build. Example image properties: TIFF, 24 mp, 144 MB 6008x4008 pixels 300x300 ppi RGB color space 16-bit gamma integer
Anyone knows if Partha applies any patches (last I heard, he was not patching, but who knows)? Or tweak some environment variables in a launch script? And what are his build command lines? I can't find much details on his website (but I may not have searched at the right place).
Bonjour, I did other tests with the same 7206 * 7206 pixel image and the 'Circular Motion Blur' filter. I'm getting significant improvements in speed by using Gimp 2.10.0 32-bit versions of gimp.org and Gimp 2.10.1 32-bit GimpEval: Gimp 2.10.0 32 bit gimp.org: 1mn 53s GimpEval 32 bits: 2mn 30s OpenCL option By validating the 'OpenCL' option of GimpEval 64 bits the improvement is also very important 36 seconds to obtain the rendering of the filter versus 3mn 47s. For 32-bit versions the times are the same: Gimp 2.10.0 32 bit gimp.org: 37s 32-bit GimpEval: 37s Conclusion: I am very surprised that 32-bit versions are faster than 64-bit versions. :o) @Jehan I will answer on the Partha version in a few minutes. Merci.
(In reply to Jehan from comment #2) > Anyone knows if Partha applies any patches (last I heard, he was not > patching, but who knows)? Bonjour, The version (portable) of Partha has not changed : Gimp-2.10.0-std-64bit-portable.exe md5 : 2e56c14ce7742867c6aaaa4b6f4039d8 110 Mo (116 226 991 octets) :o)
Sylvie > I was unclear: I was asking if anyone knows if Partha made changes in the code to warrant a faster build. Or maybe he played with some environment variables changing internal behaviors. If nobody knows about these, I would appreciate someone asking him. You can also point him to this bug report so that he can comment himself optionally. :-)
Bonjour, > If nobody knows about these, I would appreciate someone asking him. Y I'm sorry for the misunderstanding. I contacted Partha by email. :o)
Sorry, I was not aware of this bug report and Elle just apprised me of it as well. No, I have no idea why the official version is slow. As for my builds, my methodology has been the same for a long time. I use the same compiler to build every single graphic/gtk/glib/etc. dependency from scratch and then build GIMP and its dependencies with the same compiler. The FLAGS I use for all my builds are: CFLAGS='-O3 -ffast-math -ftree-vectorize' CXXFLAGS='-std=c++14 -O3 -ffast-math -ftree-vectorize' with equivalent methodology and flags for my Mac builds. When I change compiler (for example when I went from 5.0.3 to 7.1) I rebuild everything from scratch. Hope that helps. Please let me know if I'm not being clear or you need further information. Thanks, Partha
Thanks Partha. Hopefully this will help our Windows package maintainers.
Hello, I need to close this bug report because it's tripping the migration tool Bugzilla API on https://bugzilla.gnome.org/show_bug.cgi?id=795880#c0. It can be moved manually later on, and since this is the only bug report that caused an issue in GIMP it shouldn't be too hard. Cheers
To clarify more my previous comment, this bug is still valid. I just need to close it for migrating the GIMP product to GitLab, since the migration tool fails parsing one of the comments. You can continue discussing here even if closed, and when moved to GitLab you will be able to continue discussing there too.