Bug 394953

Summary: Fill Layer with certain Bristle type brushes do not paint properly
Product: [Applications] krita Reporter: jungwnr
Component: Filter LayersAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: halla, info
Priority: NOR    
Version First Reported In: 4.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Image showing the differences in how the same brush is rendered
[^ video of the artifact of the bug]

Description jungwnr 2018-06-02 12:51:07 UTC
Created attachment 113011 [details]
Image showing the differences in how the same brush is rendered

This issue only seems to happen on my Wacom MobileStudio 16 tablet.  (It does not happen on my Desktop PC)

When I use a brush like the Bristles-5 Flat on a Fill Layer or the Transparency Mask for the fill layer, the rendering of the paint strokes is incorrect.  I've attached a PNG to show how it displays differently when painting on a Fill Layer, compared to a Paint Layer.
Comment 1 David REVOY 2018-06-02 15:05:09 UTC
Hi, 

1. Does the bug is solved if you use i)_Wet-Paint brush preset on those mask?

2. Does your desktop PC use another version of Krita? (you can check in Help>About Krita)

It sounds at first glance at the screenshot like a bug related to "Bug 394438 - [transparency mask] Tiling effect when painting mask with Pixel-engine brushes ( https://bugs.kde.org/show_bug.cgi?id=394438 )". If it is the case, the good news is it is probably already fixed for the Transparency Mask by https://commits.kde.org/krita/5255a2f3c959c7843e4837aa895f5ee385c27135 , not sure about the Fill layer.
Comment 2 jungwnr 2018-06-03 01:56:37 UTC
Hi,

I did some further investigation.  When I choose "i)_Wet-Paint" brush, it does not occur.

I began toggling various settings, and I think I found the one setting that can cause the issue to happen to many brushes (all that I've tested so far):

Some brushes (especially those under "Paint") have a setting called "Painting Mode".

It looks like the issue occurs when the Painting Mode is set to "Build Up" but will not happen if it's set to "Wash".

The version of Krita on my Wacom Tablet and PC are both 4.0.0 (They should be identical versions as my Wacom Tablet is a full-fledged PC).

I've managed to make the issue much more reproducible, as the steps I've listed above also cause the issue on my Desktop now.

I'll try to reproduce this on Krita 4.0.3 and see if the issue still occurs.
Comment 3 David REVOY 2018-06-03 22:52:54 UTC
Created attachment 113056 [details]
[^ video of the artifact of the bug]

Hi, thank you for your tests. I tested also and I'm confirming the bug here as well for the Fill Layer  (Krita Git~master on GNU/Linux). The one about transparency mask is already fixed (see previous link in this thread).

Fill Layer tiling bug:

To reproduce:
=============
1. Create a new document, (custom doc, 2048x2048px)
2. Go in the Layer-Docker, press the [+] icon, add a "Fill Layer"
3. Setup the Color with a dark color (eg. a violet color, a deep blue), press OK
4. Press "delete" on keyboard to empty all the "Fill Layer"
5. Select the airbrush preset (b)_Airbrush_Soft) and paint with white color on the "Fill Layer"

Result:
=======
A lot of tiling effect, refresh of block (video MP4 of a couple of second, in attachment.)
Comment 4 Dmitry Kazakov 2018-06-07 09:20:52 UTC
Git commit 6e023a11d80a9d6051beeae9c376a278372561ca by Dmitry Kazakov.
Committed on 07/06/2018 at 09:20.
Pushed by dkazakov into branch 'master'.

Fix extent calculation for selection-based layers

It fixes painting on them with an indirect-mode brushes

M  +35   -12   libs/image/kis_selection_based_layer.cpp

https://commits.kde.org/krita/6e023a11d80a9d6051beeae9c376a278372561ca
Comment 5 Andrey 2018-06-26 15:13:23 UTC
Git commit bb3155c3191de8f16d0b274048a17d07d449b919 by Andrey Kamakin, on behalf of Dmitry Kazakov.
Committed on 26/06/2018 at 14:18.
Pushed by akamakin into branch 'akamakin/T8628-multithreading-optimization'.

Fix extent calculation for selection-based layers

It fixes painting on them with an indirect-mode brushes

M  +35   -12   libs/image/kis_selection_based_layer.cpp

https://commits.kde.org/krita/bb3155c3191de8f16d0b274048a17d07d449b919