darktable for Windows

Gentlemen! Today, a treat especial.

After all the chatter about a Windows port of darktable I am proud to bring you a very first preview of what we have been doing in the past months. We know that there are still a few rough edges, but in order to iron those out we need your help! So if you are a Windows user and are willing to write useful bug reports and help us with fixing them afterwards:

A brand new development snapshot, compiled for 64 bit Windows. (please use the newinstaller in the update link!)

For those that care, there is also the usual GPG signature.

Please keep in mind that it’s not a real release but just a pre-alpha snapshot, with known bugs.

If you just want to use the software and try to avoid as many bugs as possible then make sure to install in a location with only ASCII letters in the path, make sure that your username just consists of ASCII letters, and that all your images are in paths only being composed from ASCII letters. I guess you can see what I want to say there: Unicode is hard, especially on Windows. We are aware of that and working on it, but some bugs are in 3rd party libraries that we need to get fixed first.

When you find problems I ask you to report them, ideally on our bug tracker (make sure to set System to Windows!) but at least mention them here.

Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please help us by reading this post with detailed explanations and making sure that we have the full raw sample set for your camera under CC0 license!

Last but not least I want to thank Peter Budai for doing most of the work required to get this done.

Edit: You no longer need any development snapshots, there is now an official release candidate for 2.4.0! Last update: 2017-12-08 08:59 UTC


Just tested on Windows 7 (64 bit).
Cpu Intel I7; 8gb Ram; Nvidia Geforce graphic card.

Played around for around 30 minutes.
No crash so far !
Very responsive as well

Thanks a lot indeed for this first version !

Here is my screenshot :

1 Like


If you find a proper way to handle non-ASCII paths and file names under Windows, I’d be really interested in learning the details… although I guess RT people already have a working solution.

Yes, we have. We had the same problem and iirc I solved it not so long ago. I can search for the issue in case there’s interest.


1 Like

Concerning non-ASCII paths we had this issue : Add to queue does not work / crash RT on modern Windows when files are in a folder which's name contains special characters (e.g. Zdjęcia) · Issue #3387 · Beep6581/RawTherapee · GitHub

1 Like

Thanks! So the fix was simply to get the file name from std::string::c_str() instead of directly from std::string?

I had error: error

  • windos 10 Home 64 bit
    -AMD A10-5750 APU with Radeon™
    -HD Graphics 250 Ghz
  • RAM 8,00 Gt

I installed Darktable in a different folder, not in Program Files.
Now the program seems to work. The program is partly translated into Finnish. How do I get the program to run entirely in English?

Please upload that file mentioned in the error window.

Yes. But it has been while ago. Don’t remember exactly :frowning:

The problem on Windows is that their API doesn’t support UTF-8 which GLIB uses everywhere (and which is the de facto standard on Linux). Instead they have ANSI codepage versions of the functions (the function names are suffixed with A) and UTF-16 versions (W added to the name). The first takes char* filenames, the latter wchar_t* – or whatever funny names Microsoft came up with for a byte and two bytes. To make stuff work we now convert the UTF-8 strings to UTF-16 and feed that to the W-version of the API.

Similar thing with fopen which should be replaced by _wfopen and used with an UTF-16 string. If you are using GLIB then you can also use g_fopen which takes care of that for Windows so you don’t need to special case anything in your code. There are a few more things like that, but in general it boils down to turning the UTF-8 string into UTF-16 and getting the right function to use that.

The part we are still struggling with are external libraries which don’t do that. For LCMS2 we can’t use any of their functions that take filenames as they refuse to fix their bug, instead we have to load the file into memory and then work on that. PugiXML has loading functions that accept UTF-16, so that could be fixed, too. The only thing we are still having trouble with is exiv2, at least in the version packaged by MSYS2. A little patching are recompiling the library adds an UTF-16 interface but that’s untested and might have some issues elsewhere. @clanmills and me are working on that.

I guess that’s all. Call me if you need any help.

1 Like

Overall this seems to be pretty stable for me. I have the Linux version installed in WSL and they work pretty much the same way. Tethering doesn’t work (it probably still tries to read from /dev/usb/) but the big problem is my main lens is still not supported both in this build and Linux. The list of supported lenses also seems a lot shorter, at least for Nikon lenses.

You should submit your lens details to the lenslensfun project.

darktable_bt_JVLR5Y.txt (4.4 KB)

I got an error at start.

That’s something I didn’t try yet. I am doing all my Windows development and testing in a VM so I am not even sure if I can really test tethering. I’ll give it a try though.

Shorter compared to what? Linux? What version of lensfun do you have installed there?

Thanks for reporting, it seems that is the same as this report. Please try to add --disable-opencl to the start command of the desktop shortcut. Just copy the one from your start menu to the desktop, then right click, edit properties, and add the option to the command after the closing ".

One more thing: What GPU do you have and what driver?

It works now. Thanks.

I have a Samsung notebook with both Intel graphic and AMD graphic.

Compared to the 2.2.5 for Ubuntu 16.04 with PPA. Right now my lensfun is version 0.2.8-3.

In ...\AppData\Local\darktable I have edited darktablerc, adding the language: ui_last/gui_language=en. This switched GUI to English. In my language (Slovenian, it seems to be very well translated), clicking the preferences button crashes DT every time, but it works in English.

1 Like

Thank you very much.

I also had the same problem as Peter. (error at start):
darktable_bt_UNAM5Y.txt (4.9 KB)

After your (@houz) instruction:

Darktable starts. :+1:

ATI Radeon HD 5400 Series

The equalizer module seems to work for luma and chroma, but the edges part of it does (almost) nothing ( for raw and jpg), is that normal behavior? (last edit, It works, I think, but it is very subtle)

latest, latest :smirk: edit: I found this on the darktable website: “Note that the edge parameter only affects the wavelet basis, not the image directly. You will have to change some denoise/contrast boost parameters to see an effect following adjustments to the edge parameter.” …
I think, this is the answer.

After some time working with equalizer, darktable crashed:
darktable_bt_MH9W5Y.txt (12.3 KB)

Just installed - started ok and responded well.

A minor thing: in the import-folder-dialog the drives appear in reverse order in the left panel: