skia /
skia /
f89a9c1902d78091d80ce321b267e726330a1469 Revert "[skif] Implement raster SkBlurEngine"
This reverts commit bbcb651ebe4d4ce8860c59281e6307df77970a2f.
Reason for revert: Broken Chrome roll
000000000258dde7 SkAbort_FileLine(char const*, int, char const*, ...) google_logging.cc:0:0
00000000012ffc6f (anonymous namespace)::Raster8888BlurAlgorithm::blur(SkSize, sk_sp<SkSpecialImage>, SkIRect const&, SkTileMode, SkIRect const&) const SkBlurEngine.cpp:0:0
00000000014381d7 (anonymous namespace)::SkBlurImageFilter::onFilterImage(skif::Context const&) const SkBlurImageFilter.cpp:0:0
00000000013359ff SkImageFilter_Base::filterImage(skif::Context const&) const SkImageFilter.cpp:0:0
0000000001438fdb (anonymous namespace)::SkColorFilterImageFilter::onFilterImage(skif::Context const&) const SkColorFilterImageFilter.cpp:0:0
00000000013359ff SkImageFilter_Base::filterImage(skif::Context const&) const SkImageFilter.cpp:0:0
00000000014417b3 (anonymous namespace)::SkMatrixTransformImageFilter::onFilterImage(skif::Context const&) const SkMatrixTransformImageFilter.cpp:0:0
00000000013359ff SkImageFilter_Base::filterImage(skif::Context const&) const SkImageFilter.cpp:0:0
0000000001441dcf (anonymous namespace)::SkMergeImageFilter::onFilterImage(skif::Context const&) const SkMergeImageFilter.cpp:0:0
00000000013359ff SkImageFilter_Base::filterImage(skif::Context const&) const SkImageFilter.cpp:0:0
000000000130f0cf SkCanvas::onDrawImageRect2(SkImage const*, SkRect const&, SkRect const&, SkSamplingOptions const&, SkPaint const*, SkCanvas::SrcRectConstraint)
Original change's description:
> [skif] Implement raster SkBlurEngine
>
> This is not as large of a CL as it looks. The static C++ code inside
> SkBlurImageFilter.cpp was copy-pasted into SkBlurEngine.cpp and then
> its main entry point was wrapped in the SkBlurEngine::Algorithm
> signature. The main edits to that code was switching back to using
> pure SkIRects from LayerSpace<SkIRects>.
>
> In terms of behavior, when opting into the blur engine approach
> (default on Skia tree, staged behind a flag in chrome, android doesn't
> use CPU blurs so not staged), the large SIMD blurs will be rescaled
> to fit the GaussPass window size. This means that with the new engine,
> the TentPass is never utilized.
>
> In animating blurs I found the pop between TentPass and GaussPass
> sigmas to be very noticeable. Rescaling and then doing a smaller
> GaussPass is also faster.
>
> If the initial blur radius is small enough, or if the color type
> is not 8888, then the existing shader blur algorithm is selected
> instead. One change here is that technically now the SIMD algorithm
> will be chosen for both BGRA8 and RGBA8 code whereas previously it
> was just for N32.
>
> Once this lands and the old path is removed, it will be theoretically
> possible for the N32 restriction for raster image filters to be
> removed. The TentPass implementation can also be deleted then.
> In follow ups, the A8 Gaussian blur implementation used for CPU
> mask filters can be migrated to the blur engine as a specialization
> for that "color" type.
>
> This CL also removes the last defines for GPU backend from the
> src/effects directory.
>
> Change-Id: I9be29ba75e0fbb2c9112634ae0a4125531cff00f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/866556
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: I2d6f6c34800083225b47cf142fca2d38da248071
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/885056
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Robert Phillips <robertphillips@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
4 files changed