When you are in darkroom, you always compute 2 pipes:
- the main preview (in the center)
- the thumbnail preview (shown on the navigation thing, and the “blurry” pic you see when you pan/scroll/zoom the main preview, before the full resolution is recomputed, used for histograms).
The deal, with multiple OpenCL devices, is to send the heaviest pipe to your more powerful GPU (main preview), and the other one the your least powerful GPU. The point is to have both pipes run in parallel, otherwise, using only one GPU, one pipe is started only when the previous is finished.
To distribute pipes among GPU, select the OpenCL profile to “default” in preferences, and type that line in darktablerc file :
opencl_device_priority=0,1,*/1,0, */0,1,*/1,0,*
The numbers point to devices as in the OpenCL output (starting darktable -d opencl
):
0.633303 [opencl_init] discarding device 2 `pthread-Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz' because the driver `OpenCL 1.2 pocl HSTR: pthread-x86_64-unknown-linux-gnu-skylake' is blacklisted.
0.633310 [opencl_init] OpenCL successfully initialized.
0.633313 [opencl_init] here are the internal numbers and names of OpenCL devices available to darktable:
0.633314 [opencl_init] 0 'Quadro M2200'
0.633317 [opencl_init] 1 'Intel(R) Gen9 HD Graphics NEO'
0.633320 [opencl_init] FINALLY: opencl is AVAILABLE on this system.
0.633322 [opencl_init] initial status of opencl enabled flag is ON.
See https://www.darktable.org/usermanual/en/darktable_and_opencl_multiple_devices.html for more details.
Notice that this will not make your individual pipes run faster, but the general app instead (because they are not run serialized but parallelized). That will not be measured by -d perf
.