Skip to content

RFC: Some build requirement updates#21329

Draft
jenshannoschwalm wants to merge 1 commit into
darktable-org:masterfrom
jenshannoschwalm:required_openmp
Draft

RFC: Some build requirement updates#21329
jenshannoschwalm wants to merge 1 commit into
darktable-org:masterfrom
jenshannoschwalm:required_openmp

Conversation

@jenshannoschwalm

@jenshannoschwalm jenshannoschwalm commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator
  1. Make OpenMP a build requirement as non-OpenMP builds

    • don't help for anything
    • add code burden that would require special testing
    • don't have acceptable performance External code like rawspeed and libraw are not touched.
  2. With current compilers we can assume proper vectorizing support so the DT_NO_VECTORIZATION and DT_NO_SIMD_HINTS can be removed.

  3. As OpenMP and SSE2 are no build options, don't show them in the log file.

@ralfbrown your ideas on this?

@jenshannoschwalm jenshannoschwalm added this to the 5.8 milestone Jun 16, 2026
@jenshannoschwalm jenshannoschwalm added the scope: codebase making darktable source code easier to manage label Jun 16, 2026
Comment thread src/common/ai/restore_rgb.c Outdated
dt_omp_firstprivate(original_4ch, denoised_4ch, \
lum_residual, npix) \
schedule(simd:static) \
aligned(original_4ch, denoised_4ch, lum_residual:64)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would make sense to convert this and the pragma below to using one of the DT_OMP_FOR macro variants, whether or not the _OPENMP removal takes place.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. I think DT_OMP_FOR_SIMD makes sense here. Want me to make it is a separate PR? Or you cann just fix it here

DT_OMP_FOR_SIMD(aligned(original_4ch, denoised_4ch, lum_residual:64))
for(size_t i = 0; i < npix; i++)
{
  ...
}

@jenshannoschwalm jenshannoschwalm marked this pull request as draft June 18, 2026 09:53
@jenshannoschwalm

Copy link
Copy Markdown
Collaborator Author

The homebrew CI needs some additional omp.h "include" ? Don't know if it build on a mac-at-home. So "draft" for now.

Comment thread src/common/ai/restore_rgb.c Outdated
dt_omp_firstprivate(original_4ch, denoised_4ch, \
lum_residual, npix) \
schedule(simd:static) \
aligned(original_4ch, denoised_4ch, lum_residual:64)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. I think DT_OMP_FOR_SIMD makes sense here. Want me to make it is a separate PR? Or you cann just fix it here

DT_OMP_FOR_SIMD(aligned(original_4ch, denoised_4ch, lum_residual:64))
for(size_t i = 0; i < npix; i++)
{
  ...
}

Comment thread src/common/ai/restore_rgb.c
1. Make OpenMP a build requirement as non-OpenMP builds
   - don't help for anything
   - add code burden that would require special testing
   - don't have acceptable performance
   External code like rawspeed and libraw are not touched.

2. With current compilers we can assume proper vectorizing support so the
   DT_NO_VECTORIZATION and DT_NO_SIMD_HINTS can be removed.

3. As OpenMP and SSE2 are no build options, don't show them in the log file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: codebase making darktable source code easier to manage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants