Replace GrMatrixConvolutionEffect with GrSkSLFP runtime effect
GrMatrixConvolutionEffect had a new pipeline for each MxN kernel, but
we didn't have serious regressions for SkMatrixConvolutionImageFilter
moving to a constant-loop with a branch to break out of it. Given that
the 2D gaussian uses the same structure but is slightly simplified
because it always was "convolve-alpha" and the weights are such that
won't have to saturate the output, and the kernel offset is centered.
The other change is that it now creates the GrTextureEffect in
GrBlurUtils to bind to the GrSkSLFP created from the runtime effect.
I opted to stop trying to calculate the pixel domain and just always
use the shader-based tiling since in practice that is what it was
likely using for special images.
Bug: b/294102906
Change-Id: I24e07a78c91288f93524e1ea05e27711a24037b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746856
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
11 files changed