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
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.
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.
(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)
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.
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.
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)
Created attachment 153014 [details] ICC profile of the Krita repro Attaching the source's profile for Marti's reference.
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.
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1626
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
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