Bug 460512 - Using specific color in 32-bit float image depth can cause crash
Summary: Using specific color in 32-bit float image depth can cause crash
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Color models (show other bugs)
Version: 5.1.1
Platform: Compiled Sources Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: amyspark
URL: https://github.com/mm2/Little-CMS/com...
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2022-10-15 23:12 UTC by Kampidh
Modified: 2022-10-31 21:33 UTC (History)
1 user (show)

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


Attachments
Float32 Test File (101.91 KB, application/x-krita)
2022-10-16 00:05 UTC, Kampidh
Details
ICC Profile from DisplayCAL calibration (1.00 MB, application/vnd.iccprofile)
2022-10-17 08:30 UTC, Kampidh
Details
ICC profile of the Krita repro (1.05 KB, application/vnd.iccprofile)
2022-10-19 00:35 UTC, amyspark
Details
Extended ICC Profiles from Displaycal (1.66 MB, application/x-7z-compressed)
2022-10-20 22:48 UTC, Kampidh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kampidh 2022-10-15 23:12:08 UTC
SUMMARY
While working with 32-bit float image, a crash occurred when painting with specific colors (Red at 1.0 value, including white with [1.0, 1.0, 1.0] value). Something that I observed is that in float, canvas white and white from advanced color selector only shows at [0.999..., 1.0, 0.999...], using a specific color selector to bring it back to all 1.0 and painted it cause the crash as well. However, the crash didn't occur at 16-bit float.

At first, I thought it was because I used Rec.2020 Profile, but when I tried with sRGB and ACES, it also crashes. So does on different TRCs (Linear, sRGB)

A workaround is to disable 'Allow Little CMS optimizations' on Color Management setting. From the crash logs, looks like the crashes has something to do with lcms fast float module?

Another workaround that I discovered is using OCIO. However, if there are pixels with those specific colors are on canvas, disabling OCIO will directly result in crash as well.


STEPS TO REPRODUCE
1.  Create new canvas with 32-bit float depth
2.  Try to paint with pure white [1.0, 1.0, 1.0] from specific color selector
3. 

OBSERVED RESULT
Krita crashes

EXPECTED RESULT
Should be able to display the color properly

SOFTWARE/OS VERSIONS
Windows: 10 Pro 21H2 64bit
Qt Version: 5.12.12

ADDITIONAL INFORMATION

Krita Log:
SESSION: 16 Oct 2022 05:08:57 +0700. Executing C:\Program Files\Krita (x64)\bin\krita.exe

Krita Version: 5.1.1, Qt version compiled: 5.12.12, loaded: 5.12.12. Process ID: 37536
-- -- -- -- -- -- -- --
16 Oct 2022 05:08:57 +0700: Style: fusion. Available styles: windowsvista, Windows, Fusion
16 Oct 2022 05:08:58 +0700: Database is up to date. Version: 0.0.17, created by Krita 5.1.0, at Fri Aug 19 08:43:02 2022
16 Oct 2022 05:08:58 +0700: Could not load resource patterns/krita_AHSGKA.pat
16 Oct 2022 05:08:59 +0700: Non-store package - creating updater
16 Oct 2022 05:09:28 +0700: Created image "Unnamed", 1024 * 1024 pixels, 100 dpi. Color model: 32-bit float/channel RGB/Alpha (Rec2020-elle-V4-g10.icc). Layers: 2
================================================================================

Krita Crash Log:
Error occurred on Sunday, October 16, 2022 at 05:09:50.

krita.exe caused an Access Violation at location 00007FF8A9D4C174 in module liblcms2_fast_float.dll Reading from location 00000268D77B6B8C.

