STEPS TO REPRODUCE 0. Enable Onion Skins for the layer 1. Enable auto-keyframe feature (any mode) 2. Draw a set of sequential frames. One smaller than the previous. 3. The updates become incorrect with time and the "older" skins will not be updated anymore. Screenshot: https://pasteboard.co/YuMlWojXgKuS.png The bug might be related to https://bugs.kde.org/show_bug.cgi?id=473288, but I'm not very sure, because the reporter in 473288 experience persistent corruption of the layer data, not temporary like in this bug.
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1932
Git commit 0b2804491a75f0414f1e3aa386c6fa92daf2f45c by Dmitry Kazakov. Committed on 07/09/2023 at 12:46. Pushed by dkazakov into branch 'krita/5.2'. Fix updates on autokeyframing with onion skins enabled When we create a new frame, we may change a set of onion skins that should be displayed on screen. Therefore, we should issue a set of specific updates for such a case. The patch adds a set of more granular signals to KisKeyframeChannel, so that the addition and removal of the keyframes can be tracked properly. The patch also fixes the issue with sigRemovingKeyframe() being emitted **after** the frame was actually removed from the raster channel. M +21 -15 libs/image/kis_keyframe_channel.cpp M +21 -8 libs/image/kis_keyframe_channel.h M +22 -4 libs/image/kis_node.cpp M +6 -1 libs/image/kis_node.h M +101 -2 libs/image/kis_onion_skin_compositor.cpp M +3 -0 libs/image/kis_onion_skin_compositor.h M +67 -5 libs/image/kis_paint_layer.cc M +4 -0 libs/image/kis_paint_layer.h M +3 -1 libs/image/kis_raster_keyframe_channel.cpp M +0 -18 libs/image/kis_scalar_keyframe_channel.cpp M +0 -3 libs/image/kis_scalar_keyframe_channel.h M +1 -1 libs/image/tests/kis_keyframing_test.cpp M +1 -1 plugins/dockers/animation/timeline_node_list_keeper.cpp M +1 -1 plugins/tools/tool_transform2/kis_animated_transform_parameters.cpp https://invent.kde.org/graphics/krita/-/commit/0b2804491a75f0414f1e3aa386c6fa92daf2f45c
Git commit 5e4b1ab10d1afebff61487e1916f93ee818eec64 by Dmitry Kazakov. Committed on 07/09/2023 at 12:53. Pushed by dkazakov into branch 'master'. Fix updates on autokeyframing with onion skins enabled When we create a new frame, we may change a set of onion skins that should be displayed on screen. Therefore, we should issue a set of specific updates for such a case. The patch adds a set of more granular signals to KisKeyframeChannel, so that the addition and removal of the keyframes can be tracked properly. The patch also fixes the issue with sigRemovingKeyframe() being emitted **after** the frame was actually removed from the raster channel. M +21 -15 libs/image/kis_keyframe_channel.cpp M +21 -8 libs/image/kis_keyframe_channel.h M +22 -4 libs/image/kis_node.cpp M +6 -1 libs/image/kis_node.h M +101 -2 libs/image/kis_onion_skin_compositor.cpp M +3 -0 libs/image/kis_onion_skin_compositor.h M +67 -5 libs/image/kis_paint_layer.cc M +4 -0 libs/image/kis_paint_layer.h M +3 -1 libs/image/kis_raster_keyframe_channel.cpp M +0 -18 libs/image/kis_scalar_keyframe_channel.cpp M +0 -3 libs/image/kis_scalar_keyframe_channel.h M +1 -1 libs/image/tests/kis_keyframing_test.cpp M +1 -1 plugins/dockers/animation/timeline_node_list_keeper.cpp M +1 -1 plugins/tools/tool_transform2/kis_animated_transform_parameters.cpp https://invent.kde.org/graphics/krita/-/commit/5e4b1ab10d1afebff61487e1916f93ee818eec64