In an ideal case you will keep your GPU busy at 100% when reprocessing the pixelpipe. That’s good. On the other hand your GPU may also be needed to do regular GUI updates. It might happen that there is no sufficient time left for this task. The consequence would by a jerky reaction of your GUI on panning, zooming or when moving sliders. To resolve this issue darktable can add small naps into its pixelpipe processing to have the GPU catch some breath and perform GUI related activities. The opencl_micro_nap parameter controls the duration of these naps in microseconds. You will need to experiment in order to find an optimum value for your system. Values of 0, 100, 500 and 1000 are good starting points to try. The default is 1000.
I used to use 0 with my NVidia 1060 and experienced no issues. However, the current code (rev 5872ca) restricts the value to 101 … 1’000´000, and 0 (or any other value less than 101) will be changed to 1000:
if((cl->dev[devid].micro_nap <= 100) || (cl->dev[devid].micro_nap > 1000000)) cl->dev[devid].micro_nap = 1000;
What is the reason for this?
I think it’d be more reasonable to set ‘too low’ values to the minimum, ‘too high’ values to the maximum. And 101 as the minimum allowed value is weird.