darktable-org / darktable-org/darktable
Option to debounce/defer histogram and scope processing during active slider drag
@jenshannoschwalm is already working on this.
Since Aug 13, 2026.
- Dominant language
- C
- Stars
- 13.1k
- Forks
- 1.4k
- Avg merge
- 22h 14m
- Merged PRs (30d)
- 198
Description
Even when the histogram/scopes panel is hidden, darktable recalculates final waveform / final histogram and triggers scope draw multiple times per second during continuous mouse drags. In the pipeline, these scope calculations account for ~25–30% of total frame processing time.
Introduce an option in the Preferences to defer histogram/waveform/scope calculations during active slider scrubbing. The scope would only recalculate once the slider drag stops (e.g., on mouse release or after a short ~100ms idle delay), providing a significantly smoother rendering experiance.
I use a nightly 5.7.0 build on MacOS. Here is a log showing the latency when operating a exposure slider:
98.3858 [dt_dev_process_image_job] loading image. took 0.000 secs (0.000 CPU)
98.3886 [histogram] took 0.002 secs (0.003 CPU) scope draw
98.3925 [dev_pixelpipe] took 0.007 secs (0.010 CPU) [preview] processed `exposure' on GPU
98.3946 [dev_pixelpipe] took 0.002 secs (0.003 CPU) [preview] processed `colorin' on GPU
98.3969 [dev_pixelpipe] took 0.002 secs (0.002 CPU) [preview] processed `channelmixerrgb' on GPU
98.4043 [histogram] took 0.002 secs (0.002 CPU) scope draw
98.4055 [dev_pixelpipe] took 0.009 secs (0.006 CPU) [preview] processed `agx' on GPU
98.4112 [dev_pixelpipe] took 0.006 secs (0.006 CPU) [preview] processed `colorout' on GPU
98.4134 [dev_pixelpipe] took 0.002 secs (0.003 CPU) [preview] processed `gamma' on CPU
98.4170 [dt_ioppr_transform_image_colorspace_rgb] `System-Bildschirmprofil' -> `sRGB' took 0.003 secs (0.017 CPU) [final histogram]
98.4189 [histogram] took 0.005 secs (0.029 CPU) final waveform
98.4190 [dev_process_image] pixel pipeline took 0.032 secs (0.058 CPU) processing `SonyA100-2776.dng'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.