[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Report about compilers available for Krita
From: Dmitry Kazakov <dimula73 () gmail ! com>
Date: 2021-08-19 7:11:47
Message-ID: CAEkBSfVsr7LUhGwUsD-t_QHgsYerhOczNUospUBvee=ArTCimA () mail ! gmail ! com
[Download RAW message or body]
Hi, all!
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 :)
Report about compilers available for Krita
==========================================
Linux
-----
1) Ubuntu 16.04
* uses GCC 5.5.0 by default
* has GCC 9.4.0 available via `ppa:ubuntu-toolchain-r/test` repository
- GCC 9.4.0 gives 10-30% better performance on Linux (I have tested on
both, Intel and Ryzen7)
- I have already switched our AppImage builds to use GCC 9.4.0
2) Ubuntu 20.04
* uses GCC 9.3.0 by default
* has GCC 11.1.0 available via `ppa:ubuntu-toolchain-r/test` repository
- GCC 11.1.0 gives almost the same performance as 9.4.0 (about 2%
better though)
- 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.
- The patches that fix deps compilation on GCC 11.1.0 have already
been pushed to master
Windows
-------
1) MinGW64-builds (the ones we use atm)
* uses GCC 7.3.0
* works somewhat fine
2) TDM-GCC (https://jmeubank.github.io/tdm-gcc/)
* uses GCC 10.3.0
* compiles Krita and its deps fine
* (!) causes speed regressions in the brush benchmarks
* (!) the compiler itself is 32-bit, so it might be not very efficient
on 64-bit devices
3) MSYS (msys2.org)
* uses GCC 10.3.0
* the compiler is 64-bit, which is good
* when installing MSYS-MINGW64 one must skip installing GDB, because it
requires Python, which conflicts with Krita's python
* (!) has three libraries dynamically linked to GCC, which conflict with
Krita's deps:
- expat
- iconv
- zlib
Compiling of these deps should be manually patched out from Krita's
deps (they are listed as deps to other deps)
* (!) drmingw fails to build (though I guess it is solvable)
* (!) compilation script of SIP and PyQt should be patched to use
`--install-base` instead of `--prefix`. I don't know why.
* (!) still causes the same regressions in the brush benchmarks
* (!) 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.
Raw data of the benchmarks can be found here:
https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU
--
Dmitry Kazakov
[Attachment #3 (text/html)]
<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_0F35MscUZBHyYCXRfoX06so5zI5LL2 \
DqU">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>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic