1. 13 Jun, 2019 1 commit
  2. 06 Jun, 2019 1 commit
  3. 25 May, 2019 2 commits
  4. 24 May, 2019 2 commits
  5. 08 May, 2019 1 commit
  6. 06 May, 2019 2 commits
  7. 05 May, 2019 1 commit
    • Ell's avatar
      operation, transform: use indirect input buffer on main thread as well · 8a5dd582
      Ell authored
      In the various GeglOperation subclasses that use a per-thread
      indirect input-buffer, backed by the actual input buffer, during
      multithreaded processing, use an indirect buffer for the main
      thread as well, instead of using the input buffer directly
      (unless the main thread processes the entire output).
      
      This avoids a deadlock when multiple threads gegl_buffer_copy()
      from their input buffer to the output buffer concurrently: if a
      worker thread acquires both the (indirect) input-buffer and output-
      buffer locks, while the main thread acquires the (direct) input-
      buffer lock and waits on the output-buffer lock, as soon as the
      GeglTileBackendBuffer of the worker-thread's input buffer forwards
      a command to the underlying input buffer, it will deadlock while
      waiting for the input-buffer's lock (which is held by the main
      thread).  See issue #157.
      
      Furthermore, this should reduce contention over the underlying
      input buffer between the main thread and the worker threads.
      8a5dd582
  8. 16 Apr, 2019 1 commit
  9. 14 Apr, 2019 2 commits
  10. 28 Mar, 2019 2 commits
    • Ell's avatar
      cache: make a GeglOperationFilter · ad8aa8f1
      Ell authored
      Since gegl:cache can't actually be used as part of point-op
      pipelines, as it doesn't do in-place processing, let's just make it
      a GeglOperationFilter, like the rest of the core/ ops, to avoid
      redundancy, and make stuff more consistent.
      ad8aa8f1
    • Ell's avatar
      cache: add fast GeglOperationFilter::process() implementation · d9c08c66
      Ell authored
      In gegl:cache, override GeglOperationFilter::process() and simply
      gegl_buffer_copy() input -> output so that tiles can be COWed,
      instead of using memcpy() in GeglOperationPointFilter::process().
      Keep the latter for the sake of wip/pipeline.
      d9c08c66
  11. 22 Mar, 2019 2 commits
  12. 13 Mar, 2019 2 commits
  13. 12 Mar, 2019 2 commits
  14. 03 Mar, 2019 2 commits
  15. 25 Feb, 2019 1 commit
    • Ell's avatar
      color: use gegl_buffer_set_color() · 5c796601
      Ell authored
      In gegl:color, override GeglOperationSource::process(), instead of
      GeglOperationPointRender::process(), and simply call
      gegl_buffer_set_color() to fill the output buffer, instead of doing
      this manually.  gegl_buffer_set_color() can more efficiently reuse
      a single COW-ed tile.
      
      Opt out of multithreading, since it's no longer beneficial.
      5c796601
  16. 22 Feb, 2019 3 commits
  17. 21 Feb, 2019 3 commits
  18. 20 Feb, 2019 1 commit
    • Øyvind "pippin" Kolås's avatar
      operations: add pdf-loading op · 82ce52fa
      Øyvind "pippin" Kolås authored
      A simple page renderer that depends on poppler-glib, it render each page to a
      linear buffer and becomes very slow for high ppi, default ppi set to 300 which
      is sufficient to read and zoom in on visible details on most text based PDFs.
      
      Maybe chunking/clipping the rendering with cairo would be better for high
      resolution.
      82ce52fa
  19. 18 Feb, 2019 1 commit
  20. 13 Feb, 2019 1 commit
  21. 07 Feb, 2019 1 commit
  22. 03 Feb, 2019 1 commit
  23. 02 Feb, 2019 3 commits
  24. 01 Feb, 2019 2 commits