AddrPC           Params
00007FF8A9D4C174 0000240000000001 00000268D1509D40 00000268D2BA63B0  liblcms2_fast_float.dll!FloatCLUTEval+0x6f4
00007FF8A9547CFB 0000000000000000 0000000000000001 0000000100000000  liblcms2.dll!cmsDoTransform+0x4b
00007FF881747F5E 00007FF85F96E310 00000268D524E340 000000000000C430  libkritapigment.dll!KoColorSpace::convertPixelsTo+0xae
00007FF82F8A0F6C 00000268E88DDCC4 00000268E88DDC58 00000268E88DDCB4  kritalcmsengine.dll!KoColorSpaceAbstract<KoRgbF32Traits>::convertPixelsTo+0x4dc
00007FF8484003B5 00000268A3D90000 00000268D15BEC80 00000268B5411EA0  libkritaui.dll!KisTextureTileUpdateInfo::convertTo+0x175
00007FF8483FF012 0000017F0000015D 00007FF8E0FD5BA1 00000268D0F83A19  libkritaui.dll!KisOpenGLUpdateInfoBuilder::buildUpdateInfo+0x752
00007FF8483FE869 00000268D0F83A19 00000268B5411EA0 000000D1733FF6A8  libkritaui.dll!KisOpenGLUpdateInfoBuilder::buildUpdateInfo+0x69
00007FF8483F8B10 00000268D1034E40 00000268D1033E80 00000268D1034E41  libkritaui.dll!KisOpenGLImageTextures::updateCacheImpl+0x40
00007FF8483F6A9C 000000D1733FF810 00000268B5411EA0 000000D1733FF820  libkritaui.dll!KisOpenGLImageTextures::updateCache+0x2c
00007FF84840BE9C 000000D1733FF8D0 00007FF8DE6FF05B 00000268B5411EA0  libkritaui.dll!KisOpenGLCanvasRenderer::startUpdateCanvasProjection+0xcc
00007FF8483F48D5 00000268AC062F50 00007FF84963A0A9 00000268AC062F50  libkritaui.dll!non-virtual thunk to KisOpenGLCanvas2::startUpdateCanvasProjection(QRect const&)+0x15
00007FF8481B5392 00007FF85F971638 00000268AC062F50 0000000000000002  libkritaui.dll!KisCanvas2::startUpdateCanvasProjection+0x22
00007FF849660868 00007FF84947E0A0 00007FF85F6D0EC5 00000268D0F0EF90  Qt5Core.dll!QMetaObject::activate+0x828
00007FF85F4C7147 00000268D51F6970 00000268D51F6890 000000007FFFFFFF  libkritaimage.dll!KisImage::sigImageUpdated+0x27
00007FF85F703646 00000268D1035360 00007FF849483364 0000000000007530  libkritaimage.dll!KisImage::notifyProjectionUpdated+0xf6
00007FF85F4CE0C5 00000268B5571010 0000026800000000 0000000000000000  libkritaimage.dll!KisUpdateJobItem::run+0xf5
00007FF84947FFAD 0000000000000000 0000000000000000 0000000000000000  Qt5Core.dll!QThreadPoolThread::run+0xad
00007FF84947BE6C 0000000000000000 0000000000000000 0000000000000000  Qt5Core.dll!QThreadPrivate::start+0x10c
00007FF8DF6B7034 0000000000000000 0000000000000000 0000000000000000  KERNEL32.DLL!BaseThreadInitThunk+0x14
00007FF8E10026A1 0000000000000000 0000000000000000 0000000000000000  ntdll.dll!RtlUserThreadStart+0x21
Comment 1 amyspark 2022-10-15 23:53:24 UTC
I'll try and reproduce, in the meanwhile, can you send a file that will reproduce the crash if the Fast Float plugin is enabled?

Based on your observations, this should be achieved by painting normally with the maxed out value, saving, then enabling the optimizations.
Comment 2 Kampidh 2022-10-16 00:05:56 UTC
Created attachment 152872 [details]
Float32 Test File

200 x 200px image, Rec.2020 Linear Profile, 32-bit float. Color patches painted in RGB [1, 0, 0], [0, 1, 0], [0, 0, 1], and [1, 1, 1] selected from Specific Color Selector.

