Bug 441587 - Windows - Cache flushing after time change operations when "Live Preview" is active.
Summary: Windows - Cache flushing after time change operations when "Live Preview" is ...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Animation (other bugs)
Version First Reported In: 5.0.0-beta1
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Eoin O'Neill
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-26 20:30 UTC by Eoin O'Neill
Modified: 2021-09-20 21:46 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eoin O'Neill 2021-08-26 20:30:54 UTC
SUMMARY
For some reason, the cache will flush whenever the image time has changed. This isn't a deal-breaker, but it's a minor annoyance and inconsistent with the linux build.

STEPS TO REPRODUCE
1. Press play to cache the animation.
2. Press stop. Cache should persist.
3. Seek to time. Cache will immediately flush, which is undesired.

OBSERVED RESULT
Cache flushes

EXPECTED RESULT
Cache should persist. In the event that a flush is required, it should only flush for the active frames' scope.

SOFTWARE/OS VERSIONS
Windows: 10
Comment 1 Eoin O'Neill 2021-09-16 00:07:14 UTC
Git commit b9eed7ba0ed597aedb488ddc37aaa31a2a659d0e by Eoin O'Neill.
Committed on 16/09/2021 at 00:00.
Pushed by eoinoneill into branch 'master'.

Fix frame cache invalidation with live preview on Windows.

I couldn't determine why this behavior is different between windows and
linux, but I was able to solve the issue. Basically, when we refresh
graph async we want to block frame invalidation temporarily since we
will do so later in the method manually if it's necessary.

I also noticed we have a few uses of `friend class` here or there that
need to eventually be cleaned up. I've made a note of it, and I will
handle it once Krita 5 is officially out.

M  +1    -0    libs/image/kis_image_animation_interface.h
M  +15   -0    libs/image/kis_suspend_projection_updates_stroke_strategy.cpp
M  +11   -0    libs/image/kis_suspend_projection_updates_stroke_strategy.h

https://invent.kde.org/graphics/krita/commit/b9eed7ba0ed597aedb488ddc37aaa31a2a659d0e
Comment 2 Eoin O'Neill 2021-09-20 21:46:53 UTC
Git commit 689ff53b023342b50570a924951e9833137bdc52 by Eoin O'Neill.
Committed on 20/09/2021 at 21:19.
Pushed by eoinoneill into branch 'krita/5.0'.

Fix frame cache invalidation with live preview on Windows.

I couldn't determine why this behavior is different between windows and
linux, but I was able to solve the issue. Basically, when we refresh
graph async we want to block frame invalidation temporarily since we
will do so later in the method manually if it's necessary.

I also noticed we have a few uses of `friend class` here or there that
need to eventually be cleaned up. I've made a note of it, and I will
handle it once Krita 5 is officially out.
(cherry picked from commit b9eed7ba0ed597aedb488ddc37aaa31a2a659d0e)

M  +1    -0    libs/image/kis_image_animation_interface.h
M  +15   -0    libs/image/kis_suspend_projection_updates_stroke_strategy.cpp
M  +11   -0    libs/image/kis_suspend_projection_updates_stroke_strategy.h

https://invent.kde.org/graphics/krita/commit/689ff53b023342b50570a924951e9833137bdc52