1. 02 Dec, 2018 1 commit
  2. 28 Nov, 2018 1 commit
    • Ell's avatar
      app: use gimp_tile_handler_validate_validate() in gimp:buffer-source-validate · 83dd94ba
      Ell authored
      Use gimp_tile_handler_validate_validate(), added in the commit
      before last, in gimp:buffer-source-validate, in order to pre-render
      the necessary region of the buffer, instead of performing the
      validation implicitly by iterating over the region.  This is both
      simpler, and, more importantly, allows us to render the entire
      region in a single chunk, instead of tile-by-tile, which can be
      considerably more efficient, especially with high thread counts.
      This essentially extends the dynamic sizing of rendered projection
      chunks to layer groups, which are rendered through
      gimp:buffer-source-validate, rather than just the main image
  3. 10 Sep, 2018 1 commit
  4. 11 Jul, 2018 1 commit
  5. 26 Mar, 2018 2 commits
    • Ell's avatar
      app: small fix to gimp_operation_buffer_source_validate_process() · 956ca8e3
      Ell authored
      Fix tile-grid realignemnt after intersecting the ROI with the dirty
    • Ell's avatar
      Bug 790810 - Nested layer groups lead to a deadlock with multithreading · caa3a98f
      Ell authored
      In gimp_operation_buffer_source_validate_process(), align the ROI
      to the tile grid *before* intersecting it with the validate-
      handler's dirty region.  This is necessary since, even though
      subsequent operations will only read data within the ROI, the
      entire tiles containing the ROI will be fetched, resulting in an
      area potentially greater than the ROI.  We need to validate this
      area in advance, or else it will be validated as part of the
      subsequent operations, which can lead into the same deadlock we're
      trying to prevent.
  6. 07 Feb, 2018 1 commit
  7. 04 Dec, 2017 1 commit
    • Ell's avatar
      app: add gimp:buffer-source-validate operation · dec2375a
      Ell authored
      gimp:buffer-source-validate is a drop-in replacement for
      gegl:buffer-source, however, if the attached buffer has a
      validating tile-handler, it makes sure the required region is
      validated during process().  This avoids a situation in which
      validation happens in different worker threads at the same time
      during the processing of a succeeding operation; since validation
      is protected by the buffer's tile-storage mutex, this can result in
      either a deadlock (currently), or an effective fallback to single-
      threaded processing.