Repeatable crash. 1. Create an image (8-bit RGB) 2. Select Blur Filter 3. Unlock horz/vertical components 4. Adjust vertical component (crash) The stack trace is: > kritaimage.dll!KisConvolutionWorkerSpatial<RepeatIteratorFactory>::loadPixelToCache(double * * cache, const unsigned char * data, int index) Line 53 C++ kritaimage.dll!KisConvolutionWorkerSpatial<RepeatIteratorFactory>::moveKernelRight(KisSharedPtr<KisRepeatVLineIteratorPixelBase<KisVLineIterator2> > & kitSrc, double * * pixelPtrCache) Line 327 C++ kritaimage.dll!KisConvolutionWorkerSpatial<RepeatIteratorFactory>::execute(const KisSharedPtr<KisConvolutionKernel> kernel, const KisSharedPtr<KisPaintDevice> src, QPoint srcPos, QPoint dstPos, QSize areaSize, const QRect & dataRect) Line 176 C++ kritaimage.dll!KisConvolutionPainter::applyMatrix(const KisSharedPtr<KisConvolutionKernel> kernel, const KisSharedPtr<KisPaintDevice> src, QPoint srcPos, QPoint dstPos, QSize areaSize, KisConvolutionBorderOp borderOp) Line 150 C++ kritablurfilter.dll!KisBlurFilter::processImpl(KisSharedPtr<KisPaintDevice> device, const QRect & rect, const KisFilterConfiguration * config, KoUpdater * progressUpdater) Line 108 C++ kritaui.dll!KisFilterStrokeStrategy::doStrokeCallback(KisStrokeJobData * data) Line 106 C++ kritaimage.dll!KisUpdateJobItem::run() Line 62 C++ This seems to occur for the condition y>x; If the program crashes with preview enabled and y>x then the blur filter crashes prior to the display of the dialog. for y<x then the filter time takes an usually long time even for a small 1024x1024 single layer file. During this time, the user can see the layer change progress bar applying numerous times with a main level of progress which slowly increments but then seems to update from a slightly lower progress.
Identified issue: kritablurfilter.dll!KisBlurFilter::processImpl passes width/height as aspect ratio to KisCircleMaskGenerator/KisRectangleMaskGenerator, which where height>width gets rounded to 0. (currently testing fix prior to commit) Multiple render passes remains an issue, along with seemingly slow performance on small datasets, particularly when X is much greater than Y. (e.g. 20x5)