SUMMARY [Regression & Release Blocker]. Automatic keyframe creation (AutoKey) causes a number of major issues on master: 1. Drawing multiple frames with autokey can cause Krita to lock up, as a "freehand brush stroke job" becomes stuck in the system and never completes, blocking other operations. 2. Drawing multiple frames with autokey can cause autokey to stop working entirely. STEPS TO REPRODUCE 1. On master, open Krita and create a new document. 2. In the Animation Timeline's popover menu, click the button to enable AutoKey (blank mode). 3. Select frame 0 and create a blank frame. 4. Draw something on frame 0. 5. Select another frame and draw something, letting AutoKey create new frames. 6. Loop step 5 a few times as if making an animation. OBSERVED RESULT We'll see that, somewhat randomly, AutoKey will either no longer work correctly OR will cause the program to lock up as a "Freehand Brush Stroke Job" fails to complete.
Noticed the exact same thing, haven't been able to reproduce it 100% but it's quite common.
Bisected to commit b3b33ae23426a96954e82839b8af5285924719ec.
Git commit ed4e85405ec9dc687cb49bc351f1696f5ab1647a by Eoin O'Neill, on behalf of Emmet O'Neill. Committed on 16/06/2022 at 20:28. Pushed by eoinoneill into branch 'master'. Identified cause of bug, unable to find a solution currently... M +3 -1 libs/image/kis_node.cpp https://invent.kde.org/graphics/krita/commit/ed4e85405ec9dc687cb49bc351f1696f5ab1647a
Git commit 38fec364f48b32bddf7488202e44c8ad28f54d73 by Eoin O'Neill, on behalf of Emmet O'Neill. Committed on 16/06/2022 at 20:28. Pushed by eoinoneill into branch 'master'. Animation: Re-added AutoKey support to filters. After moving AutoKey functionality out of KisTransaction and into the calling strokes, we've now re-added the functionality to filter changes too. On top of that we've added registered AutoKey changes with the undo system. (Though it requires 2 separate undos for now.) M +1 -1 libs/image/KisAnimAutoKey.h M +2 -1 libs/image/kis_keyframe_commands.cpp M +4 -0 libs/image/kis_layer_utils.h M +2 -1 libs/ui/kis_filter_manager.cc M +54 -17 libs/ui/tool/strokes/kis_filter_stroke_strategy.cpp M +2 -1 libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp https://invent.kde.org/graphics/krita/commit/38fec364f48b32bddf7488202e44c8ad28f54d73
Git commit 0f6f9799c6caa63cbe2bdad0e20018b2f3025f39 by Eoin O'Neill. Committed on 16/06/2022 at 20:28. Pushed by eoinoneill into branch 'master'. Fix undo redo frame content updates. Autokey bug should be fully fixed now. M +44 -6 libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp https://invent.kde.org/graphics/krita/commit/0f6f9799c6caa63cbe2bdad0e20018b2f3025f39
Git commit 144e1c3a07b4750007118e8970b964a1432e9dd1 by Emmet O'Neill. Committed on 21/06/2022 at 03:00. Pushed by emmetoneill into branch 'krita/5.1'. Identified cause of bug, unable to find a solution currently... M +3 -1 libs/image/kis_node.cpp https://invent.kde.org/graphics/krita/commit/144e1c3a07b4750007118e8970b964a1432e9dd1
Git commit 1ac9512a92b86df078312974e4abc84b54e2e951 by Emmet O'Neill. Committed on 21/06/2022 at 03:01. Pushed by emmetoneill into branch 'krita/5.1'. Animation: Re-added AutoKey support to filters. After moving AutoKey functionality out of KisTransaction and into the calling strokes, we've now re-added the functionality to filter changes too. On top of that we've added registered AutoKey changes with the undo system. (Though it requires 2 separate undos for now.) M +1 -1 libs/image/KisAnimAutoKey.h M +2 -1 libs/image/kis_keyframe_commands.cpp M +4 -0 libs/image/kis_layer_utils.h M +2 -1 libs/ui/kis_filter_manager.cc M +54 -17 libs/ui/tool/strokes/kis_filter_stroke_strategy.cpp M +2 -1 libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp https://invent.kde.org/graphics/krita/commit/1ac9512a92b86df078312974e4abc84b54e2e951
Git commit 26a5a608dfc877151df5d0484607eda664b84217 by Emmet O'Neill, on behalf of Eoin O'Neill. Committed on 21/06/2022 at 03:01. Pushed by emmetoneill into branch 'krita/5.1'. Fix undo redo frame content updates. Autokey bug should be fully fixed now. M +44 -6 libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp https://invent.kde.org/graphics/krita/commit/26a5a608dfc877151df5d0484607eda664b84217