Bug 434266 - Visual artifacting when drawing after toggling "Limit to layer bounds" in Colorize Mask options
Summary: Visual artifacting when drawing after toggling "Limit to layer bounds" in Col...
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Colorize (other bugs)
Version First Reported In: 5.2.9
Platform: Appimage Linux
: NOR minor
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-11 02:42 UTC by tomtomtomreportingin
Modified: 2025-05-02 09:00 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Screenshot of the glitch. (18.73 KB, image/png)
2021-09-09 12:32 UTC, wolthera
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tomtomtomreportingin 2021-03-11 02:42:23 UTC
SUMMARY
In the Colorize Mask options, after toggling "Limit to layer bounds", artifacting masked to the paint layer occurs when drawing. This occurs no matter whether you're enabling or disabling the option.

STEPS TO REPRODUCE
1. Draw a circle.
2. Select Colorize Mask tool.
3. Toggle "Limit to layer bounds".
4. Draw on the circle.

OBSERVED RESULT
Artifacting masked to the circle occurs.

EXPECTED RESULT
No artifacting,

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian sid
KDE Plasma Version: 5.20.5
KDE Frameworks Version: 5.78.0
Qt Version: 5.12.9 (Appimage)

ADDITIONAL INFORMATION
The behavior is fixed by disabling and re-enabling "Edit key strokes."
Comment 1 wolthera 2021-09-09 12:32:28 UTC
Created attachment 141421 [details]
Screenshot of the glitch.

Seems the filter-preview is affected.
Comment 2 wolthera 2021-09-26 16:09:25 UTC
Tried to fix this one, but there's some oddities.

It seems to be almost fixed when adding regeneratePrefilteredDeviceIfNeeded(); to all the setting setters, however, this gives odd rendering artifacts when toggling, a if there's two different bounding boxes being edited. This error also shows when toggling the layer properties.

Given that the setNeedsUpdate(true); doesn't seem to do much, I suspect that the updateCompressor just isn't working as expected (it in fact never seems to timeout???). (prefilterRecalculationCompressor isn't being started by anything, for what it's worth).

I also think the artifact I describe in the second paragraph is caused by the wrong bounding box being cleared before the prefilter is added. It's quite mysterious in any case.
Comment 3 Dmitry Kazakov 2024-08-22 16:39:03 UTC
Remove triaged keyword from CONFIRMED bugs