https://bugs.kde.org/show_bug.cgi?id=450957
Dmitry Kazakov <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Latest Commit| |https://invent.kde.org/grap | |hics/krita/commit/2e9c60d35 | |aa02e0e4d5881ddbd6b64c94d76 | |2a35 Resolution|--- |FIXED --- Comment #8 from Dmitry Kazakov <[email protected]> --- Git commit 2e9c60d35aa02e0e4d5881ddbd6b64c94d762a35 by Dmitry Kazakov. Committed on 10/03/2022 at 16:09. Pushed by dkazakov into branch 'master'. Fix threading issues in the scheduler when manipulating layers After several iterations of changes to KisNode::changeRect() definition, KisBaseRectsWalker::changeRect() now means **not** the rect of the canvas that is changed by the walker on any layer, but only a rect that will be changed in the end of the merge operation. It means that two merge operations may still overlap on the intermediate layers if the layer stack has nodes with weird change/needRect(). And that can cause breakage of the tile manager's invariants, because two threads would write into overlapping areas. This patch fixes it in a suboptimal approach. Now the scheduler just checks if accessRect of the walkers intersect. That means that the scheduler now also blocks walkers with overlapping **read** rects, which are totally legal. M +7 -2 libs/image/kis_updater_context.cpp https://invent.kde.org/graphics/krita/commit/2e9c60d35aa02e0e4d5881ddbd6b64c94d762a35 -- You are receiving this mail because: You are watching all bug changes.
