Win 32 Build Please?

@Bezier
As I was out of home, I didn’t notice your preceding post. Sorry for that.

The first two errors are tied to the 32 bits build process that is no longer updated on rawpedia
The last is a new requirement from last MSYS2 update

The problem with XP is due to the window manager incompatible with GTK3.
Vista is the first system with the new window manager.

The problem comes from a commit that broke W32 build.

So before trying to debug, if you are patient, I will try to find where it happened. Perhaps @floessie or @heckflosse know that.

I am going to build different versions which Iwill upload at
https://keybase.pub/gaaned92/RTW32NightlyBuilds/

For each version please indicate if it is good or bad

1- RawTherapee_5.3_WinVista_32.zip

If maintaining the info is not possible, please remove the section. RawPedia should contain simple and easy to follow instructions, without branching in the logic.

The 32-bit architecture is problematic for our use, image processing. 4G of addressable memory sounds like a lot, but in-memory image arrays can be quite large and you typically need displays and thumbnails in addition to the working image. My program actually maintains a working image for each tool, so I rapidly eat up memory, by design. I still do a 32-bit build, but in that build I had to incorporate a 16-bit float data type for working images to keep them small enough to allow a decent stack of applied tools.

I’m pretty cheap when it comes to computers, but I gave up on 32-bit machines when photography re-inserted itself in my day. I still have a WinBook tablet, 4 cores but only 32-bit address space, so it’s going to the daughter for school work. The 2-core Surface 3 took its place, slower to process but I can use my regular 32-bit floating point version of rawproc.

@Morgan_Hardwood
In order to update the rawpedia windows build page, could you indicate me where to find the update procedure and how to submit you a draft?

@gaaned92
http://rawpedia.rawtherapee.com/Windows
Click “Request account” in the top-right corner, follow instructions, I’ll confirm you, then you can edit.

Please keep to this philosophy: document the easiest, fool-proof way to compile RT under Windows. Don’t confuse the reader with different paths. Don’t duplicate information - link to a specific section in Linux - RawPedia if needed.

@ggbutcher
Generally agreed. It’s just that, in my case, RT 5.0 32bit official version runs fine, as does LR, as does C1, as does Gimp, … but any newer version of RT crashes :frowning:
I don’t plan to buy a new machine before the end of support of Win7. It’s not that I’m particularly cheap, not even regarding computers, but my current computer works perfectly for everything I do (with the exception of RT > 5.0), and setting up a new computer, with the 200+ programs I use more or less regularly, will cost me my annual vacation or a couple of months’ worth of weekends… Something I don’t want to do every other year or so.
“My program” refers to what? RT?

Best regards,
Bezier

rawproc. Ironically, when I was searching the FOSS raw converter offerings, one of the main considerations was snappy running on a cheap Windows tablet, with 32-bit Win7. Not satisfied with the others in this regard, I’ve written my own. It’s on github, here’s a link to the most recent release:

The top link is to the 32-bit Windows installer. Please note, it’s more of a “swiss army knife”, a set of the most needed tools, but you are responsible for which you use and in what order. It’ll not hold your hand like RT or dt…

@gaaned92
Bingo! I just installed “RawTherapee_dev_5.4-134-g840908e4_WinVista_32.zip” from the link you gave, and now it works (albeit very slowly; opening and processing a picture takes about 2-3 times longer than with RT 5.0).

Thank you! At least I can now check out the new features!

Now that I have already installed the tools, I’d still like to try to build myself; any information on what to to differently from the description in RawPedia? Where can I find the source you used?

Best regards,
Bezier

1 Like

@Bezier

It’s a good news and unexpected.
So now I am going to build the last dev version dev_5.4-228-g52968a97 that you will find at the same location.
Can you test and confirm if it works or not.

Regarding building, I am in the way to correct and if possible simplify the procedure.
there is nothing to do differently from what is written (except fot thre bugd you noticed).
If you want to build on a regular basis, the best is to write bash scripts.

