Skip to content
  • Ell's avatar
    operation, transform: use separate input buffers for different threads · 172d9b4f
    Ell authored and Øyvind "pippin" Kolås's avatar Øyvind "pippin" Kolås committed
    Use gegl_operation_context_dup_input_maybe_copy(), added in the
    previous commit, in GimpOperationFilter, GimpOperationComposer,
    GimpOperationComposer3, and OpTransform (however, *not* in the
    corresponding point ops), to (potentially) create a separate copy
    of the input buffer for each thread, to avoid lock contention over
    the input buffer's tile-storage lock.  Use the input buffer
    directly only for the first chunk, which is processed by the caller
    thread.
    
    This significantly improves performance of operations that randomly
    access the input buffer (e.g., using a sampler), and seems not to
    pessimize operations with a more regular access pattern (e.g.,
    using an iterator, or scan rows).
    172d9b4f