darktable-org / darktable-org/darktable

Option to debounce/defer histogram and scope processing during active slider drag

Open
#21,820 1 comment 0 reactions 1 assignee View on GitHub

@jenshannoschwalm is already working on this.

Since Aug 13, 2026.

scope: UI
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.