1. 08 May, 2019 1 commit
  2. 06 May, 2019 2 commits
  3. 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
  4. 16 Apr, 2019 1 commit
  5. 14 Apr, 2019 2 commits
  6. 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
  7. 22 Mar, 2019 2 commits
  8. 13 Mar, 2019 2 commits
  9. 12 Mar, 2019 2 commits
  10. 03 Mar, 2019 2 commits
  11. 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
  12. 22 Feb, 2019 3 commits
  13. 21 Feb, 2019 3 commits
  14. 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
  15. 18 Feb, 2019 1 commit
  16. 13 Feb, 2019 1 commit
  17. 07 Feb, 2019 1 commit
  18. 03 Feb, 2019 1 commit
  19. 02 Feb, 2019 3 commits
  20. 01 Feb, 2019 3 commits
  21. 31 Jan, 2019 1 commit
  22. 28 Jan, 2019 1 commit
  23. 27 Jan, 2019 1 commit
  24. 19 Jan, 2019 1 commit
    • Øyvind "pippin" Kolås's avatar
      bin: improve graph layout · 7a3712df
      Øyvind "pippin" Kolås authored
      Adding edges representing connections between nodes, permitting visualization
      of graphs that have clones/multiple consumers of the same node.
      
      The graph rendering is preliminary.
      7a3712df
  25. 13 Jan, 2019 1 commit