| Summary: | Krita crashing when attempting to resize or move (using transform) a very big layer stack | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Roy Blumenthal <royblumenthal> |
| Component: | Tools/Transform | Assignee: | Krita Bugs <krita-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | yavn.work |
| Priority: | NOR | ||
| Version First Reported In: | 5.1.5 | ||
| Target Milestone: | --- | ||
| Platform: | Appimage | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/17cf66d4952274457d9a2560d674ccc68eaa66bd | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | Krita System Details File | ||
|
Description
Roy Blumenthal
2023-06-10 08:53:05 UTC
Thank you for the file attached in Dropbox, I can reproduce the bad behavior (e.g. transformation taking a very long time to take an effect). To me the app effectively hangs. I can reproduce this on Windows and Ubuntu 22.04 with Krita 5.1.5. When the transformation gets stuck, there's one CPU thread maxed at 100%, rest being idle. I had to kill Krita, as nothing happened for a long time. Krita memory usage was around 2.5 GB, not growing. To reproduce: 1. Download "15 to 19.kra" 2. Select the first layer group "15 sustainawhat" 3. Use transform tool to translate layers a bit. Press enter to accept. 4. Click an eye to hide the modified layer stack. 5. The progress dialog will show and get stuck. One insight: I noticed that the layers in this folder have FX icon on them (e.g. drop shadow effect). When I flattened these layers (e.g. to bake in the effect), the transformation completed almost instantly. Due to this, I believe the bug may be related to how these FX layers are transformed. Git commit 17cf66d4952274457d9a2560d674ccc68eaa66bd by Dmitry Kazakov. Committed on 27/06/2023 at 12:18. Pushed by dkazakov into branch 'master'. Fix a hangup when rendering a layer with shadow **and** transparency mask If the transparency mask fully crops the processed area, then null rect is returned. There is no need to add a shadow to a null rect, because it will add a QRect(0,0,~20,~20) to **every** processed area, effectively making **every** worker to process the entire image. M +1 -1 libs/image/layerstyles/kis_layer_style_projection_plane.cpp https://invent.kde.org/graphics/krita/-/commit/17cf66d4952274457d9a2560d674ccc68eaa66bd |