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. 26 Mar, 2019 1 commit
    • Agata Cacko's avatar
      Fix Sequential Iterator assert on invalid rectangles · d7542a79
      Agata Cacko authored
      Summary:
      Before Quick Brush engine (roundmarker) was crashing
      because Sequential Iterator throwed out asserts
      when the rectangle was not "empty" according to Qt
      but  still not valid (for example has intmin value on
      width or height). This commit fixes that behaviour by
      providing additional checks.
      Commit includes also benchmarks for roundmarker.
      
      BUG:404179
      
      Test Plan:
      - benchmarks included in the commit
      - painting with Quick Brush (i.e. b) Basic-1)
      with size <1 px
      
      Reviewers: dkazakov, #krita
      
      Reviewed By: dkazakov, #krita
      
      Subscribers: rempt
      
      Tags: #krita
      
      Differential Revision: https://phabricator.kde.org/D19881
      d7542a79
  5. 01 Feb, 2019 1 commit
  6. 26 Jul, 2018 1 commit
  7. 10 Jul, 2018 1 commit
  8. 26 Apr, 2018 2 commits
  9. 04 Jan, 2018 1 commit
    • Dmitry Kazakov's avatar
      Refactor KisSequentialIterator to use java-style iteration · f352cc1d
      Dmitry Kazakov authored
      This patch touches quite a lot of stuff throughout the entire Krita,
      please report any crashes you get because of that!
      
      Technical details:
      
      The sequential iterator (alongside the hline and vline) iterators had
      an inherent problem: when called with an empty rect it just crashed
      with SIGSEGV (hlive and vline iterators just have a hack to read/write
      at least one pixel when called with an empty rect). This problem happens
      because of the structure of API we use: we call nextPixel() **after** the
      first cycle of iteration, that is we will read/write at least one pixel
      even when the requested rect is empty(!).
      
      Now the iterator inserts one "virtual" pixel before every iteration that
      allows the user to call nextPixel() **before** the the first iteration
      and stop the cycle in case the check fails.
      
      See example code snippets in kis_sequential_iterator.h
      
      CC:kimageshop@kde.org
      BUG:388272
      f352cc1d
  10. 06 Dec, 2017 1 commit
  11. 17 Aug, 2017 1 commit
  12. 15 Aug, 2017 1 commit
  13. 08 Aug, 2017 1 commit
  14. 04 Jul, 2017 1 commit
    • Dmitry Kazakov's avatar
      Implement progress reporting for asynchronous saving · a2f0275b
      Dmitry Kazakov authored
      This patch refactors KoProgresssUpdater a bit:
      
      1) Multiple subtasks are handled correctly now
      2) Subtasks names can be nested
      3) KisViewManager creates not KoProgressUpdater, but KoUpdater class,
         which is a part of the global progress queue. Therefore, there
         in no concurrent access to the progress bar now.
      a2f0275b
  15. 24 Jun, 2017 1 commit
    • Dmitry Kazakov's avatar
      Implement asynchronous saving of Krita documents · bb5db7ce
      Dmitry Kazakov authored
      Now all the saving operations work in the following way:
      1) Make a shallow copy of the image
      2) Create a separate document with it
      3) Save it in a separate thread in background
      
      The functionality basically works, except the following parts:
      
      1) Cloning the image "forgets" some image stuff. I don't have a list of what
         is forgotten yet (layer styles?).
      2) Closing the image while Krita is saving will most probably cause a crash.
      3) D&D of layers is not tested, though it should work.
      4) There was some option to provide "real name" for json export plugin,
         it is not supported anymore.
      bb5db7ce
  16. 25 May, 2017 1 commit
  17. 11 May, 2017 1 commit
  18. 08 Apr, 2017 1 commit
  19. 14 Jan, 2017 1 commit
  20. 05 Nov, 2016 1 commit
  21. 01 Nov, 2016 1 commit
  22. 25 Sep, 2016 1 commit
  23. 13 Sep, 2016 1 commit
  24. 01 Sep, 2016 1 commit
  25. 30 Jul, 2016 1 commit
    • Eugene Ingerman's avatar
      Add antialiasing to createThumbnailDevice · 2a1987a8
      Eugene Ingerman authored
      Summary:
      1. Added oversampling/antialising to createThumbnailDevice. Interpolation is done using KisTransformWorker with bilinear interpolation. Added parameter that controls oversampling ratio.
      2. Added benchmark for new thumbnail code. Results for 6Kx8K image turned into 640px thumbnail see below. About 2x hit in time for 2x oversampling. Quality with 2x oversampling is much better than no oversampling. 4x oversampling slightly better, but not dramatically. See below.
      3. Changed oversampling for overview widget to 2x.
      4. Fixed caching of oversampled thumbnails.
      5. Fixed up functions calls to createThumbnail.
      
      {F156583}
      No Oversampling
      
      {F156585}
      2x Oversampling
      
      {F156586}
      4x Oversampling
      
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnail()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnail():
           161 msecs per iteration (total: 161, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailCached()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailCached():
           0.000059 msecs per iteration (total: 62, iterations: 1048576)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ():
           3,962 msecs per iteration (total: 3,962, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x():
           269 msecs per iteration (total: 269, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x():
           489 msecs per iteration (total: 489, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x():
           701 msecs per iteration (total: 701, iterations: 1)
      
      Test Plan: Run KisThumbnailBenchmark.
      
      Reviewers: rempt, dkazakov, woltherav
      
      Reviewed By: rempt, woltherav
      
      Subscribers: woltherav
      
      Differential Revision: https://phabricator.kde.org/D1979
      2a1987a8
  26. 20 Jun, 2016 1 commit
    • Boudewijn Rempt's avatar
      Make all KisSerializeConfiguration objects shared pointers · c1fb1319
      Boudewijn Rempt authored
      This is a huge and dangerous refactoring: I think we will find
      double delete crashes for some time to come, though starting krita,
      painting, filtering and closing work without problems. We were
      leaking these configuration objects all over the place, though, since
      there was no ownership defined.
      c1fb1319
  27. 19 May, 2016 1 commit
  28. 25 Apr, 2016 1 commit
  29. 22 Apr, 2016 1 commit
  30. 11 Apr, 2016 4 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
    • Dmitry Kazakov's avatar
      Optimize Sharp brushes by 5% more · 2c8a5d05
      Dmitry Kazakov authored
      When Fade is 100% and "Antialias Edges" option is off, there is no need
      to calculate vNormFade term. Anyway the result will be +-inf :)
      
      (cherry picked from commit e6545fdf)
      2c8a5d05
    • Dmitry Kazakov's avatar
      Optimize autobrush mask generation by 15-20% · 0b4c3f93
      Dmitry Kazakov authored
      Just skip areas with n > 1. They are outsize the brush bounds, so
      there is no reason to work with them.
      
      And yes, it gives something like 15% better performance :)
      
      (cherry picked from commit 282d2f0c)
      0b4c3f93
    • 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
  31. 09 Apr, 2016 4 commits
  32. 08 Apr, 2016 2 commits