Compile under Windows

Hello,
first I want to express my gratitude to all of you who take care of this wonderful project. RT is really great software.
Yesterday I compiled my first Rawtherapee. I have Windows 10 machine and for some reason it is very slow to open installed distributable version (over 30 seconds). I thought it would maybe be best to compile RT myself and I wasn’t wrong. My compiled version opens twice faster now and is much more responsive.
I had some problems in compiling process though.
I followed procedure from RawPedia but there were some things that made me scratch my head.
First, on the list of dlls that should be copied into RT installation folder, dll libsz-1 is listed but that dll is not present in msys64/mingw64 bin folder. Instead libbz2-1 dll should be copied.
Second, when I opened my RT some icons were missing.
icons2icons1
I copied icons folder from msys64/mingw64 shared folder to my compiled RT shared folder, and now everything is fine.
I don’t know if that problem is caused by something I did wrong in compiling process, but maybe it can be a guideline for someone else. I just compared my compiled RT folder to one of installed version 5.3, and looked for differences.
Cheers!

1 Like

@sguyader @gaaned92 could you help update RawPedia with the necessary info?

@damarko
This issue was solved by a modification made after 5.3. So the new builds should start much faster.
You can get development builds and feature builds here:

@sguyader

Could you check the list of all dependencies I copy in the builds.
I dont’know if they are all required

  1. dlls
    The list in rawpedia is ok except the error in libbz2-1 name

  2. Adwaita icons
    icons/Adwaita/16x16/actions/*
    icons/Adwaita/16x16/devices icons/Adwaita/16x16/mimetypes/*
    icons/Adwaita/16x16/places icons/Adwaita/16x16/status/*
    icons/Adwaita/48x48/devices/*
    icons/Adwaita/24x24/status/image-missing.png

from prefix/share → .share

  1. Adwaita cursors
    plus.cur
    sb_h_double_arrow.cur
    sb_left_arrow.cur
    sb_right_arrow.cur
    sb_v_double_arrow.cur
    from prefix/share/icons/Adwaita/cursors
    to ./share/icons/Adwaita.cursors

4 adwaita files
icon-theme.cache
index.theme
from prefix/share/icons/Adwaita
to ./share/icons/Adwaita

4 Schemas
\share\glib-2.0\schemas\gschemas.compiled → .\share\glib-2.0\schemas

5 gdk pixbuf

/lib/gdk-pixbuf-2.0/* to ./lib/gdk-pixbuf-2.0

6 Lensfun DB
Its ok in rawpedia.
As I make my own lensfun build, location is different.
Perhaps we should document lensfun build.

Copy of GTK2 files should be suppressed.

Hello gaaned92, I checked development builds and they are faster, but not as fast as “my” :slight_smile:
But it is only 4 or 5 sec difference.

In my builds I have also:

icons/Adwaita/16x16/places/*

Without these icons, I see some missing icons (for example “Home” icon) in Preferences > File Browser > opening the dialog for “Other” for “Image Directory at Startup”.

I don’t have (and don’t seem to need):

  • the Adwaita cursors
  • ./lib/gdk-pixbuf-2.0 (in fact I don’t have the .lib directory at all, wasn’t it needed only for Gtk2 builds?)

I also made my own lensfun build, so I can’t comment on this.

My expertise in Windows builds has decreased a lot since @gaaned92 started to make them much quicker than I was able to do (my own OS is Linux, so I haven’t made any Windows build since 5.3-rc1 I think).

@sguyader thanks
I will check all your remarks.

@damarko
Interesting. Could you upload a build at filebin.net please.

https://filebin.net/iyhrwvrnmdq4qgz1

Here it is… I uploaded two compressed files: original build after compiling process, and complete build with copied dlls and folders.

Thanks.
The main difference in your build flags is the use of march=native instead of mtune=generic I use to be able to distribute the builds.
Effectively you build seems to start faster. On my machine (i6700K) its not really noticeable as your build takes about 2s to start on empty dir.
I will try the other flags I don’t use to see if it improves the speed.

@damarko Native builds use all the features of your CPU, while generic builds can’t do that (because they have to work on all CPUs which are supported by the build), Means if your CPU for example supports SSE4, AVX and FMA, the generic build will only support SSE2, whole your native build will support also SSE4, AVX and FMA.

Ingo, that is the reason I decided to compile. I red this forum for some time and concluded it would be best to have the software that would be adopted to my system specifications, although I am not very skillful in doing such things.
What amazes me is that when I turn on my machine, or restart it, RT opens in few seconds. Later, when windows load its stuff, opening time reaches 30 seconds. It is not so big problem for me, but I really consider installing linux alongside.

@damarko

That’s a good reason

At this time, do you have enough memory available? I don’t observe this behaviour on my W10 machine (16GB)

I have 8 GB of memory, Intel I5 processor, ssd hd… not a beast, but I think there should be no problem?
I also whitelisted RT folder in antivirus and antispyware software, deactivated floppy in bios…

Have you inserted (and optionally removed) any memory cards, network drives, other mass storage devices, etc?

I have external hd inserted.

And if you don’t insert the external HD after booting Windows, and if you don’t use any programs which can create new “devices”, does the startup time still go from 5s to 30s?

Now I removed external hd, restarted computer and tried… no big difference… just after booting into windows program opens in a few seconds, after approximately one minute opening time is about 25 sec.
Thank you for your efforts but you don’t have to waste your time with this. It’s obviously something in my comp setup that is preventing RT from loading faster, but I can live with that. Just one more sip of coffee :slightly_smiling_face:

When I test here, the above icons do not seem missing. Do you notice this bug with one of my own build?
Nevertheless I will add it.

If I remember, it was @TooWaBoo who gave me this list.
When deleting the cursors, nothing seems changed. I have to test further.

Does’nt seem required

But do you think it should be documented?

@gaaned92
The cursor I gave you look better than the originales. e.g. a fine crosshair for curves and identical arrows for all crop directions.

I agree, but in order everybody can include them in builds, should it be possible to ship those cursors with rawtherapee and perhaps install them ?

Simple answer, Yes. :slight_smile: