I was reminded of this reading a post yesterday.
Aurelien Pierre and maybe others have I believe said it doesn’t work. It’s hard to reconcile this with all the work that Elle Stone did. As quoted yesterday - LCMS2 unbounded ICC profile conversions
Can she possibly have done so much investigation and not noticed if it “was not working”? Maybe AP meant is was working, but not properly (or as he would like). Maybe LCMS2 became broken at some point. Does anyone have any knowledge about this. It is unsatisfactory that there is so little detail (unless I’ve missed it). It raises questions, for example if it doesn’t work, should the option be removed from DT’s preferences?
I’ve done some testing and LCMS2 (aka LittleCMS 2) does make a difference.
If you tick the box for it in prefs, you will subsequently have options for rendering intent in Output Profile and other places (see manual).
One option, perceptual, is traditionally quite useful because it brings out-of-gamut colours into range. For this to work in DT, you need an output profile with a LUT. Here I am using one from the International Color Consortium’s website, free to download, called sRGB_v4_ICC_preference.icc.
With LCMS2 on, the following outputs are all different, so it is doing something!
sRGB_v4_ICC_preference and perceptual
sRGB_v4_ICC_preference and relative colorimetric
sRGB websafe and perceptual
sRGB websafe does not have a LUT and apparently this means perceptual rendering is not possible. Websafe without LCMS2 gives the same output as with LCMS2 on and perceptual intent.
There is no difference between some of the intents, at least not with my test pic. So with sRGB_v4_ICC_preference,
Saturation = Perceptual
Absolute colorimetric = Relative col.
To further confuse (me), there is this from the DT manual (9.6) describing the option to turn LCMS2 on:
If the given ICC is LUT-based or contains both a LUT and a matrix, darktable will use LittleCMS 2 to render the colors regardless of this parameter’s value (default off).
and yet using sRGB_v4_ICC_preference causes this message in the Terminal window:
[dt_ioppr_set_pipe_output_profile_info] unsupported output profile 0 /home/bill/.config/darktable-3jul/color/out/sRGB_v4_ICC_preference.icc, it will be replaced with sRGB
If it was replaced, the outputs would not be different, but they are different.
So this is a messy area and could do with some clarity and perhaps tidying up. Devs and those who understand, please shed light!