Crash to open with LCMS optimization turned on.
Comment 3 Kampidh 2022-10-16 00:10:21 UTC
(In reply to amyspark from comment #1)
> I'll try and reproduce, in the meanwhile, can you send a file that will
> reproduce the crash if the Fast Float plugin is enabled?
> 
> Based on your observations, this should be achieved by painting normally
> with the maxed out value, saving, then enabling the optimizations.

Oh right, I forgot to add that values above 1.0 didn't cause crash (for example to paint with [2.0, 2.0, 2.0] white)
Comment 4 Kampidh 2022-10-17 08:30:18 UTC
Created attachment 152923 [details]
ICC Profile from DisplayCAL calibration

Update:
So apparently this only affects the screen that have a custom profile on it. My drawing tablet is calibrated using displaycal(argyllcms) and have XYZLUT+Matrix profile on it (that I also set on Krita's Color Management > Display). When opening on secondary monitor without custom profile (sRGB default) it didn't crash.

Tried with another system with Krita 5.2.0 prealpha also confirmed this behaviour, no crash with sRGB and crash with calibrated profile.

Here I attached the custom profile that my drawing tablet has to further replicate the crash.
Comment 5 Kampidh 2022-10-17 09:48:53 UTC
And after extensive testing with other profile types in DisplayCAL, here's what I got:

- XYZ LUT + Matrix without BPC (default) = crash
- XYZ LUT + Matrix with BPC = crash
- L*a*b* LUT without BPC = crash
- L*a*b* LUT with BPC = crash
- Curves + Matrix without BPC = crash
- Curves + Matrix with BPC = not crash

Additional info:
From my observation, only curves + matrix with BPC that show a significant difference (lift) in darker tones (my tablet display indeed have bad blacks though), while in LUT-based profiles, BPC doesn't seem to do anything. But this may be for another scope, as it might related to displaycal/argyllcms instead.
Comment 6 amyspark 2022-10-19 00:19:18 UTC
Confirming bug, reproduced on first try with commit b19356bae8 and LittleCMS 2.13.1 *and* 2.14rc1.

Stacktrace:

lcms2_fast_float.dll!FloatCLUTEval(_cmstransform_struct * CMMcargo, const void * Input, void * Output, unsigned int PixelsPerLine, unsigned int LineCount, const cmsStride * Stride) Line 199 (e:\krita-win\msvc\b_deps\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2\plugins\fast_float\src\fast_float_tethra.c:199)
lcms2.dll!cmsDoTransform(void * Transform, const void * InputBuffer, void * OutputBuffer, unsigned int Size) Line 207 (e:\krita-win\msvc\b_deps\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2\src\cmsxform.c:207)
kritapigment.dll!KoColorSpace::convertPixelsTo(const unsigned char * src, unsigned char * dst, const KoColorSpace * dstColorSpace, unsigned int numPixels, KoColorConversionTransformation::Intent renderingIntent, QFlags<enum KoColorConversionTransformation::ConversionFlag> conversionFlags) Line 466 (e:\krita-win\src\libs\pigment\KoColorSpace.cpp:466)
kritalcmsengine.dll!KoColorSpaceAbstract<KoRgbF32Traits>::convertPixelsTo(const unsigned char * src, unsigned char * dst, const KoColorSpace * dstColorSpace, unsigned int numPixels, KoColorConversionTransformation::Intent renderingIntent, QFlags<enum KoColorConversionTransformation::ConversionFlag> conversionFlags) Line 202 (e:\krita-win\src\libs\pigment\KoColorSpaceAbstract.h:202)
kritaui.dll!KisTextureTileUpdateInfo::convertTo(const KoColorSpace * dstCS, KoColorConversionTransformation::Intent renderingIntent, QFlags<enum KoColorConversionTransformation::ConversionFlag> conversionFlags) Line 197 (e:\krita-win\src\libs\ui\opengl\kis_texture_tile_update_info.h:197)
kritaui.dll!KisOpenGLUpdateInfoBuilder::buildUpdateInfo(const QRect & rect, KisSharedPtr<KisPaintDevice> projection, const QRect & bounds, int levelOfDetail, bool convertColorSpace) Line 152 (e:\krita-win\src\libs\ui\opengl\KisOpenGLUpdateInfoBuilder.cpp:152)
kritaui.dll!KisOpenGLUpdateInfoBuilder::buildUpdateInfo(const QRect & rect, KisSharedPtr<KisImage> srcImage, bool convertColorSpace) Line 49 (e:\krita-win\src\libs\ui\opengl\KisOpenGLUpdateInfoBuilder.cpp:49)
kritaui.dll!KisOpenGLImageTextures::updateCacheImpl(const QRect & rect, KisSharedPtr<KisImage> srcImage, bool convertColorSpace) Line 323 (e:\krita-win\src\libs\ui\opengl\kis_opengl_image_textures.cpp:323)
kritaui.dll!KisOpenGLImageTextures::updateCache(const QRect & rect, KisSharedPtr<KisImage> srcImage) Line 311 (e:\krita-win\src\libs\ui\opengl\kis_opengl_image_textures.cpp:311)
kritaui.dll!KisOpenGLImageTextures::initGL(QOpenGLFunctions * f) Line 119 (e:\krita-win\src\libs\ui\opengl\kis_opengl_image_textures.cpp:119)
kritaui.dll!KisOpenGLCanvasRenderer::initializeGL() Line 250 (e:\krita-win\src\libs\ui\opengl\KisOpenGLCanvasRenderer.cpp:250)
kritaui.dll!KisOpenGLCanvas2::initializeGL() Line 189 (e:\krita-win\src\libs\ui\opengl\kis_opengl_canvas2.cpp:189)
Qt5Widgets.dll!QOpenGLWidgetPrivate::initialize() Line 863 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qopenglwidget.cpp:863)
Qt5Widgets.dll!QOpenGLWidget::resizeEvent(QResizeEvent * e) Line 1331 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qopenglwidget.cpp:1331)
Qt5Widgets.dll!QWidget::event(QEvent * event) Line 9415 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:9415)
Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3652 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3652)
Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3604 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3604)
kritaui.dll!KisApplication::notify(QObject * receiver, QEvent * event) Line 757 (e:\krita-win\src\libs\ui\KisApplication.cpp:757)
Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1088 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1088)
Qt5Widgets.dll!QWidgetPrivate::sendPendingMoveAndResizeEvents(bool recursive, bool disableUpdates) Line 7974 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:7974)
Qt5Widgets.dll!QWidgetPrivate::show_helper() Line 8027 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8027)
Qt5Widgets.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8465 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8465)
Qt5Widgets.dll!QWidgetPrivate::show_helper() Line 8034 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8034)
Qt5Widgets.dll!QWidgetPrivate::setVisible(bool visible) Line 8389 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8389)
Qt5Widgets.dll!QWidget::setVisible(bool visible) Line 8320 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8320)
Qt5Widgets.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8450 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8450)
Qt5Widgets.dll!QWidgetPrivate::show_helper() Line 8034 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8034)
Qt5Widgets.dll!QWidgetPrivate::setVisible(bool visible) Line 8389 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8389)
Qt5Widgets.dll!QWidget::setVisible(bool visible) Line 8320 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8320)
Qt5Widgets.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8450 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8450)
Qt5Widgets.dll!QWidgetPrivate::show_helper() Line 8034 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8034)
Qt5Widgets.dll!QWidgetPrivate::setVisible(bool visible) Line 8389 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8389)
Qt5Widgets.dll!QWidget::setVisible(bool visible) Line 8320 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8320)
Qt5Widgets.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8450 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8450)
Qt5Widgets.dll!QWidgetPrivate::show_helper() Line 8034 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8034)
Qt5Widgets.dll!QWidgetPrivate::setVisible(bool visible) Line 8389 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8389)
Qt5Widgets.dll!QWidget::setVisible(bool visible) Line 8320 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:8320)
Qt5Widgets.dll!QMdiSubWindow::changeEvent(QEvent * changeEvent) Line 3011 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\widgets\qmdisubwindow.cpp:3011)
Qt5Widgets.dll!QWidget::event(QEvent * event) Line 9415 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:9415)
Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3652 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3652)
Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3604 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3604)
kritaui.dll!KisApplication::notify(QObject * receiver, QEvent * event) Line 757 (e:\krita-win\src\libs\ui\KisApplication.cpp:757)
Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1088 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1088)
Qt5Widgets.dll!QWidget::setWindowState(QFlags<enum Qt::WindowState> newstate) Line 3095 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:3095)
kritaui.dll!KisMainWindow::showView(KisView * imageView, QMdiSubWindow * subwin) Line 753 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:753)
kritaui.dll!KisMainWindow::addView(KisView * view, QMdiSubWindow * subWindow) Line 707 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:707)
kritaui.dll!KisMainWindow::addViewAndNotifyLoadingCompleted(KisDocument * document, QMdiSubWindow * subWindow) Line 1157 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:1157)
kritaui.dll!KisMainWindow::slotLoadCompleted() Line 1179 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:1179)
Qt5Core.dll!QMetaObject::activate(QObject * sender, int signalOffset, int local_signal_index, void * * argv) Line 3807 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qobject.cpp:3807)
kritaui.dll!KisDocument::openPathInternal(const QString & path) Line 2414 (e:\krita-win\src\libs\ui\KisDocument.cpp:2414)
kritaui.dll!KisDocument::openPath(const QString & _path, QFlags<enum KisDocument::OpenFlag> flags) Line 1806 (e:\krita-win\src\libs\ui\KisDocument.cpp:1806)
kritaui.dll!KisMainWindow::openDocumentInternal(const QString & path, QFlags<enum KisMainWindow::OpenFlag> flags) Line 1104 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:1104)
kritaui.dll!KisMainWindow::openDocument(const QString & path, QFlags<enum KisMainWindow::OpenFlag> flags) Line 1078 (e:\krita-win\src\libs\ui\KisMainWindow.cpp:1078)
kritaui.dll!KisWelcomePageWidget::recentDocumentClicked(QModelIndex index) Line 637 (e:\krita-win\src\libs\ui\KisWelcomePageWidget.cpp:637)
kritaui.dll!KisWelcomePageWidget::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 248 (e:\krita-win\msvc\b\libs\ui\kritaui_autogen\EWIEGA46WW\moc_KisWelcomePageWidget.cpp:248)
Qt5Core.dll!QMetaObject::activate(QObject * sender, int signalOffset, int local_signal_index, void * * argv) Line 3807 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qobject.cpp:3807)
[Inline Frame] Qt5Widgets.dll!QAbstractItemView::clicked(const QModelIndex & _t1) Line 653 (e:\krita-win\msvc\b_deps\ext_qt\b\qtbase\src\widgets\.moc\release\moc_qabstractitemview.cpp:653)
Qt5Widgets.dll!QAbstractItemView::mouseReleaseEvent(QMouseEvent * event) Line 1929 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\itemviews\qabstractitemview.cpp:1929)
Qt5Widgets.dll!QListView::mouseReleaseEvent(QMouseEvent * e) Line 800 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\itemviews\qlistview.cpp:800)
Qt5Widgets.dll!QWidget::event(QEvent * event) Line 9415 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidget.cpp:9415)
Qt5Widgets.dll!QFrame::event(QEvent * e) Line 552 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\widgets\qframe.cpp:552)
Qt5Widgets.dll!QAbstractItemView::viewportEvent(QEvent * event) Line 1751 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\itemviews\qabstractitemview.cpp:1751)
Qt5Core.dll!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject * receiver, QEvent * event) Line 1214 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1214)
Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3644 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3644)
Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3110 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3110)
kritaui.dll!KisApplication::notify(QObject * receiver, QEvent * event) Line 757 (e:\krita-win\src\libs\ui\KisApplication.cpp:757)
Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1088 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1088)
Qt5Widgets.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & lastMouseReceiver, bool spontaneous, bool onlyDispatchEnterLeave) Line 2648 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:2648)
Qt5Widgets.dll!QWidgetWindow::handleMouseEvent(QMouseEvent * event) Line 676 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidgetwindow.cpp:676)
Qt5Widgets.dll!QWidgetWindow::event(QEvent * event) Line 294 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qwidgetwindow.cpp:294)
Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3652 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3652)
Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3604 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\widgets\kernel\qapplication.cpp:3604)
kritaui.dll!KisApplication::notify(QObject * receiver, QEvent * event) Line 757 (e:\krita-win\src\libs\ui\KisApplication.cpp:757)
Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1088 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1088)
Qt5Gui.dll!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent * e) Line 2168 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\gui\kernel\qguiapplication.cpp:2168)
Qt5Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1163 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\gui\kernel\qwindowsysteminterface.cpp:1163)
Qt5Core.dll!qt_internal_proc(HWND__ * hwnd, unsigned int message, unsigned __int64 wp, __int64 lp) Line 250 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qeventdispatcher_win.cpp:250)
user32.dll!UserCallWinProcCheckWow() (Origen desconocido:0)
user32.dll!DispatchMessageWorker() (Origen desconocido:0)
Qt5Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 650 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qeventdispatcher_win.cpp:650)
qwindows.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 75 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\platformsupport\eventdispatchers\qwindowsguieventdispatcher.cpp:75)
[Inline Frame] Qt5Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 138 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qeventloop.cpp:138)
Qt5Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 224 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qeventloop.cpp:224)
Qt5Core.dll!QCoreApplication::exec() Line 1389 (e:\krita-win\msvc\b_deps\ext_qt\s\qtbase\src\corelib\kernel\qcoreapplication.cpp:1389)
krita.dll!krita_main(int argc, char * * argv) Line 727 (e:\krita-win\src\krita\main.cc:727)
krita.exe!00007ff682b31c97() (Origen desconocido:0)
krita.exe!00007ff682b31202() (Origen desconocido:0)
kernel32.dll!BaseThreadInitThunk() (Origen desconocido:0)
ntdll.dll!RtlUserThreadStart() (Origen desconocido:0)
Comment 7 amyspark 2022-10-19 00:35:36 UTC
Created attachment 153014 [details]
ICC profile of the Krita repro

