Version: (using Devel) Installed from: Compiled sources Krita crashes when using the smudge brush on a big image: Thread 2 (Thread 0xae1ffb70 (LWP 21842)): [KCrash Handler] #6 ref (this=<value optimized out>) at /usr/include/QtCore/qatomic_i386.h:120 #7 QString (this=<value optimized out>) at /usr/include/QtCore/qstring.h:715 #8 KoCompositeOp::id (this=<value optimized out>) at /home/boud/kde/src/koffice/libs/pigment/KoCompositeOp.cpp:98 #9 0xb72247b6 in KisPainter::bitBlt (this=0x24f25520, dx=2357, dy=-396, srcdev=..., sx=0, sy=0, sw=200, sh=200) at /home/boud/kde/src/koffice/krita/image/kis_painter.cc:262 #10 0xafa6f045 in KisSmudgeOp::paintAt (this=0x24f2e998, info=...) at /home/boud/kde/src/koffice/krita/plugins/paintops/defaultpaintops/smudge/kis_smudgeop.cpp:183 #11 0xb722a999 in KisPaintOp::paintLine (this=0x24f2e998, pi1=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:176 #12 0xb722a47b in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:121 #13 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #14 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #15 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #16 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #17 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #18 0xb722a3ac in paintBezierCurve (paintOp=<value optimized out>, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:135 #19 0xb722a53e in KisPaintOp::paintBezierCurve (this=0x24f2e998, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/brushengine/kis_paintop.cc:148 #20 0xb721e81d in KisPainter::paintBezierCurve (this=0x24e85778, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/boud/kde/src/koffice/krita/image/kis_painter.cc:556 #21 0xb7516156 in FreehandPaintBezierJob::run (this=0x24fcfd08) at /home/boud/kde/src/koffice/krita/ui/tool/kis_tool_freehand_p.cpp:110 #22 0xb76387f2 in QThreadPoolThread::run (this=0x24f9bdb8) at concurrent/qthreadpool.cpp:106 #23 0xb76430bf in QThreadPrivate::start (arg=0x24f9bdb8) at thread/qthread_unix.cpp:248 #24 0xb75c86e5 in start_thread () from /lib/libpthread.so.0 #25 0xb75c8600 in ?? () from /lib/libpthread.so.0
Created attachment 41780 [details] shows blockiness of smudge stroke
The relevant code has been rewritten. I not longer get a crash, but there are some very weird artefacts when smudging. I am using a big image (5000x3000) and a big smudge brush (~200 pixels). I don't think the result should be so blocky as shown on the attached screenshot. The blockiness only happens when smudging upwards, I think.
At first I couldn't reproduce, because I was trying with a mouse, but using the distance sensor on size with an "invert" curve, I could reproduce, so it seems, it actually happen when the size of the brush decrease.
> At first I couldn't reproduce, because I was trying with a mouse, but using the > distance sensor on size with an "invert" curve, I could reproduce, so it seems, > it actually happen when the size of the brush decrease. I didn't even have to do anything with any sensor: just default values, either mouse or stylus, both showed the issue very strongly. Boud
SVN commit 1108061 by berger: Fix: blockiness of the smudge op when the size of the brush change CCBUG: 229012 M +6 -4 kis_smudgeop.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1108061
This does not remove the blockiness when size is fixed with big brush, and big spacing, because this is not a bug. If you have a big brush, and want a smooth result, you need to lower the spacing. However, I am not closing the bug, since there is still a problem. If you setup a smudge brush, with a distance sensor for the size, and move around the canvas, when the size goes from small to big, then the smudge brush start using old information. see attached screenshot for an example. I am unsure at the moment of how to solve the problem.
Created attachment 42296 [details] image showing the smudge reset problem
Can you check if this is still issue? I fixed the test for KisFixedDevice saved as selection and then Cyrille fixed the KisPainter when selection saved in KisFixedDevice.
Valerie also complained about the results of the smudge brush on the forum.http://forum.kde.org/viewtopic.php?f=137&t=89670&p=167253#p167253 But I think her complaint is different.
SVN commit 1175603 by jlvergara: Commit new version of the smudge op paintop that preserves the old behavior at constant brush size, but attempts to fix problems when the brush is resized mid-stroke (example: using stylus). o Includes cap to opacity to prevent smudging from turning into copying. o Includes commented-out alternative algorithms for testing (each with their own drawback, like the default one). o Includes some code style changes and extra comments. - copyright notice added to kis_smudge_op.h CCBUG: 229012 M +63 -23 kis_smudgeop.cpp M +2 -0 kis_smudgeop.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1175603
SVN commit 1175649 by jlvergara: Last facelift to smudge op: o Definite algorithm to solve bug 229012 decided, alternatives removed from comments. o Comments extended and beautified (includes description of the algorithm at the top). BUG: 229012 M +33 -42 kis_smudgeop.cpp M +1 -0 kis_smudgeop.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1175649