1. 25 Apr, 2016 1 commit
  2. 30 Mar, 2016 1 commit
    • Boudewijn Rempt's avatar
      Add a new macro: kde4_add_broken_unit_test · f7990279
      Boudewijn Rempt authored
      This does everything kde4_add_unit_test does, except for calling
      add_test(); and it warns about the broken unittest on running cmake.
      You can still run the tests manually when you want to fix them,
      but at least we can achieve a stable build now.
      f7990279
  3. 30 Jan, 2016 1 commit
  4. 25 Jan, 2016 1 commit
    • Boudewijn Rempt's avatar
      Move kritaimage to libs · b46898a0
      Boudewijn Rempt authored
      This shows up a bunch of other problems with alien includes. Some
      tests have been disabled (marked "kisdoc") because they needed
      kritaui.
      b46898a0
  5. 30 Sep, 2015 1 commit
  6. 16 Sep, 2015 1 commit
  7. 04 Sep, 2015 2 commits
  8. 29 Mar, 2015 1 commit
  9. 20 Mar, 2015 2 commits
  10. 06 Mar, 2015 1 commit
  11. 05 Dec, 2014 1 commit
    • Boudewijn Rempt's avatar
      Merge krita-mvc-rempt into master · 1cb2d177
      Boudewijn Rempt authored
      This refactors Krita to allow the user to have more than one
      image open in a window. Krita no longer uses or depends on the
      komain library.
      
      For now, Sketch and Gemini are disabled.
      
      review:119612
      
      Conflicts:
      	krita/ui/kis_view2.cpp
      	krita/ui/tool/kis_delegated_tool.h
      1cb2d177
  12. 11 Jul, 2014 1 commit
  13. 16 Mar, 2013 1 commit
    • Dmitry Kazakov's avatar
      Ported Fill Tool to strokes · 90ca9a9b
      Dmitry Kazakov authored
      This patch does 3 major things:
      1) Ports the tool to strokes framework
      
      2) Adds KisSimpleProcessingVisitor class which makes creation of new
         processings easier (Lukas can use it now in his branch).
      
      3) Adds lazy fetching of the "initial" image set for the qimage-based
         tests. Now this set is shared by all the unittests, so there is no
         need to store copies of it.
      
      BUG:316182
      CCMAIL:lukast.dev@gmail.com
      90ca9a9b
  14. 08 Mar, 2013 1 commit
  15. 05 Mar, 2013 1 commit
  16. 29 Aug, 2012 1 commit
  17. 02 Oct, 2011 1 commit
    • Dmitry Kazakov's avatar
      Added a unittest that reproduces a deadlock in tiles-swap-COW system · 7494a6ea
      Dmitry Kazakov authored
      This happens due to inversion of the lock order in when the tile
      in fetched from the swap by two threads: first during COW (write access),
      second with read access. Reader takes "list lock" first, then it takes
      "swap lock". The writer does exactly reverse. That can cause a deadlock.
      7494a6ea
  18. 06 Mar, 2011 1 commit
    • Dmitry Kazakov's avatar
      Implemented a new bounded tile data pooler · 1b826714
      Dmitry Kazakov authored
      (!) Important notice: it would be more safe to perform 'make clean'
          in krita/image/ directory if you decide to switch to this branch
      
      Well, this commit implements a new memory-bounded pooler thread. The
      configuration of the pool is done using a special option
      "memoryPoolLimitPercent". It sets the percent of the memory, that you
      would like to spend on the tiles pool. Please notice, that this value
      is included in hard/soft limits as well. That means Krita will never
      take more than Hard Limit memory on tiles and clones together.
      
      This implementation performs not full power yet. I haven't done any
      optimizations, so the highest efficiency it can reach now is 50% of
      tiles pre-clone hits. I could get this numbers on gradient tool and on
      very short brush strokes. It is quite curious, but the longer stroke
      you do, the less efficient the pooler is. I hope i'll get it fixed
      soon.
      
      CCMAIL:kimageshop@kde.org
      1b826714
  19. 18 Feb, 2011 1 commit
  20. 31 Jul, 2010 5 commits
    • Dmitry Kazakov's avatar
      Let's count memory with "metric" instead of number of tiles · d2fbb5f8
      Dmitry Kazakov authored
      The volume of memory occupied by tile data objects is measured with a
      special metric. It is much faster to calculate dynamically, than an
      actual size of the store.
      
      metric = num_bytes / (KisTileData::WIDTH * KisTileData::HEIGHT)
      
      This commit fixes many bugs and deadlocks as well.
      
      svn path=/trunk/koffice/; revision=1157608
      d2fbb5f8
    • Dmitry Kazakov's avatar
      Created nice iterators for KisTileDataStore · 73ab548b
      Dmitry Kazakov authored
      .. and dropped my homemade implementation of linked list. It was only
      20% faster than Qt's implementation. But the actual speed is measured
      by less that 0.1ms, so there will be no big difference, i think.
      
      svn path=/trunk/koffice/; revision=1157599
      73ab548b
    • Dmitry Kazakov's avatar
      Fix tests · 9e2a500b
      Dmitry Kazakov authored
      KisSwappedDataStoreTest: we do not want to export KisTileData from
                               kritaimage.so so just compile it in
      KisTiledDataManagerTest: fix the test to conform the behavour after
                               fixing fastFitBlt
      
      svn path=/trunk/koffice/; revision=1157598
      9e2a500b
    • Dmitry Kazakov's avatar
      Added a preliminary implementation of swapper. · 5adde53d
      Dmitry Kazakov authored
      The swapper will work in two passes. First pass (the one that is
      implemented in the commit) will swap out memento tiles. So it'll swap
      out undo information only. The second pass (still to be implemented)
      will be more aggressive and will work as a classical
      "clock"-algorithm.
      
      There are several configuration options added: memoryHardLimit and
      memorySoftLimit. You can find their description in a diagram in a docs
      to KisStoreLimits class (kis_tile_data_swapper_p.h).
      
      svn path=/trunk/koffice/; revision=1157597
      5adde53d
    • Dmitry Kazakov's avatar
      Added a swapping framework to KisTileDataStore · f0dff5b3
      Dmitry Kazakov authored
      The swapping entry points now are:
      * KisTileDataStore::blockSwapping(td)
      * KisTileDataStore::unblockSwapping(td)
      * KisTileDataStore::trySwapTileData(td)
      
      Btw, i've added a class for accessing the store in test. It is called
      KisTestingTileDataStoreAccessor.
      
      svn path=/trunk/koffice/; revision=1157595
      f0dff5b3
  21. 23 Jul, 2010 1 commit
    • Dmitry Kazakov's avatar
      Added a KisSwappedDataStore · aea45fdd
      Dmitry Kazakov authored
      This is a highlevel interface for a couple KisChunkAllocator and
      KisMemoryWindow. This class is supposed to be used for swapping a
      single tile out and restoring it back.
      
      svn path=/trunk/koffice/; revision=1153471
      aea45fdd
  22. 20 Jul, 2010 1 commit
  23. 18 Jul, 2010 1 commit
  24. 06 Jul, 2010 1 commit
    • Dmitry Kazakov's avatar
      Added memory pool class · 750c4309
      Dmitry Kazakov authored
      Memory pool object for fast allocation of big objects.
      Please, don't even try to use it for small objects -
      it's pointless. glibc will be faster anyway.
      
      What is small and what is big object? On my machine
      (2GiB of RAM) glibc's memory pool seemed to be about
      128-256KiB. So if the total size of constantly
      allocated/deallocated objects grows higher 128KiB,
      you need to use this pool.
      
      In tests, there is no big difference between pools of
      size 32 and of size 64.
      
      How does it work? Very simple. The pool has an array
      of atomic pointers to memory chunks. When memory request
      comes, it searches in the array  for the first non-zero
      pointer and rerurns it. When the pointer is returned back -
      the pool writes it to the first free slot.
      
      svn path=/trunk/koffice/; revision=1146682
      750c4309
  25. 30 Jun, 2010 1 commit
    • Dmitry Kazakov's avatar
      Added a lockless stack implementation to tiles3. · f0becfd1
      Dmitry Kazakov authored
      It hasn't been connected to the engine yet, but some benchmarks are
      done:
      
      o At high-concurrency environment the new implementation is 5
        times faster than reference couple of QStack+QMutex.
      o At extremely low concurrency QStack is less than 1% faster.
      o In single-threaded environment QStack is up to 20% faster then
        lockless version.
      
      svn path=/trunk/koffice/; revision=1144712
      f0becfd1
  26. 27 Jun, 2010 2 commits
  27. 23 Jun, 2010 1 commit
    • Dmitry Kazakov's avatar
      Added tile compression framework. · eb37f38f
      Dmitry Kazakov authored
      It has not been connected to the engine yet.
      KisAbstractCompression - general compression algorithm class.
      KisAbstractTileCompressor - general object for wrapping, compressing,
      saving tiles and tile data objects.
      
      svn path=/trunk/koffice/; revision=1141680
      eb37f38f
  28. 02 Jun, 2010 1 commit
  29. 10 May, 2009 1 commit
    • Dmitry Kazakov's avatar
      Here is the fist step in producing of new tile engine. =) · 3d3c6ef6
      Dmitry Kazakov authored
      It's only beginning so you can't build krita with it, but you can test some features with a simple test suite located in krita/image/tiles3/tests/test_tiles_cow/. The list of "features" is quite short yet. Atm it simply creates a few tiles and shares tiledata between them with CopyOnWrite mechanism.
      
      I think the deadlock problem will be solved with introducing kind of locking policy that will be implemented at the iterators' level.
      
      So "the first great locking rule" sounds like:
      Everytime lock for read first.
      
      Blogspot link: http://dimula73.blogspot.com/2009/05/today-ive-implemented-things-projected.html
      
      
      svn path=/branches/work/koffice-feature-tiles-ng/; revision=966299
      3d3c6ef6
  30. 28 Aug, 2008 1 commit
  31. 24 Sep, 2007 1 commit
    • Laurent Montel's avatar
      Adapt CMakeLists.txt as discussed with Alex. · 783b469e
      Laurent Montel authored
      KDE4_ADD_TEST_EXECUTABLE is deprecated now use KDE4_ADD_EXECUTABLE(<target> TEST <files>) instead
      QT4_ADD_DBUS_INTERFACE_NO_NAMESPACE and QT4_ADD_DBUS_INTERFACES_NO_NAMESPACE are deprecated too
      used SET_SOURCE_FILES_PROPERTIES(<files> PROPERTIES NO_NAMESPACE TRUE) QT4_ADD_DBUS_INTERFACES(<srcList> <files>)
      set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) is put in each CMakeLists.txt where
      KDE4_ADD_EXECUTABLE(<target> TEST <files>) and KDE4_ADD_UNIT_TEST were used.
      
      svn path=/trunk/koffice/; revision=716164
      783b469e
  32. 10 Jul, 2007 1 commit
  33. 07 Jul, 2007 1 commit