Attaching the source's profile for Marti's reference.
Comment 8 Kampidh 2022-10-20 22:48:11 UTC
Created attachment 153068 [details]
Extended ICC Profiles from Displaycal

A quick retest, curves without bpc works. So indeed it only affects LUT-based profiles.

Here I attached another profile I mentioned before for extended testing as well.
Comment 9 Bug Janitor Service 2022-10-20 23:39:58 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1626
Comment 10 amyspark 2022-10-31 21:31:53 UTC
Git commit eaf3b538e3aa1e1bdb8ed35bd85097070a3c59a5 by L. E. Segovia.
Committed on 31/10/2022 at 21:31.
Pushed by lsegovia into branch 'master'.

Update LittleCMS to 2.14rc1 and upgrade its CMake toolchain

D  +0    -277  3rdparty/ext_lcms2/0001-Add-cmake-build-system.patch
A  +30   -0    3rdparty/ext_lcms2/0001-Fix-Krita-segfault.patch
A  +324  -0    3rdparty/ext_lcms2/0002-Add-modern-CMake-toolchain.patch
D  +0    -42   3rdparty/ext_lcms2/0002-Quick-check-for-SSE-support.patch
D  +0    -227  3rdparty/ext_lcms2/0003-Separate-fast-float-plugin.patch
M  +4    -5    3rdparty/ext_lcms2/CMakeLists.txt

