https://bugs.kde.org/show_bug.cgi?id=407062
Dmitry Kazakov <dimul...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Latest Commit|https://invent.kde.org/kde/ |https://invent.kde.org/kde/ |krita/commit/7e80b852e5b341 |krita/commit/0d6b2a86082f90 |77a74afea39bc4d657afd9d7fd |705a6c05ab71babf03ca2cb544 Resolution|--- |FIXED Status|ASSIGNED |RESOLVED --- Comment #11 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit 30796fcab77c73d94035dd287dbc75a2cc99f913 by Dmitry Kazakov. Committed on 07/05/2019 at 20:14. Pushed by dkazakov into branch 'master'. Fix application of Gaussian Blur with FFTW (about 30% faster) The patch fixes a slowdown we introduced when implemented two-stage gaussian convolution application. This two-stage approach is good for spacial convolution algorithm, but it is no good for FFTW one. Because every kernel (even one- dimensional) should be first split into 2D-wave-plane, which is extremely slow. M +10 -0 libs/image/kis_convolution_painter.cc M +11 -7 libs/image/kis_convolution_painter.h M +27 -1 libs/image/kis_gaussian_kernel.cpp M +3 -0 libs/image/kis_gaussian_kernel.h https://invent.kde.org/kde/krita/commit/30796fcab77c73d94035dd287dbc75a2cc99f913 --- Comment #12 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit 0d6b2a86082f90705a6c05ab71babf03ca2cb544 by Dmitry Kazakov. Committed on 07/05/2019 at 20:14. Pushed by dkazakov into branch 'master'. Limit Gaussian Blur filter radius to 100px when used as a mask When used as a mask, Krita should recalculate additional need/changeRect of the processed area of size: actualSize + 4 * radius, which is too much of work. In older version of Krita the test file loaded fine, because colorize mask did update itself on loading and didn't provoke full mask update. If you provoke full gaussian mask update manually, you'll get the same 12-minutes recalculation process (and it cannot run in threads, because access rects intersect heavily). The patch does the following: 1) When loading filter masks and filter layers: forcefully (and silently) limit gaussian blur size to 100 px. 2) When creating filter masks and filter layers, limit radius slider to 100 px. 3) When changing properties of Gaussian Blur mask, limit the radius slider to 100 px. 4) When applying Gaussian Blur filter directly, allow the user to select radius in full range: 0...1000 px M +11 -0 libs/image/filter/kis_filter.cc M +3 -0 libs/image/filter/kis_filter.h M +1 -1 libs/image/kis_base_processor.cpp M +3 -1 libs/image/kis_base_processor.h M +1 -1 libs/image/kis_node_filter_interface.cpp M +1 -1 libs/libqml/plugins/kritasketchplugin/models/FiltersCategoryModel.cpp M +2 -2 libs/libqml/plugins/kritasketchplugin/models/FiltersModel.cpp M +1 -1 libs/ui/dialogs/kis_dlg_adj_layer_props.cc M +4 -1 libs/ui/dialogs/kis_dlg_filter.cpp M +3 -1 libs/ui/widgets/kis_filter_selector_widget.cc M +1 -1 libs/ui/widgets/kis_wdg_generator.cpp M +1 -1 plugins/filters/asccdl/kis_asccdl_filter.cpp M +1 -1 plugins/filters/asccdl/kis_asccdl_filter.h M +1 -1 plugins/filters/blur/kis_blur_filter.cpp M +1 -1 plugins/filters/blur/kis_blur_filter.h M +27 -2 plugins/filters/blur/kis_gaussian_blur_filter.cpp M +4 -1 plugins/filters/blur/kis_gaussian_blur_filter.h M +1 -1 plugins/filters/blur/kis_lens_blur_filter.cpp M +1 -1 plugins/filters/blur/kis_lens_blur_filter.h M +1 -1 plugins/filters/blur/kis_motion_blur_filter.cpp M +1 -1 plugins/filters/blur/kis_motion_blur_filter.h M +5 -3 plugins/filters/blur/kis_wdg_gaussian_blur.cpp M +1 -1 plugins/filters/blur/kis_wdg_gaussian_blur.h M +1 -1 plugins/filters/colors/kis_color_to_alpha.cpp M +1 -1 plugins/filters/colors/kis_color_to_alpha.h M +1 -1 plugins/filters/colorsfilters/kis_color_balance_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_color_balance_filter.h M +1 -1 plugins/filters/colorsfilters/kis_cross_channel_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_cross_channel_filter.h M +1 -1 plugins/filters/colorsfilters/kis_desaturate_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_desaturate_filter.h M +1 -1 plugins/filters/colorsfilters/kis_hsv_adjustment_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_hsv_adjustment_filter.h M +1 -1 plugins/filters/colorsfilters/kis_perchannel_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_perchannel_filter.h M +1 -1 plugins/filters/convertheightnormalmap/kis_convert_height_to_normal_map_filter.cpp M +1 -1 plugins/filters/convertheightnormalmap/kis_convert_height_to_normal_map_filter.h M +1 -1 plugins/filters/dodgeburn/DodgeBurn.cpp M +1 -1 plugins/filters/dodgeburn/DodgeBurn.h M +1 -1 plugins/filters/edgedetection/kis_edge_detection_filter.cpp M +1 -1 plugins/filters/edgedetection/kis_edge_detection_filter.h M +1 -1 plugins/filters/embossfilter/kis_emboss_filter.cpp M +1 -1 plugins/filters/embossfilter/kis_emboss_filter.h M +1 -1 plugins/filters/fastcolortransfer/fastcolortransfer.cpp M +1 -1 plugins/filters/fastcolortransfer/fastcolortransfer.h M +1 -1 plugins/filters/gradientmap/krita_filter_gradient_map.cpp M +1 -1 plugins/filters/gradientmap/krita_filter_gradient_map.h M +1 -1 plugins/filters/halftone/kis_halftone_filter.cpp M +1 -1 plugins/filters/halftone/kis_halftone_filter.h M +1 -1 plugins/filters/imageenhancement/kis_simple_noise_reducer.cpp M +1 -1 plugins/filters/imageenhancement/kis_simple_noise_reducer.h M +1 -1 plugins/filters/imageenhancement/kis_wavelet_noise_reduction.cpp M +1 -1 plugins/filters/imageenhancement/kis_wavelet_noise_reduction.h M +1 -1 plugins/filters/indexcolors/indexcolors.cpp M +1 -1 plugins/filters/indexcolors/indexcolors.h M +1 -1 plugins/filters/levelfilter/kis_level_filter.cpp M +1 -1 plugins/filters/levelfilter/kis_level_filter.h M +1 -1 plugins/filters/noisefilter/noisefilter.cpp M +1 -1 plugins/filters/noisefilter/noisefilter.h M +1 -1 plugins/filters/oilpaintfilter/kis_oilpaint_filter.cpp M +1 -1 plugins/filters/oilpaintfilter/kis_oilpaint_filter.h M +1 -1 plugins/filters/phongbumpmap/kis_phong_bumpmap_filter.cpp M +1 -1 plugins/filters/phongbumpmap/kis_phong_bumpmap_filter.h M +1 -1 plugins/filters/pixelizefilter/kis_pixelize_filter.cpp M +1 -1 plugins/filters/pixelizefilter/kis_pixelize_filter.h M +1 -1 plugins/filters/posterize/posterize.cpp M +1 -1 plugins/filters/posterize/posterize.h M +1 -1 plugins/filters/raindropsfilter/kis_raindrops_filter.cpp M +1 -1 plugins/filters/raindropsfilter/kis_raindrops_filter.h M +1 -1 plugins/filters/randompickfilter/randompickfilter.cpp M +1 -1 plugins/filters/randompickfilter/randompickfilter.h M +1 -1 plugins/filters/roundcorners/kis_round_corners_filter.cpp M +1 -1 plugins/filters/roundcorners/kis_round_corners_filter.h M +1 -1 plugins/filters/smalltilesfilter/kis_small_tiles_filter.cpp M +1 -1 plugins/filters/smalltilesfilter/kis_small_tiles_filter.h M +1 -1 plugins/filters/threshold/threshold.cpp M +1 -1 plugins/filters/threshold/threshold.h M +1 -1 plugins/filters/unsharp/kis_unsharp_filter.cpp M +1 -1 plugins/filters/unsharp/kis_unsharp_filter.h M +1 -1 plugins/filters/wavefilter/wavefilter.cpp M +1 -1 plugins/filters/wavefilter/wavefilter.h M +1 -1 plugins/generators/pattern/patterngenerator.cpp M +1 -1 plugins/generators/pattern/patterngenerator.h M +1 -1 plugins/generators/simplexnoise/simplexnoisegenerator.cpp M +1 -1 plugins/generators/simplexnoise/simplexnoisegenerator.h M +1 -1 plugins/generators/solid/colorgenerator.cpp M +1 -1 plugins/generators/solid/colorgenerator.h M +18 -2 plugins/impex/libkra/kis_kra_load_visitor.cpp M +1 -0 plugins/impex/libkra/kis_kra_load_visitor.h M +1 -1 plugins/paintops/libpaintop/kis_filter_option.cpp https://invent.kde.org/kde/krita/commit/0d6b2a86082f90705a6c05ab71babf03ca2cb544 -- You are receiving this mail because: You are watching all bug changes.