Optimize current Scalar implementation to use vectorize Vc code.
- Differential Revisions
- D14314: Default and Soft Rectangular mask generator Optimization
- R37:728cec98fba8: Adjust Spacing of auto_soft_rect.kpp test preset to be 0.1
R37:21afc59cea14: Use Vc Indexes instead of custom SimdArray for integer casting
R37:b8f2080917a3: Reduce casting on Vector Indexes creation
R37:2565a74bdc9c: Vectorize Soft Rect Mask Generator
|Resolved||vanyossi||T8580 Krita AVX optimization for brush mask generation: Gauss, Soft, Stamp, Rectangular Gauss, Rectangular Soft|
|Resolved||vanyossi||T9133 Optimize Rectangular Soft with Vc code|
There seems to be a slight difference in the fading between scalar and vectorize. however tests does cannot detect it.
Current implementation is only 3x faster than Scalar as currently the slowest operation is getting the values from the dataCurve. Math is not very heavy on this mask type Vectorization code works exactly a scalar method, which inherits some bugs from the original implementation. - SoftRect does not generate a proper rect unless a very particular curve is drawn. However the mask becomes very small - Curve does not alter the mask as expected, ie. the same as circular soft. instead it generates smaller squares.