Any Krita file that I have created that has multiple gradient maps appears to corrupt (cannot be re-opened). Everything works as intended until shut down and re-open. Working resolution 2000x2000 px Computer: Surface Pro 3 Tablet: intuospro # of gradient maps: 5+ Adjustment layer type: filter mask Typical number of layers: 20+ Typical number of Group layers: 5 Additional: Drawing also has all other edits, so the corruption destroys the ability to go back to make any future fixes. I can still access the png file by converting the corrupt kra file to a file but I can't work on individual layers. Multiple gradient maps on simple grayscale image seems to work fine as there are less calculations per adjustment layer.
Can you attach a sample file where this issue shows? Then we're absolutely sure we're doing the same as you?
Yes, please attach a broken file.
Created attachment 103725 [details] large krita file example - gradient mapping please let me know if the dropbox link works
https://www.dropbox.com/s/ctgwa34kkgl4ejo/christine%20ko%20drawing.kra?dl=0 A second file for comparison that does not work anymore. There are about 5 if more examples are needed.
Thanks for the link. With the given file, I can reproduce a crash on loading: #0 0x00007fffed25c0c7 in raise () at /lib64/libc.so.6 #1 0x00007fffed25d478 in abort () at /lib64/libc.so.6 #2 0x00007fffed299784 in () at /lib64/libc.so.6 #3 0x00007fffed29f026 in malloc_printerr () at /lib64/libc.so.6 #4 0x00007fffed29ffcd in _int_free () at /lib64/libc.so.6 #5 0x00007ffff444e22f in KoColorSpace::colorants() const (data=<optimized out>) at /home/boud/dev/deps/include/QtCore/qarraydata.h:222 #6 0x00007ffff444e22f in KoColorSpace::colorants() const (this=<optimized out>, x=<optimized out>) at /home/boud/dev/deps/include/QtCore/qvector.h:518 #7 0x00007ffff444e22f in KoColorSpace::colorants() const (this=<synthetic pointer>, __in_chrg=<optimized out>) at /home/boud/dev/deps/include/QtCore/qvector.h:69 #8 0x00007ffff444e22f in KoColorSpace::colorants() const (other=<unknown type in /home/boud/dev/i/lib64/libkritapigment.so.16, CU 0x1d9594, DIE 0x218d3e>, this=<optimized out>) at /home/boud/dev/deps/include/QtCore/qvector.h:74 #9 0x00007ffff444e22f in KoColorSpace::colorants() const (this=this@entry=0x11a83d0) at /home/boud/dev/krita/libs/pigment/KoColorSpace.cpp:269 #10 0x00007ffff444e439 in KoColorSpace::lumaCoefficients() const (this=this@entry=0x11a83d0) at /home/boud/dev/krita/libs/pigment/KoColorSpace.cpp:285 #11 0x00007fffd05d3a27 in KisHSVAdjustmentFilter::createTransformation(KoColorSpace const*, KisPinnedSharedPtr<KisFilterConfiguration>) const (this=<optimized out>, cs=0x11a83d0, config=...) at /home/boud/dev/krita/plugins/filters/colorsfilters/kis_hsv_adjustment_filter.cpp:113 #12 0x00007ffff61c62bf in KisColorTransformationConfiguration::colorTransformation(KoColorSpace const*, KisColorTransformationFilter const*) const (this=this@entry=0x7ad6270, cs=cs@entry=0x11a83d0, filter=filter@entry= 0x4763690) at /home/boud/dev/krita/libs/image/filter/kis_color_transformation_configuration.cc:63 #13 0x00007ffff61c7d5e in KisColorTransformationFilter::processImpl(KisSharedPtr<KisPaintDevice>, QRect const&, KisPinnedSharedPtr<KisFilterConfiguration>, KoUpdater*) const (this=0x4763690, device=..., applyRect=..., config=..., progressUpdater=0x0) at /home/boud/dev/krita/libs/image/filter/kis_color_transformation_filter.cc:61 #14 0x00007ffff61c4b8a in KisFilter::process(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisSelection>, QRect const&, KisPinnedSharedPtr<KisFilterConfiguration>, KoUpdater*) const (this=this@entry=0x4763690, src=..., dst=..., selection=..., applyRect=..., config=..., progressUpdater=progressUpdater@entry=0x0) at /home/boud/dev/krita/libs/image/filter/kis_filter.cc:129 #15 0x00007ffff62189bb in KisFilterMask::decorateRect(KisSharedPtr<KisPaintDevice>&, KisSharedPtr<KisPaintDevice>&, QRect const&, KisNode::PositionToFilthy) const (this=<optimized out>, src=..., dst=..., rc=..., maskPos=<optimized out>) at /home/boud/dev/krita/libs/image/kis_filter_mask.cpp:97 #16 0x00007ffff628287b in KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&, QRect const&, KisNode::PositionToFilthy) const (this=0x7ad60c0, projection=..., applyRect=..., needRect=..., maskPos=maskPos@entry=KisNode::N_ABOVE_FILTHY) at /home/boud/dev/krita/libs/image/kis_mask.cc:280 #17 0x00007ffff626a628 in KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&, KisSharedPtr<KisNode>, KisSharedPtr<KisNode>) const (this=this@entry=0x7a8b380, source=..., destination=..., requestedRect=..., filthyNode=..., lastNode=...) at /home/boud/dev/krita/libs/image/kis_layer.cc:632 #18 0x00007ffff626afa7 in KisLayer::updateProjection(QRect const&, KisSharedPtr<KisNode>) (this=0x7a8b380, rect=..., filthyNode=...) at /home/boud/dev/krita/libs/image/kis_layer.cc:684 #19 0x00007ffff626e0e8 in KisLayerProjectionPlane::recalculate(QRect const&, KisSharedPtr<KisNode>) (this=<optimized out>, rect=..., filthyNode=...) at /home/boud/dev/krita/libs/image/kis_layer_projection_plane.cpp:47 #20 0x00007ffff622d354 in KisAsyncMerger::startMerge(KisBaseRectsWalker&, bool) (this=this@entry=0x79c71d0, walker=..., notifyClones=notifyClones@entry=true) at /home/boud/dev/krita/libs/image/kis_async_merger.cpp:251 #21 0x00007ffff636ef43 in KisUpdateJobItem::run() (this=0x79c7190) at /home/boud/dev/build/libs/image/kritaimage_automoc.dir/../../../../krita/libs/image/kis_update_job_item.h:83 #22 0x00007ffff636ef43 in KisUpdateJobItem::run() (this=0x79c7190) at /home/boud/dev/build/libs/image/kritaimage_automoc.dir/../../../../krita/libs/image/kis_update_job_item.h:63 #23 0x00007fffedf185fe in () at /home/boud/dev/deps/lib/libQt5Core.so.5 #24 0x00007fffedf1b609 in () at /home/boud/dev/deps/lib/libQt5Core.so.5 #25 0x00007fffed0120a4 in start_thread () at /lib64/libpthread.so.0 #26 0x00007fffed30c02d in clone () at /lib64/libc.so.6 (gdb)
After making sure that if krita cannot find a gradient, I got this output. Interestingly, some gradients are named (though not found, obviously, the gradients being loaded with the full path), but there are also a number of gradients with no name, which is even wronger. I think that the filter should use a different method for identifying the gradients, or maybe even store the gradients themselves in the filter config. Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "gold" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/dj5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "gold" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/NK5644.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "gold" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" Could not find gradient "skin1" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg"
Git commit 2459d14e54914e34c3bd6cb4d1847026e6c65887 by Boudewijn Rempt. Committed on 31/01/2017 at 10:04. Pushed by rempt into branch 'master'. This doesn't work currently because the gradient is stored in a problematic way in the filter config: With an absolute path, which makes the file non-portable Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" With a plain name Could not find gradient "skin1" Or apparently without any name, I guess for the autogenerated gradients Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" To fix this properly, we will need to sit down and fix the resource system. M +5 -1 plugins/filters/gradientmap/krita_filter_gradient_map.cpp https://commits.kde.org/krita/2459d14e54914e34c3bd6cb4d1847026e6c65887
Git commit b517a549c2bd3e5fb75d4e4cd2c3efa9db773e63 by Boudewijn Rempt. Committed on 31/01/2017 at 10:14. Pushed by rempt into branch 'krita/3.1'. This doesn't work currently because the gradient is stored in a problematic way in the filter config: With an absolute path, which makes the file non-portable Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients/kC5644.svg" With a plain name Could not find gradient "skin1" Or apparently without any name, I guess for the autogenerated gradients Could not find gradient "C:/Users/GC/AppData/Roaming/krita/gradients\\.svg" To fix this properly, we will need to sit down and fix the resource system. M +5 -1 plugins/filters/gradientmap/krita_filter_gradient_map.cpp https://commits.kde.org/krita/b517a549c2bd3e5fb75d4e4cd2c3efa9db773e63
Git commit 1eab7468ed061b833a03a9d1349e83c93173cd62 by Wolthera van Hövell tot Westerflier. Committed on 15/07/2017 at 16:10. Pushed by woltherav into branch 'master'. Another attempt at making the gradients work again. This time, we store an XML that can be read by the stop gradient object. This does not retroactively fix older files which had issues with the old method. However, if the old file did not have an issue with the old method, it will be loaded properly and saved with the new method. This should be possible to backport. M +49 -0 libs/pigment/resources/KoSegmentGradient.cpp M +3 -0 libs/pigment/resources/KoSegmentGradient.h M +30 -0 libs/pigment/resources/KoStopGradient.cpp M +3 -0 libs/pigment/resources/KoStopGradient.h M +11 -5 plugins/filters/gradientmap/gradientmap.cpp M +25 -8 plugins/filters/gradientmap/krita_filter_gradient_map.cpp https://commits.kde.org/krita/1eab7468ed061b833a03a9d1349e83c93173cd62