<div dir="ltr">Hi, all!<div><br></div><div>I spent last week testing different compilers on Linux and Windows. I decided to gather all the information I found in a nice report so we could reuse it later :)</div><div><br></div><div>Report about compilers available for Krita<br>==========================================<br><br>Linux<br>-----<br><br>1) Ubuntu 16.04<br>   <br>   * uses GCC 5.5.0 by default<br>   * has GCC 9.4.0 available via `ppa:ubuntu-toolchain-r/test` repository<br><br>     - GCC 9.4.0 gives 10-30% better performance on Linux (I have tested on both, Intel and Ryzen7)<br>     - I have already switched our AppImage builds to use GCC 9.4.0<br><br>2) Ubuntu 20.04<br>   <br>   * uses GCC 9.3.0 by default<br>   * has GCC 11.1.0 available via `ppa:ubuntu-toolchain-r/test` repository <br>   <br>     - GCC 11.1.0 gives almost the same performance as 9.4.0 (about 2% better though)<br>     - GCC 11.1.0 needs our deps patched a bit, because of changes in include header dependencies. In practice, you just need to add `#include <limits>` here and there.<br>     - The patches that fix deps compilation on GCC 11.1.0 have already been pushed to master<br>       <br>Windows<br>-------<br><br>1) MinGW64-builds (the ones we use atm)<br>   <br>   * uses GCC 7.3.0<br>   * works somewhat fine<br>   <br>2) TDM-GCC (<a href="https://jmeubank.github.io/tdm-gcc/">https://jmeubank.github.io/tdm-gcc/</a>)<br><br>   * uses GCC 10.3.0<br>   * compiles Krita and its deps fine <br>   * (!) causes speed regressions in the brush benchmarks<br>   * (!) the compiler itself is 32-bit, so it might be not very efficient on 64-bit devices<br>   <br>3) MSYS (<a href="http://msys2.org">msys2.org</a>)<br>  <br>   * uses GCC 10.3.0<br>   * the compiler is 64-bit, which is good<br>   * when installing MSYS-MINGW64 one must skip installing GDB, because it requires Python, which conflicts with Krita's python<br>   * (!) has three libraries dynamically linked to GCC, which conflict with Krita's deps:<br>     <br>      - expat<br>      - iconv<br>      - zlib<br>   <br>      Compiling of these deps should be manually patched out from Krita's deps (they are listed as deps to other deps)<br>       <br>   * (!) drmingw fails to build (though I guess it is solvable)<br>   * (!) compilation script of SIP and PyQt should be patched to use `--install-base` instead of `--prefix`. I don't know why.<br>   * (!) still causes the same regressions in the brush benchmarks<br>   * (!) when packaging, Krita package fails to run on another system because of the absent zlib, libintl and expat. Perhaps they should be added to teh package manually. I didn't try it though.<br><div><br></div><div>Raw data of the benchmarks can be found here:</div><div><br></div><div><a href="https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU">https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU</a><br></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Dmitry Kazakov</div></div></div>