Bug 406400 - Black artifacts when painting with brush on 32-bit image with Vector Optimizations enabled
Summary: Black artifacts when painting with brush on 32-bit image with Vector Optimiza...
Status: RESOLVED DUPLICATE of bug 404133
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other All
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: release_blocker
Depends on:
Blocks:
 
Reported: 2019-04-10 09:46 UTC by Dmitry Kazakov
Modified: 2019-04-20 09:34 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Screenshot of the problem (124.05 KB, image/png)
2019-04-10 09:46 UTC, Dmitry Kazakov
Details
Rendering error on 32bit float (146.83 KB, image/png)
2019-04-10 16:42 UTC, vanyossi
Details

Note You need to log in before you can comment on or make changes to this bug.
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 ***