SUMMARY Tiling artifacts can appear on the rendered image when using a convolution type filter on a Filter Mask. Interestingly, the same artifacts don't seem to appear if a Filter Layer is used instead, and even mitigate the artifacts if the Filter Layer is placed on top of the Filter Masks. I'll attach a small test document. STEPS TO REPRODUCE 1. Open the test file. 2. Repeatedly hide and unhide the Fill Layer on the bottom of the stack and wait for the recalculated render. OBSERVED RESULT There will be visual artifacts at the edges of the render tiles, different each time, depending on when exactly the tiles complete. EXPECTED RESULT No such artifacts. SOFTWARE/OS VERSIONS Tested in 4.2.8, most recent Next AppImage, and Dmitry's fix-deadlock-on-loading-415891 branch.
Created attachment 126043 [details] Example document
Created attachment 126044 [details] GDB backtrace I can consistently provoke a crash on the build from Dmitry's branch, by adding a Filter Layer to the example document and choosing Gaussian Highpass. Doesn't seem to crash on 4.2.8 or most recent Next AppImage. I'll attach my backtrace.
Hi, If you have the crash still now Dmitry's branch has been merged, please make a separate bug for that. I can confirm the artefacts.
No, I can't reproduce the crash in master (git 9643b51) nor the latest stable AppImage anymore, with any of the filters. I realize now Gaussian Highpass isn't actually supposed to be in 4.2, it might have been residue from previous builds since I didn't do a clean one. In which case sorry for the false alarm :(
Okay, since there is no crash it is not a release blocker :)
Okay, the problem happens because "Motion Blur" mask is applied to a "Filter Layer" with color balance filter attached. I don't think such combination has ever been tested :) Though it should be fixed, yes.
Git commit 8157bb3ce895c93585449e871821bddd87570484 by Dmitry Kazakov. Committed on 25/02/2020 at 11:36. Pushed by dkazakov into branch 'master'. Fix artifacts on filter masks applied to adjustment layers It looks like there was just a misprint in the way how need rect is calculated. M +2 -2 libs/image/kis_adjustment_layer.cc M +6 -0 libs/image/kis_image_config.cpp M +2 -0 libs/image/kis_image_config.h A +- -- libs/image/tests/data/async_merger_test/mask_on_adj_initial.png M +61 -0 libs/image/tests/kis_async_merger_test.cpp M +4 -0 libs/image/tests/kis_async_merger_test.h https://invent.kde.org/kde/krita/commit/8157bb3ce895c93585449e871821bddd87570484
Git commit 816f481095d920607e6196250f6c9795ef024592 by Dmitry Kazakov. Committed on 25/02/2020 at 11:39. Pushed by dkazakov into branch 'krita/4.2'. Fix artifacts on filter masks applied to adjustment layers It looks like there was just a misprint in the way how need rect is calculated. M +2 -2 libs/image/kis_adjustment_layer.cc M +6 -0 libs/image/kis_image_config.cpp M +2 -0 libs/image/kis_image_config.h A +- -- libs/image/tests/data/async_merger_test/mask_on_adj_initial.png M +61 -0 libs/image/tests/kis_async_merger_test.cpp M +4 -0 libs/image/tests/kis_async_merger_test.h https://invent.kde.org/kde/krita/commit/816f481095d920607e6196250f6c9795ef024592