Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement module in_focus process cache #18195

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jenshannoschwalm
Copy link
Collaborator

@jenshannoschwalm jenshannoschwalm commented Jan 12, 2025

Updated:

The standard pixelpipe cache offers input data for a module to be fully processed if all parameters including blending stuff match.

This commit implements a single line cache per pixelpipe only effective for a module being in focus and doing some blending.

Data are possibly read from this cache instead of the possibly costly module->process/_cl.
Reading from this cache is reported in logs with -d pipe
Possibly write to that cache if data were not valid before.

While being here some cosmetic code simplifications.

Fixes #18180

@jenshannoschwalm jenshannoschwalm added scope: UI user interface and interactions scope: performance doing everything the same but faster release notes: pending OpenCL Related to darktable OpenCL code labels Jan 12, 2025
@jenshannoschwalm jenshannoschwalm marked this pull request as draft January 12, 2025 09:02
@jenshannoschwalm
Copy link
Collaborator Author

For simplicity using the commit from #18071

@jenshannoschwalm
Copy link
Collaborator Author

Some OpenCL related fixes, some refactoring and removed dependency other commit

The standard pixelpipe cache offers *input* data for a module to be fully processed if all parameters including
blending stuff match.

This commit implements a single line cache per pixelpipe only effective for a module being in focus *and* doing
some blending.

Data are possibly read from this cache instead of the possibly costly module->process/_cl.
Possibly write to that cache if data were not valid before.

Fixes darktable-org#18180
@jenshannoschwalm jenshannoschwalm marked this pull request as ready for review January 14, 2025 05:35
@jenshannoschwalm
Copy link
Collaborator Author

@ralfbrown you might want to have a look now.

A simple reproducer would be:

  1. Add a diffuse&sharpen instance with heavy processing
  2. Apply any mask/blending
  3. Modify any of the blending parameters
  4. Watch out for "from focus cache" in -d pipe logs and/or enjoy UI responsiveness

@jenshannoschwalm jenshannoschwalm added this to the 5.2 milestone Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OpenCL Related to darktable OpenCL code release notes: pending scope: performance doing everything the same but faster scope: UI user interface and interactions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FR] improve responsiveness of mask manipulation
1 participant