https://invent.kde.org/graphics/krita/commit/eaf3b538e3aa1e1bdb8ed35bd85097070a3c59a5
Comment 11 amyspark 2022-10-31 21:33:24 UTC
Git commit 9856e7b9c2904d8aae6887b4b6bf2cb2ea6826fe by L. E. Segovia.
Committed on 31/10/2022 at 21:33.
Pushed by lsegovia into branch 'krita/5.1'.

Update LittleCMS to 2.14rc1 and upgrade its CMake toolchain
(cherry picked from commit eaf3b538e3aa1e1bdb8ed35bd85097070a3c59a5)

D  +0    -277  3rdparty/ext_lcms2/0001-Add-cmake-build-system.patch
A  +30   -0    3rdparty/ext_lcms2/0001-Fix-Krita-segfault.patch
A  +324  -0    3rdparty/ext_lcms2/0002-Add-modern-CMake-toolchain.patch
D  +0    -42   3rdparty/ext_lcms2/0002-Quick-check-for-SSE-support.patch
D  +0    -227  3rdparty/ext_lcms2/0003-Separate-fast-float-plugin.patch
M  +4    -5    3rdparty/ext_lcms2/CMakeLists.txt

https://invent.kde.org/graphics/krita/commit/9856e7b9c2904d8aae6887b4b6bf2cb2ea6826fe