darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.72k stars 1.14k forks source link

Access Violation in module libfilmicrgb.dll crash with exception on Windows 2.7.0 git master #3169

Closed Mpic closed 3 years ago

Mpic commented 5 years ago

Describe the bug

Darktable exception is often thrown when skipping to next picture with spacebar in darkroom

To Reproduce Darktable on Windows, compiled with these instructions.

When in darkroom mode, try to go to the next picture by pressing the spacebar. Presets are applied (involving filmic and other modules) because the picture is opened for the first time.

Expected behavior Show next picture without crashing

Platform (please complete the following information):

this is darktable 2.7.0+2020~g95a1bb834-dirty reporting an exception:

-------------------

Error occurred on Tuesday, October 15, 2019 at 22:54:20.

darktable.exe caused an Access Violation at location 000000006BEC4D70 in module libfilmicrgb.dll Reading from location 0000000047452000.

AddrPC           Params
000000006BEC4D70 000000006BEC4790 0000000005B2B6A0 0000000000000004  libfilmicrgb.dll!process._omp_fn.1  [S:/msys64/home/marti/darktable/src/iop/filmicrgb.c @ 317]
   315:   for(int c = 0; c < 3; ++c)
   316:   {
>  317:     const float value = fabsf(pixel[c]);
   318:     const float RGB_square = value * value;
   319:     const float RGB_cubic = RGB_square * value;
00000000001768D9 0000000004921D01 000000000F7ED4B0 00007FFE2131FA60  libgomp-1.dll!GOMP_parallel
000000006BEC6675 00007FFDA259E76E 0000000000000000 00000000149367D8  libfilmicrgb.dll!process  [S:/msys64/home/marti/darktable/src/iop/filmicrgb.c @ 489]
   487:   {
   488: #ifdef _OPENMP
>  489: #pragma omp parallel for simd default(none) \
   490:   dt_omp_firstprivate(ch, data, in, out, roi_out, work_profile, variant, spline) \
   491:   schedule(simd:static) aligned(in, out:64)
000000006370ADDF 0000000000000000 0000000001DAC000 0000000005B2BCB8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1919]
  1917:           else
  1918:           {
> 1919:             module->process(module, piece, input, *output, &roi_in, roi_out);
  1920:             pixelpipe_flow |= (PIXELPIPE_FLOW_PROCESSED_ON_CPU);
  1921:             pixelpipe_flow &= ~(PIXELPIPE_FLOW_PROCESSED_ON_GPU | PIXELPIPE_FLOW_PROCESSED_WITH_TILING);
000000006370845D 00007FFDA264F8C4 0000000006336850 0000000005B2C518  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 0000000000000000 FFFFFFFFFFFFFFFF 0000000005B2C518  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 00000000063C2F48 0000000000883760 0000000005B2C948  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370845D 0000000000000000 0000000000000000 0000000005B2CD78  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370845D 0000046600000695 0000000100000001 0000000005B2DA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 0000000000000000 0000000100000001 0000000005B2DA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B2DA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 0000000005B2E210 00007FFDA270A17A 0000000005B2E268  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 00007FFDA2709BAC 0000000006353490 0000000005B2E268  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 00000000104339B0 0000000006325F20 0000000005B2F758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 4000120000000001 0000000000000000 0000000005B2F758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B2F758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000003430000 0000000003430000 0000000005B2F758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000001DB0000 0002000600000000 0000000005B2F758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 0000000000000000 0000010000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 0000000000000000 0000000000883900 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000100000366 FFFFFFFFFFFFFFFF 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000005B333B0 0000000005B333B0 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 00000000104B18B0 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 00007FFDA2414501 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 00000000000000D0 0000000000150CC0 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B32DC8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 0020000000200000 00000000000000FE 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 00000000063C2F48 0000000000883760 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 00000000063A3BF0 000000000EF9BD40 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000001000021 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 000000000AA9A060 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000027 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000003 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000005B376B0 0000000005B376B0 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 00000000101873C0 00007FFDA25B91F1 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000005B356D0 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000010 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000005B36260 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 000000000000008A 0000000000000080 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000000 0000000005B36C98  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370845D 0000000000000000 0000000707780000 0000000005B370C8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370845D 0000000000000000 0000000000000001 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
000000006370854D 0000000000000000 000000000000000D 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 000000000F7D8AF0 0000000005B380E0 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000001 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000009 0000000000000004 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000002 0000000000000046 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000100000164 00000000063539D0 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000400000 FFFFFFFFFFFFFFFF 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000707680000 0000000200000001 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 0000000000000000 0000000000000E9D 0000000005B3C058  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
000000006370854D 000000000E97C500 0000000000000000 0000000005B3C058  libdarktable.dll! ?? 
TurboGit commented 5 years ago

Do you mean that you have filmicrgb activated by default? Or you activate filmicrgb after? Or was it activated in the image before pressing spacebar?

aurelienpierre commented 5 years ago

That smells like bad memory alignment.

Mpic commented 5 years ago

@TurboGit, I mean that I activate filmicrgb by default via a module-specific preset, yes. So when I press the spacebar, the image is opened and module presets are automatically applied.

@aurelienpierre, what do you mean by bad memory alignment ? Do I have any power on this ?

aurelienpierre commented 5 years ago

what do you mean by bad memory alignment ? Do I have any power on this ?

To enable low-level CPU optimizations (vectorization, aka SIMD), the memory buffers are to be aligned on 64 bits adresses in RAM, and single pixels on 16 bits. This way, you can get almost a ×4 speed-up for the same code. The program asks and expects this alignment, but it's the OS that allocates RAM space at the end and gets the last word on it.

This error can be the result of improper memory alignment, since the line pointed is a SIMD pragma. Or it can be a buffer used after being emptied or before being initialized, but it's less likely.

It doesn't happen when you enable filmic manually ?

Mpic commented 5 years ago

It doesn't happen when you enable filmic manually ?

No, never :-/

Mpic commented 4 years ago

With a new darktable build, the error comes quite often when I enable filmic RGB manually.

this is darktable 2.7.0+2161~g99cf6ae5e reporting an exception:

-------------------

Error occurred on Sunday, November 3, 2019 at 15:02:09.

darktable.exe caused an Access Violation at location 000000006BEC450F in module libfilmicrgb.dll Reading from location 000000007ADDF000.

AddrPC           Params
000000006BEC450F 000000006BEC42E0 0000000005BDB6A0 0000000000000004  libfilmicrgb.dll!process._omp_fn.0  [S:/msys64/home/marti/darktable/src/iop/filmicrgb.c @ 464]
   462:       // Log tone-mapping
   463:       for(int c = 0; c < 3; c++)
>  464:         temp[c] = log_tonemapping((pix_in[c] < 1.52587890625e-05f) ? 1.52587890625e-05f : pix_in[c],
   465:                                    data->grey_source, data->black_source, data->dynamic_range);
   466: 
00000000001768D9 000000005101A000 01D5924F363B3B36 00007FFFE359FA60  libgomp-1.dll!GOMP_parallel
000000006BEC660E 000000000F7C7E50 0000FDFE7874E159 0000000005BDB888  libfilmicrgb.dll!process  [S:/msys64/home/marti/darktable/src/iop/filmicrgb.c @ 452]
   450:   {
   451: #ifdef _OPENMP
>  452: #pragma omp parallel for simd default(none) \
   453:   dt_omp_firstprivate(ch, data, in, out, roi_out, work_profile, spline) \
   454:   schedule(simd:static) aligned(in, out:64)
0000000063709FB0 00007FFF5AEDA17A 00000000063DEAA0 0000000005BDBCB8  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 2192]
  2190:       else
  2191:       {
> 2192:         module->process(module, piece, input, *output, &roi_in, roi_out);
  2193:         pixelpipe_flow |= (PIXELPIPE_FLOW_PROCESSED_ON_CPU);
  2194:         pixelpipe_flow &= ~(PIXELPIPE_FLOW_PROCESSED_ON_GPU | PIXELPIPE_FLOW_PROCESSED_WITH_TILING);
00000000637092ED 0000000000000001 0000000000000318 0000000005BDC518  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
00000000637093DD 0000000000000000 0000000000000000 0000000005BDC518  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
00000000637092ED 0000000005BDF0B0 000000000AB4BC98 0000000005BDC948  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
00000000637092ED 0000000000000000 0000000000000000 0000000005BDCD78  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
00000000637092ED 000000000AB50BF0 00000000064706E8 0000000005BDDA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
00000000637093DD 0000000000000000 0000000000151440 0000000005BDDA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
00000000637093DD 0000000000150000 0000000000000000 0000000005BDDA08  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
00000000637092ED 0000000000000000 0000000100000000 0000000005BDF758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1244]
  1242:     piece->processed_roi_out = *roi_out;
  1243: 
> 1244:     if(dt_dev_pixelpipe_process_rec(pipe, dev, &input, &cl_mem_input, &input_format, &roi_in,
  1245:                                     g_list_previous(modules), g_list_previous(pieces), pos - 1))
  1246:       return 1;
00000000637093DD 0000000000000000 0000000000000000 0000000005BDF758  libdarktable.dll! ??   [S:/msys64/home/marti/darktable/src/develop/pixelpipe_hb.c @ 1111]
  1109:     if(!piece->enabled
  1110:        || (dev->gui_module && dev->gui_module->operation_tags_filter() & module->operation_tags()))
> 1111:       return dt_dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in,
  1112:                                           g_list_previous(modules), g_list_previous(pieces), pos - 1);
  1113:   }
00000000637093DD 0000000000000000 0000000000000000 0000000005BDF758  libdarktable.dll! ?? 
github-actions[bot] commented 4 years ago

This issue did not get any activity in the past 30 days and will be closed in 7 days if no update occurs. Please check if the master branch has fixed it since then.