1. 12 Dec, 2018 1 commit
  2. 11 Dec, 2018 3 commits
  3. 10 Dec, 2018 2 commits
  4. 09 Dec, 2018 5 commits
    • Ell's avatar
      buffer: over-trim cache when it fills up frequently · a64637b3
      Ell authored
      Trimming the tile cache can have a high overhead, since we need to
      scan the tile list for an eligible/worthwhile tile to trim.  If
      trimming happens frequently, we end up re-scanning the list each
      time.
      
      In order to amortize the cost of scanning the tile list, over-trim
      the cache by a certain amount, instead of only trimming the excess.
      When trimming happens frequently, we progressively increase the
      over-trimming ratio, up to 50% of the cache size limit.
      a64637b3
    • Ell's avatar
      buffer: lower cost of cloned tiles queued for writing to the swap · af2c5ed3
      Ell authored
      In the swap tile backend, when calculating the cost of the tiles
      queued for writing, divide the tile size by the number of clones it
      has, so that if all clones of a given tile are queued for writing,
      their total cost (i.e., the amount of memory they consume) is equal
      to the size of a single tile.  This allows more cloned tiles to be
      queued for writing simultaneously, reducing the number of stalls.
      af2c5ed3
    • Marco Ciampa's avatar
      0c3ab469
    • Marco Ciampa's avatar
      Fixed Italian filter description · 917cd332
      Marco Ciampa authored
      917cd332
    • Piotr Drąg's avatar
      Update Polish translation · 79906239
      Piotr Drąg authored
      79906239
  5. 07 Dec, 2018 2 commits
  6. 06 Dec, 2018 1 commit
  7. 04 Dec, 2018 10 commits
  8. 03 Dec, 2018 8 commits
  9. 02 Dec, 2018 4 commits
    • Ell's avatar
      buffer: remove cloned tiles with lower probability when trimming cache · 10622d7a
      Ell authored
      A set of n cloned tiles is counted only once toward the total cache
      size, so each inidividual tile can be thought of as contributing
      only 1/n of its size to the total cache size.  On the other hand,
      the cost of stroing a tile is independent of the number of clones
      it has.
      
      When trimming the cache, remove an unstored tile with n cached
      clones with a probability of 1/n, instead of 1, to avoid saturating
      the swap queue with cloned tiles, causing stalls.
      10622d7a
    • Ell's avatar
      buffer: add gegl_tile_needs_store() internal function · bf6dd78e
      Ell authored
      ... which determines if a tile will be needs to be stored.  This is
      a slightly stronger condition than ! gegl_tile_is_stored():  a tile
      needs to be stored if it has an associated tile-storage, is
      unstored, and is undamaged.
      bf6dd78e
    • Ell's avatar
      buffer: avoid unnecesarily locking global cache mutex when inserting tile · eac67d7b
      Ell authored
      In gegl_tile_handler_cache_insert(), only call
      gegl_tile_handler_cache_trim() if the cache actually needs to be
      trimmed, i.e., if the total cache size exceeds the maximum.  The
      latter function always acquires the global cache mutex, which is
      wasteful if there is nothing to actually trim.
      eac67d7b
    • Piotr Drąg's avatar
      Update Polish translation · 580b74e8
      Piotr Drąg authored
      580b74e8
  10. 30 Nov, 2018 4 commits
    • Ell's avatar
      buffer: use empty tiles when filling buffer with 0-valued color · b2345ad0
      Ell authored
      In gegl_buffer_set_color_from_pixel(), if the pixel data, after
      conversion to the buffer format, is fully zeroed, use clones of the
      global empty tile for filling whole tiles, instead of creating a
      new 0-filled tile.  This allows us to share memory with the global
      empty tile, and makes uncloning the affected tiles more efficient.
      
      Note that we deliberately don't just clear the corresponding area
      of the buffer in this case, and make sure that there are actual
      empty tiles in the requested area, to stay on the safe side (mostly
      w.r.t. user-provided tile handlers, which may create non-zero tiles
      when the underlying handler returns a NULL tile).
      b2345ad0
    • Ell's avatar
      buffer: add gegl_memeq_zero() · b0c68ce4
      Ell authored
      ... which checks if a block of memory is fully zeroed.
      b0c68ce4
    • Øyvind "pippin" Kolås's avatar
      buffer: remove unused code · 051ab672
      Øyvind "pippin" Kolås authored
      Vestige of differentiating between buffers when the cmyk formats were
      worse off.
      051ab672
    • Øyvind "pippin" Kolås's avatar
      354c2c74