[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Need help with testing Animation Cache swapping patch :)
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2018-05-31 16:02:09
Message-ID: 1090cf04-fddd-b0d1-234f-2318854fb7b1 () gmail ! com
[Download RAW message or body]

Hi, all!

I have just implemented the animation cache swapping feature and I need 
your help with testing its usability and stability :)

What is it and why it is needed?
===================

When the user presses Play button, Krita needs to prepare all the frames 
of the user's animation and store this cache somewhere. In older 
versions of Krita all these cached frames were stored on in RAM. It 
caused some troubles when the user decided to make quite big animation 
clip, e.g. 200 frames of 6000x4000, which is about 19GiB(!) and will not 
fit into normal user's RAM :)

This new feature will make Krita drop all these cached frame to a hard 
drive and not occupy so much RAM.


What it does?
========

When the frames are generated, they are first compressed and then saved 
to the hard drive, into the same folder where swap file is stored. 
During the playback, the frames are fetched from the hard drive on demand.


Configuration options
=============

The options are placed in:
Settings->Preferences->Performance->Animation Cache

* In-Memory/On-Disk -- choose whether you want to use old or new engine
* Limit Cached Frame Size -- if the size of the frame is too big, Kirta 
may fail too load/decompress it quickly enough. Recommended value is 
2500px. In such a case, the frames will always be scaled down to the 
size not bigger than 2500px.
* Region of Interest -- when enabled, Krita will pre-generate only a 
portion of the canvas currently visible to the user
* Auto-generate animation cache -- enable generation of the frames in a 
background

All the options have tooltips, don't hesitate to check them :)


How to test?
=======

I've made a Windows package, so you could test it easily :)

https://yadi.sk/d/wX0G4z9J3WjpPt

If you prefer building yourself, you can try my git-branch:

git checkout kazakov/animation-cache-swapping


Test plan
======

0) Make sure you have On-Disk backend activated and Frame Size Limit Set.
1) Open/Create an animaiton file with resolution 6000x4000 and at least 
200 frames
2) Press Play button

Try playing the animation many times with different zoom level and 
panning. Also try to pan the image right while playback to see the 
margins of region-of-interest.

Everything should work in a sane way :)

-- 
Dmitry Kazakov


[Attachment #3 (text/html)]

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font size="-1">Hi, all!<br>
      <br>
      I have just implemented the animation cache swapping feature and I
      need your help with testing its usability and stability :)<br>
      <br>
      What is it and why it is needed?<br>
      ===================<br>
      <br>
      When the user presses Play button, Krita needs to prepare all the
      frames of the user's animation and store this cache somewhere. In
      older versions of Krita all these cached frames were stored on in
      RAM. It caused some troubles when the user decided to make quite
      big animation clip, e.g. 200 frames of 6000x4000, which is about
      19GiB(!) and will not fit into normal user's RAM :)<br>
      <br>
      This new feature will make Krita drop all these cached frame to a
      hard drive and not occupy so much RAM.<br>
      <br>
      <br>
      What it does?<br>
      ========<br>
      <br>
      When the frames are generated, they are first compressed and then
      saved to the hard drive, into the same folder where swap file is
      stored. During the playback, the frames are fetched from the hard
      drive on demand.<br>
      <br>
      <br>
      Configuration options<br>
      =============<br>
      <br>
      The options are placed in:<br>
      Settings-&gt;Preferences-&gt;Performance-&gt;Animation Cache<br>
      <br>
      * In-Memory/On-Disk -- choose whether you want to use old or new
      engine<br>
      * Limit Cached Frame Size -- if the size of the frame is too big,
      Kirta may fail too load/decompress it quickly enough. Recommended
      value is 2500px. In such a case, the frames will always be scaled
      down to the size not bigger than 2500px.<br>
      * Region of Interest -- when enabled, Krita will pre-generate only
      a portion of the canvas currently visible to the user<br>
      * Auto-generate animation cache -- enable generation of the frames
      in a background<br>
      <br>
      All the options have tooltips, don't hesitate to check them :)<br>
      <br>
      <br>
      How to test?<br>
      =======<br>
      <br>
      I've made a Windows package, so you could test it easily :)<br>
      <br>
      <a class="moz-txt-link-freetext" \
href="https://yadi.sk/d/wX0G4z9J3WjpPt">https://yadi.sk/d/wX0G4z9J3WjpPt</a><br>  \
<br>  If you prefer building yourself, you can try my git-branch:<br>
      <br>
      git checkout kazakov/animation-cache-swapping<br>
      <br>
      <br>
      Test plan<br>
      ======<br>
      <br>
      0) Make sure you have On-Disk backend activated and Frame Size
      Limit Set.<br>
      1) Open/Create an animaiton file with resolution 6000x4000 and at
      least 200 frames<br>
      2) Press Play button<br>
      <br>
      Try playing the animation many times with different zoom level and
      panning. Also try to pan the image right while playback to see the
      margins of region-of-interest.<br>
      <br>
      Everything should work in a sane way :)<br>
    </font><font size="-1"><br>
    </font>
    <pre class="moz-signature" cols="72">-- 
Dmitry Kazakov</pre>
  </body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic