Bug 415367 - Animation play problems with little change in frame content (On-disk frame cache)
Summary: Animation play problems with little change in frame content (On-disk frame ca...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Animation (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: Debian stable Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
: 397213 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-12-19 19:31 UTC by Ahab Greybeard
Modified: 2020-03-03 19:42 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Example file 32-Bad.kra (49.02 KB, application/binary)
2019-12-19 19:31 UTC, Ahab Greybeard
Details
Example File 32-Variable-Blob-Good.kra (474.33 KB, application/binary)
2019-12-19 19:32 UTC, Ahab Greybeard
Details
Example file 32-Fixed-Blob-Bad.kra (477.20 KB, application/binary)
2019-12-19 19:33 UTC, Ahab Greybeard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ahab Greybeard 2019-12-19 19:31:38 UTC
Created attachment 124591 [details]
Example file 32-Bad.kra

SUMMARY
This has been observed before in the forum posts (one a long time ago and one recently https://forum.kde.org/viewtopic.php?f=139&t=163737 ) and for me it only happens with the Linux appimage for all versions that I tested from 4.2.6 to the Dec 17 4.3.0 prealpha (git 08e7240). 
It does not happen with the corresponding Windows portable zip builds running on Windows 10 but it does happen if I run those portable zip builds under WINE on Linux.

STEPS TO REPRODUCE
1. Start krita and make sure graphics acceleration is turned on.
2. Make a 32 x 32 animated image like 32-Bad.kra as attached
3. Note that this does not play well at all.
4. Turn off graphics acceleration (and restart krita)
5. Note that 32-Bad.kra now plays well.

6. Repeat the above with an additional large 'blob' of paint in a blank area that changes from frame to frame, like 32-Variable-Blob-Good.kra as atached.
7. Note that this plays well with graphics acceleration turned on.

8. Repeat the above with a large 'blob' added that does not change from frame to frame, like in 32-Fixed-Blob-Bad.kra as attached
9. Note that this does not play well with graphics acceleration turned on.
10. Turn off graphics acceleration (and restart) then note that 32-Fixed-Blob-Bad.kra plays well.

OBSERVED RESULT
See Steps To Reproduce.

EXPECTED RESULT
They should play as painted regardless of the graphics acceleration setting.

SOFTWARE/OS VERSIONS
Krita

 Version: 4.3.0-prealpha (git 08e7240)
 Languages: en_GB, en, en, en_GB, en
 Hidpi: true

Qt

  Version (compiled): 5.12.5
  Version (loaded): 5.12.5

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.19.0-6-amd64
  Pretty Productname: Debian GNU/Linux 10 (buster)
  Product Type: debian
  Product Version: 10

OpenGL Info
 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "GeForce GTX 750 Ti/PCIe/SSE2" 
  Version:  "4.6.0 NVIDIA 418.74" 
  Shading language:  "4.60 NVIDIA" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:    QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

Hardware Information

  GPU Acceleration: auto
  Memory: 16039 Mb
  Number of Cores: 8
  Swap Location: /tmp

Current Settings

  Current Swap Location: /tmp
  Undo Enabled: 1
  Undo Stack Limit: 18
  Use OpenGL: 1
  Use OpenGL Texture Buffer: 1
  Use AMD Vectorization Workaround: 0
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 360
  Use Backup Files: 1
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Use Win8 Pointer Input: 0
  Use RightMiddleTabletButton Workaround: 0
  Levels of Detail Enabled: 0
  Use Zip64: 0


ADDITIONAL INFORMATION
Comment 1 Ahab Greybeard 2019-12-19 19:32:43 UTC
Created attachment 124592 [details]
Example File 32-Variable-Blob-Good.kra
Comment 2 Ahab Greybeard 2019-12-19 19:33:16 UTC
Created attachment 124593 [details]
Example file 32-Fixed-Blob-Bad.kra
Comment 3 Dmitry Kazakov 2020-02-03 08:08:34 UTC
The problem happens only when "On-disk Animation Cache" function is used. As a temporary workaround, try to switch to "In-memory Animation Cache" in Settings->Performance->Animation Cache.
Comment 4 Dmitry Kazakov 2020-02-03 08:44:59 UTC
Git commit d4a892dfd4349319885b5e859f50c65aef1096d1 by Dmitry Kazakov.
Committed on 03/02/2020 at 08:44.
Pushed by dkazakov into branch 'master'.

Fix animation rendering problem on small images (< 100px in size)

We should not shortcut to full-frame-copy based on approximation,
it may hide some pixel-perfect changes, which are important for the user.

M  +14   -1    libs/ui/KisFrameCacheStore.cpp

https://invent.kde.org/kde/krita/commit/d4a892dfd4349319885b5e859f50c65aef1096d1
Comment 5 Dmitry Kazakov 2020-02-03 08:45:34 UTC
Git commit b104759eb6f2a48339829749607bf07484afd126 by Dmitry Kazakov.
Committed on 03/02/2020 at 08:45.
Pushed by dkazakov into branch 'krita/4.2'.

Fix animation rendering problem on small images (< 100px in size)

We should not shortcut to full-frame-copy based on approximation,
it may hide some pixel-perfect changes, which are important for the user.

M  +14   -1    libs/ui/KisFrameCacheStore.cpp

https://invent.kde.org/kde/krita/commit/b104759eb6f2a48339829749607bf07484afd126
Comment 6 Dmitry Kazakov 2020-03-03 19:42:37 UTC
*** Bug 397213 has been marked as a duplicate of this bug. ***