Summary: | something strange happens after I have updated my version of Krita to 5.0.0 Beta 5 , it seems as if instead of blurring, the brush generates a pixelated effect in the image | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Gin <96ginette> |
Component: | * Unknown | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | griffinvalley, rafaela.gumi |
Priority: | NOR | Keywords: | regression |
Version: | 5.0.0-beta5 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Microsoft Windows | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/7ebdbdba818fd17c23b3d62475676c183da622ba | Version Fixed In: | |
Sentry Crash Report: |
Description
Gin
2021-12-18 23:23:38 UTC
I could confirm this. No idea if we'll be able to fix it before release though. It happens with all color smudge brushes, regardless of settings. It does not happen with filter, deform, or clone brushes, and mypaint's color smudge brushes are disabled for CMYK. It seems like pixels with 0 opacity aren't being considered fully transparent, meaning everything gets a little bit of very transparent black (which is weird because in cmyk 0,0,0,0,0 is transparent white) added. Another possibility might be color conversion going wrong, but my money is on the transparency being mucked up. I'm assigning Dmitry, as this is his area. Is it actually a 'crash'-level bug? The bug is fixed in https://invent.kde.org/graphics/krita/-/commit/7ebdbdba818fd17c23b3d62475676c183da622ba Though I'll be released only in 5.0.1 Git commit e1828f1caefd03175ad26862f8129afe52998027 by Dmitry Kazakov. Committed on 20/12/2021 at 13:08. Pushed by dkazakov into branch 'krita/5.0'. Rename KoOptimized{Rgb,}PixelDataScalerU8ToU16Base This class is now also used for CMYK channel scaling, so the name should also be andjusted. (cherry picked from commit 8d3bd3dcc2946efb6dcb21555c94a46de78a5546) M +4 -4 libs/image/KisOverlayPaintDeviceWrapper.cpp M +4 -4 libs/pigment/CMakeLists.txt R +7 -7 libs/pigment/KoOptimizedPixelDataScalerU8ToU16.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h - 094% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.cpp [License: GPL(v2.0+)] R +9 -9 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h - 076% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.cpp [License: GPL(v2.0+)] A +24 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.h [License: GPL(v2.0+)] A +17 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.cpp [License: GPL(v2.0+)] A +23 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.h [License: GPL(v2.0+)] D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp D +0 -30 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h D +0 -17 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp D +0 -23 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.h https://invent.kde.org/graphics/krita/commit/e1828f1caefd03175ad26862f8129afe52998027 Git commit c48e2754d28d7b33388d8897591f3c52fe684093 by Dmitry Kazakov. Committed on 20/12/2021 at 12:54. Pushed by dkazakov into branch 'master'. Fix artifacts when using colorsmudge brush over CMYK image The problem is that we cannot rely on LCMS' conversions between CMYK-U8 and CMYK-U16. They cannot do proper round-tripping, the color fluctuates a lot, therefore causing artifacts. To workaround this issue we can just offload all these conversions to KoOptimizedRgbPixelDataScalerU8ToU16 (which now supports varying number of channels in the pixel). M +8 -0 libs/image/KisOverlayPaintDeviceWrapper.cpp M +8 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h M +11 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp M +7 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h M +7 -1 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp M +8 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h M +2 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp M +37 -0 libs/pigment/tests/TestColorConversionSystem.cpp M +2 -0 libs/pigment/tests/TestColorConversionSystem.h https://invent.kde.org/graphics/krita/commit/c48e2754d28d7b33388d8897591f3c52fe684093 Git commit 7ebdbdba818fd17c23b3d62475676c183da622ba by Dmitry Kazakov. Committed on 20/12/2021 at 13:08. Pushed by dkazakov into branch 'krita/5.0'. Fix artifacts when using colorsmudge brush over CMYK image The problem is that we cannot rely on LCMS' conversions between CMYK-U8 and CMYK-U16. They cannot do proper round-tripping, the color fluctuates a lot, therefore causing artifacts. To workaround this issue we can just offload all these conversions to KoOptimizedRgbPixelDataScalerU8ToU16 (which now supports varying number of channels in the pixel). (cherry picked from commit c48e2754d28d7b33388d8897591f3c52fe684093) M +8 -0 libs/image/KisOverlayPaintDeviceWrapper.cpp M +8 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h M +11 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp M +7 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h M +7 -1 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp M +8 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h M +2 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp M +37 -0 libs/pigment/tests/TestColorConversionSystem.cpp M +2 -0 libs/pigment/tests/TestColorConversionSystem.h https://invent.kde.org/graphics/krita/commit/7ebdbdba818fd17c23b3d62475676c183da622ba Git commit 8d3bd3dcc2946efb6dcb21555c94a46de78a5546 by Dmitry Kazakov. Committed on 20/12/2021 at 13:06. Pushed by dkazakov into branch 'master'. Rename KoOptimized{Rgb,}PixelDataScalerU8ToU16Base This class is now also used for CMYK channel scaling, so the name should also be andjusted. M +4 -4 libs/image/KisOverlayPaintDeviceWrapper.cpp M +4 -4 libs/pigment/CMakeLists.txt R +7 -7 libs/pigment/KoOptimizedPixelDataScalerU8ToU16.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h - 094% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.cpp [License: GPL(v2.0+)] R +9 -9 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h - 076% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.cpp [License: GPL(v2.0+)] A +24 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.h [License: GPL(v2.0+)] A +17 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.cpp [License: GPL(v2.0+)] A +23 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.h [License: GPL(v2.0+)] D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp D +0 -30 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h D +0 -17 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp D +0 -23 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.h https://invent.kde.org/graphics/krita/commit/8d3bd3dcc2946efb6dcb21555c94a46de78a5546 *** Bug 449364 has been marked as a duplicate of this bug. *** |