1. 12 Nov, 2020 1 commit
    • Mathias Wein's avatar
      Fix optimized alpha darken composite operation for float channels · 76c28d6a
      Mathias Wein authored
      The code attempted to copy a pixel via 'pixel_type' pointer,
      but this template parameter does not actually describe the pixel type
      (it's quint32), since 'Pixel' is defined in the template itself and
      hence can't be used as template parameter.
      
      May this template parameter should just be dropped...
      
      But since there's no need to copy the whole pixel, just copy the color channels.
      
      BUG:404133
      76c28d6a
  2. 19 Mar, 2020 1 commit
  3. 10 May, 2019 1 commit
  4. 01 Feb, 2019 2 commits
  5. 28 Jan, 2019 1 commit
  6. 23 Jan, 2019 1 commit
    • Wolthera van Hövell's avatar
      Temporarily push D18467 · e3c2f5be
      Wolthera van Hövell authored
      This patch changes the way how opacity and flow interact. This can mean
      that a lot of presets work way differently from before. Therefore artists
      need to test so we can get some feedback on how the patch feels.
      
      For more information, and to give feedback, check https://phabricator.kde.org/T8576
      
      This is so that artists can test it via the nightly builds.
      
      We'll try to revert it on Monday 28th of January.
      
      Patch by William Brown.
      
      Note: We still need to do a proper code review!
      
      CCMAIL:kimageshop@kde.org
      Ref T8576
      e3c2f5be
  7. 02 May, 2018 1 commit
  8. 23 Oct, 2016 1 commit
  9. 11 Apr, 2016 1 commit
  10. 09 Apr, 2016 1 commit
  11. 08 Apr, 2016 1 commit
  12. 02 Mar, 2016 1 commit
    • Thorsten Zachmann's avatar
      Implement optimized RGBF32 alpha darken composite · fb013b7e
      Thorsten Zachmann authored
      Added optimized version for alpha darken composite op for RGBF32 colorspace.
      Added tests to test performance and results of new implementation against legacy.
      
      The diff needed in the test compare is do to the fact that the compiler
      calculates 1.0/255.0 and multiplying the result instead if dividing by
      255.0 for the mask.
      
      Here are the results of the benchmark on my Intel i5-2520M CPU
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: Testing Composite Op: "alphadarken" ( "Legacy" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   Mask   SrcRand DstRand" RESULT: 67 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "DstUnalig Mask   SrcRand DstRand" RESULT: 68 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "SrcUnalig Mask   SrcRand DstRand" RESULT: 69 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Unaligned Mask   SrcRand DstRand" RESULT: 66 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstRand" RESULT: 33 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstRand" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstRand" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstZero" RESULT: 31 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstZero" RESULT: 28 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstZero" RESULT: 31 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstUnit" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstUnit" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstUnit" RESULT: 33 msec
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   Mask   SrcRand DstRand" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "DstUnalig Mask   SrcRand DstRand" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "SrcUnalig Mask   SrcRand DstRand" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Unaligned Mask   SrcRand DstRand" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstRand" RESULT: 14 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstUnit" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstUnit" RESULT: 10 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstUnit" RESULT: 9 msec
      
      This is a speedup of factor 3 to 6.
      fb013b7e