Bug 406400

Summary: Black artifacts when painting with brush on 32-bit image with Vector Optimizations enabled
Product: [Applications] krita Reporter: Dmitry Kazakov <dimula73>
Component: Brush enginesAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal CC: ghevan, tamtamy.tymona
Priority: NOR Keywords: release_blocker
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: All   
Latest Commit: Version Fixed In:
Attachments: Screenshot of the problem
Rendering error on 32bit float

Description Dmitry Kazakov 2019-04-10 09:46:23 UTC
Created attachment 119329 [details]
Screenshot of the problem

1) Enable Vector Optimizations (VC) in the performance tab
2) Create a 32-bit float image
3) Draw with Basic-5 Size brush

Observe random black tiles aligned by 32/16-byte level (8/4 pixels).

See the attached screenshot.

The bug appears on both Windows and Linux with Vc 1.3.3, with either AVX or SSE4 implementation used. It means that it is unrelated to bug 406209. It is somehow related to our implementation of AlphaDarkenCompositor128 and OverCompositor128.


PS:
Or a bug in Vc...

PPS:
Or a bug in GCC...
Comment 1 vanyossi 2019-04-10 16:42:58 UTC
Created attachment 119337 [details]
Rendering error on 32bit float

The behaviour is a little different on macOS compiled sources.

Vc 1.4.1
Clang Apple LLVM version 10.0.1 (clang-1001.0.46.3)
Comment 2 Tiar 2019-04-20 09:34:56 UTC
On Windows 10 and on Linux Mint with Qt 5.11 the artifacts are red, too. They seem to be multiplied with the stroke. To see the artifacts, instead of making the stroke, put one stamp on the canvas.

*** This bug has been marked as a duplicate of bug 404133 ***