The builds you are testing are compiled from the dev branch.
If you are in your RT repository, type git checkout dev to switch on that branch. (see http://rawpedia.rawtherapee.com/Linux#Choose_a_branch)

I am now on the way to update the procedure.

note : the second field of the build name gives you the branch name. (see https://keybase.pub/gaaned92/RTW32NightlyBuilds/readme.html)

@gaaned92
Branch 228 also works :slight_smile:
Speed is the same as with 134, i.e. 2 - 3 times slower than “RT 5.0-r1-gtk2 for Windows XP or newer 32-bit - fast” (processing a sample image takes 22s vs. 8s).

The user interface could be a bit slower due to GTK3 vs GTK2 (that’s outside of our control), but the processing speed should be faster when using the same tool settings.

Make sure you’re using a “release” build and not a “debug” one, and make sure they’re compiled using the same flags and optimizations.

The current 32bit Windows builds are without SSE2 support.

I thought we agreed to drop x86 no-SSE (January 2018)? Then again, we also agreed to drop Windows XP support (January 2017).

That was my intention as I opened the issue but iirc finally we got no agreement on this because there exist nonx86 architectures as well and the problems with 32bit SSE builds have been only on Windows.
So if someone makes Win32 builds without SSE and they work, why not?

If someone makes a Win32 build with SSE and the build crashes, we likely won’t support bugfixes, because none of the devs has access to Win32.

Sometimes ago (don’t remember when and which commit), I was no longer able to make W32 builds with SSE. So I reverted to w32 builds with no SSE.

Do you know what is this commit that broke W32 SSE build?

As I cannot really test on a W64 machine, until recently I was not able to know if the noSSE builds were working on 32 bits PC.

@Bezier can you test this SSE build?
RawTherapee_devSSE_5.4-240-ge518e792_WinVista_32.zip

I am not optimistic as it does’nt start here

For XP the update and support ended perforce when GTK2 was dropped.

Crashes.

Reading symbols from rawtherapee-debug.exe…done.
(gdb) r
Starting program: C:\Program Files\RawTherapee\5.4-240-ge518e792\rawtherapee-deb
ug.exe
[New Thread 7664.0x2898]
[New Thread 7664.0x18cc]
[New Thread 7664.0x2d24]
[New Thread 7664.0x1854]
[New Thread 7664.0x2158]
[New Thread 7664.0x29e4]
[New Thread 7664.0x22a4]
[New Thread 7664.0x2868]
[New Thread 7664.0x278c]
[Thread 7664.0x2868 exited with code 0]
[Thread 7664.0x278c exited with code 0]

Program received signal SIGSEGV, Segmentation fault.
0x005b03a0 in LUT (this=0xae377e8)
at D:/RAWTHERAPEE/RTSOURCE/rawtherapee/rtengine/LUT.h:185
185 D:/RAWTHERAPEE/RTSOURCE/rawtherapee/rtengine/LUT.h: No such file or dire

Unfortunately, I haven’t been successful with my own build.

Strangely, when doing the “git clone http://github.com/Beep6581/RawTherapee.git …”, I get an error “fatal: unable to access ‘http://github.com/Beep6581/RawTherapee.git/’: Could not resolve host: github.com”. Using the IP address (192.30.253.112) directly results in a different, but similar error. Ping works.

So I downloaded the code instead. Make runs with a few warnings (when I first tried it a couple of days ago, there were many more). Program crashes with segmentation fault.

These are the warnings:

[ 7%] Building CXX object rtengine/CMakeFiles/rtengine.dir/cfa_linedn_RT.cc.obj
In function ‘_ZN8rtengine14RawImageSource10cfa_linednEfbbRKNS0_24CFALineDenoiseRowBlenderE._omp_fn.0’:
cc1plus.exe: warning: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Wstrict-overflow]
[ 8%] Building CXX object rtengine/CMakeFiles/rtengine.dir/ciecam02.cc.obj


[ 11%] Building CXX object rtengine/CMakeFiles/rtengine.dir/dcraw.cc.obj
In file included from D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:85:0:
C:/msys32/mingw32/i686-w64-mingw32/include/winsock2.h:15:2: warning: #warning Please include winsock2.h before windows.h [-Wcpp]
#warning Please include winsock2.h before windows.h
^~~~~~~
D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc: In member function ‘short int* DCraw::foveon_make_curve(double, double, double)’:
D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:3864:9: warning: argument 1 value ‘4294967295’ exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
curve = (short *) calloc (size+1, sizeof *curve);

In file included from C:/msys32/mingw32/include/c++/7.3.0/cstdlib:75:0,
              from C:/msys32/mingw32/include/c++/7.3.0/bits/stl_algo.h:59,
              from C:/msys32/mingw32/include/c++/7.3.0/algorithm:62,
              from D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/rt_math.h:3,
              from D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:19:
C:/msys32/mingw32/i686-w64-mingw32/include/stdlib.h:501:17: note: in a call to allocation function 'void* calloc(size_t, size_t)' declared here
void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
              ^~~~~~
In member function 'short int* DCraw::foveon_make_curve(double, double, double)',
 inlined from 'void DCraw::foveon_make_curves(short int**, float*, float*, float)' at D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:3882:39:
D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:3864:9: warning: argument 1 value '4294967295' exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
curve = (short *) calloc (size+1, sizeof *curve);
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/msys32/mingw32/include/c++/7.3.0/cstdlib:75:0,
              from C:/msys32/mingw32/include/c++/7.3.0/bits/stl_algo.h:59,
              from C:/msys32/mingw32/include/c++/7.3.0/algorithm:62,
              from D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/rt_math.h:3,
              from D:/Software/RawTherapee_Source_dev_228/repo/cloned/rtengine/dcraw.cc:19:
C:/msys32/mingw32/i686-w64-mingw32/include/stdlib.h: In member function 'void DCraw::foveon_make_curves(short int**, float*, float*, float)':
C:/msys32/mingw32/i686-w64-mingw32/include/stdlib.h:501:17: note: in a call to allocation function 'void* calloc(size_t, size_t)' declared here
void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
              ^~~~~~
[ 12%] Building CXX object rtengine/CMakeFiles/rtengine.dir/dcrop.cc.obj

@Bezier

  • thanks for test. As SSE builds crashe, I am going to make nonSSE builds.

  • For cloning
    git clone https://github.com/Beep6581/RawTherapee <MyRTRepo>

  • For the compile warnings, I think I get the same. I don’t worry. Furthermore, I don’t think some dev is willing to make corrrections in dcraw.

This clone worked :slight_smile:

However, the result of the build still crashes with a segmentation fault. Do you build exactly as cloned, or do you modify some make/compile/link parameters, or make other changes?

@Bezier
see in the aboutthisBuild.txt of a working build which flags I use to build.