Bug 414582

Summary: 'Outer Glow' layer style produces cutoffs
Product: [Applications] krita Reporter: acc4commissions
Component: layer stylesAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: ahab.greybeard, grimreaperfloof, halla
Priority: NOR    
Version: nightly build (please specify the git hash!)   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Attachments: (capture)

Description acc4commissions 2019-11-27 18:15:29 UTC
Created attachment 124147 [details]
(capture)

SUMMARY
git d19b0b6

It also happens in 4.2.8.

STEPS TO REPRODUCE
1. Draw vector shapes on a vector layer > Layer Styles > Outer Glow
2. Maximize 'Spread' and 'Size'.
3. Try to on/off the effect in the layer styles window and the layers docker.

OBSERVED RESULT
I'm not sure how to describe its appearance. just see the capture!

EXPECTED RESULT
it should be smooth.

SOFTWARE/OS VERSIONS
Windows: Win7
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Ahab Greybeard 2019-11-28 10:54:04 UTC
I can confirm this for the 4.2.8 appimage.

This also happens with paint layers. The artifacts can be removed by turning off visibility of the layer and then turning off visibility of the background layer. After that you can turn them both on again and have no artifacts.

There was a similar problem some time ago with a layer style giving artifacts but I forget the details.
Comment 2 Halla Rempt 2019-12-04 12:59:20 UTC
Dmitry, can you take a look?
Comment 3 GrimReaperFloof 2019-12-14 16:19:37 UTC
Can reproduce on Windows 10 version 1803, as well as Arch Linux. (Krita 4.2.8)

Another frustrating part about this bug is that the cutoffs are also visible in exported files.
Comment 4 Dmitry Kazakov 2020-01-16 10:34:40 UTC
The bug is reproducible with KisLayerStylesTest::testLayerStylesPartial()
Comment 5 Dmitry Kazakov 2020-01-16 13:41:23 UTC
Git commit a9bb3c90083b3ba3acf0adfd53a7008083d750d2 by Dmitry Kazakov.
Committed on 16/01/2020 at 13:40.
Pushed by dkazakov into branch 'master'.

Fix border artifacts in layer styles

The regression was caused by BORDER_REPEAT default value for all the
gausian filters. Layer styles' border policy should be "ignore" instead.
Otherwise, shadow-like effects will be rendered incorrectly.

M  +7    -6    libs/image/kis_gaussian_kernel.cpp
M  +3    -1    libs/image/kis_gaussian_kernel.h
M  +2    -1    libs/image/layerstyles/kis_ls_utils.cpp
M  +1    -1    libs/image/tests/kis_layer_styles_test.cpp

https://invent.kde.org/kde/krita/commit/a9bb3c90083b3ba3acf0adfd53a7008083d750d2
Comment 6 Halla Rempt 2020-01-28 09:50:29 UTC
Git commit cc070eab9178423449c611b0d4dd26299f1ecb66 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 28/01/2020 at 09:10.
Pushed by rempt into branch 'krita/4.2'.

Fix border artifacts in layer styles

The regression was caused by BORDER_REPEAT default value for all the
gausian filters. Layer styles' border policy should be "ignore" instead.
Otherwise, shadow-like effects will be rendered incorrectly.
(cherry picked from commit a9bb3c90083b3ba3acf0adfd53a7008083d750d2)

M  +7    -6    libs/image/kis_gaussian_kernel.cpp
M  +3    -1    libs/image/kis_gaussian_kernel.h
M  +2    -1    libs/image/layerstyles/kis_ls_utils.cpp
M  +1    -1    libs/image/tests/kis_layer_styles_test.cpp

https://invent.kde.org/kde/krita/commit/cc070eab9178423449c611b0d4dd26299f1ecb66