Skip to content

another performance regression when dragging e.g. exposure slider #21762

Description

@AxelG-DE

Is there an existing issue for this?

  • I checked and did not find my issue in the already reported ones

Describe the bug

when dragging the exposure slider, the screen only updates once the drag holds but not smoothly in between.

The effect is much less noticeable when using the mousewheel, I assume a tick is interpreted as a stop. I have a tickless wheel and wenn scrolling faster, same as dragging is to be observed.

bisect gave me:

c45727c801597c448aaf19a7d92ce46fdba2b4bf is the first bad commit
commit c45727c801597c448aaf19a7d92ce46fdba2b4bf
Author: Hanno Schwalm <hanno@schwalm-bremen.de>
Date:   Tue Aug 4 08:28:24 2026 +0200

    Introduce pixelpipe "knocking"
    
    If we are in darkroom mode we want a fast response if we reposition/zoom the canvas or if
    we change any module parameter.
    
    In current code such a request for re-processing the pipe is discarded if the pixelpipe is
    found in running state and will only happen *after* the pixelpipe has finished.
    
    This commit uses the improved shutdown modes for a faster UI response by setting shutdown to
    - DT_DEV_PIXELPIPE_STOP_ZOOM in dt_dev_zoom_move() or
    - DT_DEV_PIXELPIPE_STOP_DATA in dt_dev_process_image().
    
    This is tested and handled via _module_pipe_stop() while the pipe is processing and the pipe
    is restarted with fresh parameters almost instantly.
    Overall this avoids up to one pixelpipe run with some chance of finding valid cache data
    for the interrupted module as a pipe restart point.

 src/develop/develop.c      | 18 +++++++++++++-----
 src/develop/pixelpipe_hb.c |  2 +-
 2 files changed, 14 insertions(+), 6 deletions(-)

sorry @jenshannoschwalm seems I pinch you again ;-)

Steps to reproduce

  1. open an image into darkroom
  2. go to exposure slider
  3. drag the slider to + or - several EV
  4. see the sluggish behaviour

Expected behavior

darktable should update the main view smoothly while attenuating sliders

Logfile | Screenshot | Screencast

Here is the log with -d pipe -d opencl

20260808_regression.log.txt

and a video to illustrate good and bad behaviour

20260808_exposure-regression-2026-08-08_14.29.04.mp4

Commit

c45727c

Where did you obtain darktable from?

self compiled

darktable version

5.7.0-212-gf766454b7c

What OS are you using?

Linux

What is the version of your OS?

gentoo

Describe your system

  • darktable version : 5.7.0-212-gf766454b7c
  • OS : Linux - kernel 6.18.41-gentoo
  • Distro : Gentoo Base System release 2.18
  • Processor : Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
  • Memory : 32 GB (4 x 8 GB) + 5GB Swap
  • Graphics card0 : NVIDIA GeForce GTX 1060 6GB
  • Graphics card1 : NVIDIA GeForce RTX 2070 SUPER
  • Graphics driver : nvidia-drivers-535.309.01
  • OpenCL installed : Yes (opencl-headers-2024.10.24)
  • OpenCL activated : Yes
  • Xorg : xorg-server-21.1.24
  • Desktop : KDE 6
  • GTK+ : gtk+-3.24.52
  • gcc : 14.3.1_p20260604
  • cflags : CMAKE_FLAGS="-march=native-O2-mtune=native-pipe"
  • CMAKE_BUILD_TYPE : "Release"

Are you using OpenCL GPU in darktable?

Yes

If yes, what is the GPU card and driver?

pls see above

Please provide additional context if applicable. You can attach files too, but might need to rename to .txt or .zip

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions