Bug 399259 - "On-disk" Animation Cache storage backend breaks animation playback
Summary: "On-disk" Animation Cache storage backend breaks animation playback
Status: RESOLVED WORKSFORME
Alias: None
Product: krita
Classification: Applications
Component: Animation (show other bugs)
Version: 4.1.3
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: release_blocker
Depends on:
Blocks:
 
Reported: 2018-09-30 22:03 UTC by kiwiblaster516
Modified: 2019-07-16 04:33 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kiwiblaster516 2018-09-30 22:03:03 UTC
SUMMARY

After recently attempting to create a new animation, I noticed that the playback would at times not reflect changes made in the key frames of a given layer despite those changes being visible by "stepping" through with the frame-by-frame controls.

The results were variable.  At first, it seemed that changing the "End" frame value would cause the problem, though later testing demonstrated that this was inconsistent.  The behavior was as follows: the first frame would display, then it would iterate through several (though, not all and sometimes none) of the frames prior to the chosen end frame --- at which point, it would freeze on that final frame no matter what keys followed it.  However, it would still run the duration of the animation as set by the end frame; it just wouldn't update the displayed image.  Again, stepping through with the frame-by-frame controls still revealed the changes.

I messed around a bit, thinking it had something to do with the scaling mode.  I noticed that changing this setting would cause the entire display to turn black when playback was started.  While that is likely a separate issue, it tipped me off to the possibility that this was a caching issue.  And, upon finding that the program was using on-disk caching, I set it to "In-Memory," which appears to have resolved the issue.

Long story short: I believe the On-disk caching method might not be updating correctly when either the Start and End values are changed, though it occasionally breaks even when these are not changed.

STEPS TO REPRODUCE
1.  (Krita should default to On-disk animation caching...)
2.  If not, Settings->Configure Krita->Performance->Animation Cache: Set Backend to On-disk
3. Attempt animating for a while --- the occurrence of this potential bug is inconsistent, but frequent.


OBSERVED RESULT
Playback does not update to include new key frames --- it instead freezes on either the first or "last" frame.  The "last" frame tends not to be the actual end of the animation, but one specified as the End value previously (though this value may have changed, the "last" frame does not).

EXPECTED RESULT
Playback of the animation as intended.

SOFTWARE VERSIONS
Krita Version: 4.1.3
Qt Version: 5.11.2  

ADDITIONAL INFORMATION
System: 4.18.10-arch1-1-ARCH

[$ glxinfo | grep -i "opengl"]:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 780/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 410.57
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 410.57
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 410.57
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

[$ lscpu]:
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               58
Model name:          Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
Stepping:            9
CPU MHz:             1604.789
CPU max MHz:         3900.0000
CPU min MHz:         1600.0000
BogoMIPS:            7023.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            8192K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm cpuid_fault epb pti tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

[# smartctl -i /dev/sdb]:
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.18.10-arch1-1-ARCH] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST1000DM003-9YN162
Serial Number:    S1D3DEWZ
LU WWN Device Id: 5 000c50 05159a012
Firmware Version: CC4B
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Sun Sep 30 17:54:55 2018 EDT

==> WARNING: A firmware update for this drive may be available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/223651en

SMART support is: Available - device has SMART capability.
SMART support is: Enabled


TEMPORARY WORKAROUND:
Set Animation Caching to "In-memory" (Seems to work consistently)

I realize that a lot of the above may be of little help, but I wanted to be thorough!  I hope this helps!
Comment 1 gilles.roudiere 2018-10-07 19:22:51 UTC
Hello,

Just to mention I have the exact same problem. So that's a confirmed bug.
(Thanks for the workaround btw)

I'm also running Archlinux, with and Inter HD Graphics 5500.
Comment 2 Halla Rempt 2018-10-09 12:17:44 UTC
Could you please take a look?
Comment 3 Dmitry Kazakov 2019-05-24 09:03:52 UTC
Hi, Kiwiblaster and Gilles!

I have a feeling that I have fixed such bug in Krita 4.2 release cycle. I have checked on both Windows and Linux and I cannot reproduce it :(


Could you please check the latest beta build if the bug still persists?
https://krita.org/en/item/krita-4-2-0-beta-released/

If the bug is still actual, please reopen the bug. A screen video recording could also help me to reproduce the problem and see what is wrong there...
Comment 4 Bug Janitor Service 2019-06-08 04:33:08 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 gilles.roudiere 2019-06-16 15:32:09 UTC
I did a reaI personaly could not reproduce the bug.
It's likely fixed.
Comment 6 gilles.roudiere 2019-06-16 15:33:04 UTC
I did a really quick test and could not reproduce the bug.
It's likely fixed.
Comment 7 Bug Janitor Service 2019-07-01 04:33:08 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Bug Janitor Service 2019-07-16 04:33:13 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!