1. 29 Jul, 2019 1 commit
  2. 22 Apr, 2019 1 commit
    • Boudewijn Rempt's avatar
      Try to fix the the jenkins build · adf02710
      Boudewijn Rempt authored
      [2019-04-22T08:29:04.736Z] Scanning dependencies of target KisCompositionBenchmark
      [2019-04-22T08:29:04.993Z] [ 43%] Building CXX object benchmarks/CMakeFiles/KisCompositionBenchmark.dir/kis_composition_benchmark.cpp.o
      [2019-04-22T08:29:07.539Z] In file included from /usr/include/boost/random/detail/integer_log2.hpp:19,
      [2019-04-22T08:29:07.539Z]                  from /usr/include/boost/random/detail/large_arithmetic.hpp:19,
      [2019-04-22T08:29:07.539Z]                  from /usr/include/boost/random/detail/const_mod.hpp:23,
      [2019-04-22T08:29:07.539Z]                  from /usr/include/boost/random/detail/seed_impl.hpp:26,
      [2019-04-22T08:29:07.539Z]                  from /usr/include/boost/random/mersenne_twister.hpp:30,
      [2019-04-22T08:29:07.539Z]                  from /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:92:
      [2019-04-22T08:29:07.539Z] /usr/include/boost/pending/integer_log2.hpp:7:59: note: #pragma message: This header is deprecated. Use <boost/integer/integer_log2.hpp> instead.
      [2019-04-22T08:29:07.539Z]  BOOST_HEADER_DEPRECATED("<boost/integer/integer_log2.hpp>");
      [2019-04-22T08:29:07.540Z]                                                            ^
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp: In member function ���void KisCompositionBenchmark::compareAlphaDarkenOps()���:
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:645:72: error: ���KoAlphaDarkenParamsWrapperCreamy��� was not declared in this scope
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:645:104: error: template argument 2 is invalid
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                                                         ^
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp: In member function ���void KisCompositionBenchmark::compareRgbF32AlphaDarkenOps()���:
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:657:73: error: ���KoAlphaDarkenParamsWrapperCreamy��� was not declared in this scope
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoRgbF32Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:657:105: error: template argument 2 is invalid
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoRgbF32Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                                                          ^
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp: In member function ���void KisCompositionBenchmark::compareAlphaDarkenOpsNoMask()���:
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:669:72: error: ���KoAlphaDarkenParamsWrapperCreamy��� was not declared in this scope
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:669:104: error: template argument 2 is invalid
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *opExp = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                                                         ^
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp: In member function ���void KisCompositionBenchmark::testRgb8CompositeAlphaDarkenLegacy()���:
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:716:69: error: ���KoAlphaDarkenParamsWrapperCreamy��� was not declared in this scope
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *op = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:716:101: error: template argument 2 is invalid
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *op = new KoCompositeOpAlphaDarken<KoBgrU8Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                                                      ^
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp: In member function ���void KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy()���:
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:748:70: error: ���KoAlphaDarkenParamsWrapperCreamy��� was not declared in this scope
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *op = new KoCompositeOpAlphaDarken<KoRgbF32Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [2019-04-22T08:29:07.540Z] /home/jenkins/workspace/Extragear/krita/kf5-qt5 SUSEQt5.10/benchmarks/kis_composition_benchmark.cpp:748:102: error: template argument 2 is invalid
      [2019-04-22T08:29:07.540Z]      KoCompositeOp *op = new KoCompositeOpAlphaDarken<KoRgbF32Traits, KoAlphaDarkenParamsWrapperCreamy>(cs);
      [2019-04-22T08:29:07.540Z]                                                                                                       ^
      [2019-04-22T08:29:07.540Z] make[2]: *** [benchmarks/CMakeFiles/KisCompositionBenchmark.dir/build.make:63: benchmarks/CMakeFiles/KisCompositionBenchmark.dir/kis_composition_benchmark.cpp.o] Error 1
      [2019-04-22T08:29:07.540Z] make[1]: *** [CMakeFiles/Makefile2:44556: benchmarks/CMakeFiles/KisCompositionBenchmark.dir/all] Error 2
      [2019-04-22T08:29:07.540Z] make: *** [Makefile:141: all] Error 2
      adf02710
  3. 11 Apr, 2019 1 commit
    • Ivan Yossi's avatar
      KisCompositionBenchmark proposed update · 8db4cb4a
      Ivan Yossi authored
      Summary:
      commented out benchmark does not currently work
      
      The next changes add the requeested type objects for the specifyc tests on current API so the test can run.
      
      Test Plan:
      Only testedon OSX
      
      all tests pass
      
      Reviewers: #krita, dkazakov
      
      Reviewed By: #krita, dkazakov
      
      Subscribers: dkazakov
      
      Tags: #krita
      
      Differential Revision: https://phabricator.kde.org/D20416
      8db4cb4a
  4. 01 Feb, 2019 1 commit
  5. 11 Apr, 2016 2 commits
    • Dmitry Kazakov's avatar
      Use Vc::float_v::size() instead of Vc::float_v::Size · 2b3d1401
      Dmitry Kazakov authored
      According to Vir the latter one is deprecated
      
      (cherry picked from commit 9f8b517f)
      2b3d1401
    • Thorsten Zachmann's avatar
      Update krita to compile against Vc >= 1.0.0 · c9a87c88
      Thorsten Zachmann authored
      This updates krita to work with Vc version 1.0.0 and above. Some changes to the
      build system were needed as the compile options are now set differently. The
      compile flags are set on the lib which uses the functionality. This is needed in
      a non packager build only. Compile the KisCompositionBenchmark against the
      current available Vc optimization.
      
      Thanks to Vir for all his help.
      
      Tested packager and non packager build. Run the and compared the output of
      ./KisCompositionBenchmark.shell. The speed is nearly the same. For avx a
      different code path is used when avx2 is not available which makes it tick
      slower but correct in all cases according to Vir.
      
      Compiled and tested against vc 1.0.0 and vc 1.2.0.
      
      (cherry picked from commit b68c1c76)
      c9a87c88
  6. 09 Apr, 2016 2 commits
  7. 08 Apr, 2016 1 commit
  8. 07 Apr, 2016 1 commit
    • Thorsten Zachmann's avatar
      Update krita to compile against Vc >= 1.0.0 · b68c1c76
      Thorsten Zachmann authored
      This updates krita to work with Vc version 1.0.0 and above. Some changes to the
      build system were needed as the compile options are now set differently. The
      compile flags are set on the lib which uses the functionality. This is needed in
      a non packager build only. Compile the KisCompositionBenchmark against the
      current available Vc optimization.
      
      Thanks to Vir for all his help.
      
      Tested packager and non packager build. Run the and compared the output of
      ./KisCompositionBenchmark.shell. The speed is nearly the same. For avx a
      different code path is used when avx2 is not available which makes it tick
      slower but correct in all cases according to Vir.
      
      Compiled and tested against vc 1.0.0 and vc 1.2.0.
      b68c1c76
  9. 24 Mar, 2016 1 commit
  10. 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
  11. 06 Feb, 2016 1 commit
  12. 05 Feb, 2016 1 commit
  13. 28 Jan, 2016 1 commit
  14. 26 Jan, 2016 1 commit
  15. 26 Nov, 2015 1 commit
  16. 16 Sep, 2015 1 commit
  17. 04 Sep, 2015 3 commits
    • Dmitry Kazakov's avatar
      Fix building on i386 architechture · c396c541
      Dmitry Kazakov authored
      c396c541
    • Boudewijn Rempt's avatar
      Port away from kdebug to qcdebug · 4fa86a75
      Boudewijn Rempt authored
      The approach taken is a bit different from what's in the porting
      scripts or in pigment: I've moved kis_debug to libglobal and adapted
      the dbgKrita etc. defines to use qcDebug etc. I've kept the old
      category numbers for now. I've also ported all places where we
      used kDebug() etc. directly, and not a few places where qDebug() etc
      were used directly.
      4fa86a75
    • Thorsten Zachmann's avatar
      This optimizes OpOver for RGBAF32 by using vc · 91016738
      Thorsten Zachmann authored
      New tests and benchmarks for the code have been added.
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() Testing Composite Op: "normal" ( "RGBF32 Legacy" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   Mask   SrcRand DstRand" RESULT: 143 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "DstUnalig Mask   SrcRand DstRand" RESULT: 142 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "SrcUnalig Mask   SrcRand DstRand" RESULT: 143 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Unaligned Mask   SrcRand DstRand" RESULT: 144 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstRand" RESULT: 59 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstRand" RESULT: 21 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstZero" RESULT: 48 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstZero" RESULT: 18 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstUnit" RESULT: 22 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstUnit" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstUnit" RESULT: 16 msec
      PASS   : KisCompositionBenchmark::testRgbF32CompositeOverLegacy()
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() Testing Composite Op: "normal" ( "RGBF32 Optimized" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   Mask   SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "DstUnalig Mask   SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "SrcUnalig Mask   SrcRand DstRand" RESULT: 28 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Unaligned Mask   SrcRand DstRand" RESULT: 27 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstRand" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstRand" RESULT: 13 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstZero" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstZero" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstZero" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstUnit" RESULT: 13 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstUnit" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstUnit" RESULT: 12 msec
      PASS   : KisCompositionBenchmark::testRgbF32CompositeOverOptimized()
      
      (cherry picked from commit 3be07eee35505bf754f12617e5d9059c03c44d7c)
      91016738
  18. 04 Dec, 2013 2 commits
  19. 03 Dec, 2013 2 commits
  20. 25 Sep, 2013 1 commit
  21. 05 Sep, 2013 1 commit
  22. 23 Jul, 2013 1 commit
  23. 02 Jul, 2013 1 commit
  24. 29 Jun, 2013 1 commit
    • Dmitry Kazakov's avatar
      Fixed a pressure bug in Wash-mode of painting · c2fcdced
      Dmitry Kazakov authored
      When the pressure drops, the opacity drops as well. In this moment, to
      avoid the artifacts while painting the ALPHA_DARKEN op should work in a
      reversed way. That is the contents of the layer should be painted on the
      top of the brush dab. To allow this, we now keep the average value of the
      opacity of several last dabs to be able to reverse the composite op.
      
      This is tested to work best with spacings 0.1-0.2. With other spacing
      values, probably, one needs to correct exponent value in
      ParameterInfo::updateOpacityAndAverage().
      
      CCBUG:320651
      c2fcdced
  25. 19 May, 2013 1 commit
  26. 03 Dec, 2012 1 commit
  27. 02 Dec, 2012 2 commits
    • Dmitry Kazakov's avatar
      Added the first version of per-architecture binaries for composition · a2c4c33a
      Dmitry Kazakov authored
      Pros:
      + we can have prebuild versions for all the architectures supported
        by Vc (Amd XMA4 and XOP are not supported by Vc yet)
      + the implementation is chosen dynamically on Krita start
      + the semi-general code for multi-arch builds now in
        KoVcMultiArchBuildSupport.h (might be ported upstream in the future)
      
      Cons:
      - it depends on Vc's 'staging' branch, so it can't be put in master
        right now
      - the code became much less readable due to all that template magic
      - I had to copy-paste Vc's 'vc_compile_for_all_implementations' cmake
        macro, because we do not need 'Scalar' implementation
      - the size of the pigment library grew almost 1.5 times: 11->17 MiB
        (probably, we still need plugin system for this)
      
      CCMAIL:kimageshop@kde.org
      CCMAIL:kretz@kde.org
      a2c4c33a
    • Dmitry Kazakov's avatar
      Optimized vector composite ops by 1.5-2 times more · 72c50366
      Dmitry Kazakov authored
      Conversion Uint<->Float is quite expensive in comparison to
      Int<->Float (2-2.5 times). This happens because of special code
      that handles sign bit of the number. So discarding this bit with
      conversion Uint->Int makes a huge speedup.
      
      Now the vector version of the composition is 1.8-8.7 times faster
      that the old version (weighted: 3.2 times).
      
      Many thanks to Matthias Kretz for pointing this out!
      
      CCMAIL:kimageshop@kde.org
      CCMAIL:kretz@kde.org
      72c50366
  28. 27 Nov, 2012 1 commit
  29. 22 Nov, 2012 1 commit
  30. 24 Oct, 2012 1 commit
  31. 16 Oct, 2012 2 commits
  32. 15 Oct, 2012 1 commit