The parallel region should be moved to vje_fx_apply()
-> keeps thread pool alive for the whole FX chain
#pragma omp parallel num_threads(global_threads)
{
for (each effect in chain) {
effect_apply(...);
}
}
serial sections must be guarded with #pragma omp single
#pragma omp single
{
serial_setup();
}
#pragma omp for simd schedule(static)
for (...) { ... }
#pragma omp single
{
serial_finish();
}
- remove "parallel" from all effect-level pragmas (362 hits)
- use #pragma omp for / #pragma omp for simd for pixel loops.
- guard all serial code with #pragma omp single.
result:
- faster processing of FX chain
While touching the .C file:
- review description
- review parameter hints
- review beat parameter hints
The parallel region should be moved to vje_fx_apply()
-> keeps thread pool alive for the whole FX chain
serial sections must be guarded with #pragma omp single
result:
While touching the .C file: