You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Impeller] Use 32 bit Gaussian function in the 2-pass blur (flutter#42069)
Resolvesflutter/flutter#126487.
Increases the 2-pass blur quality and distribution limit.
It turns out sigma was breaking down beyond ~255 (moderately high, but
not unreasonable for users to rely on). The Gaussian function computes
sigma^2, and half precision floats only have 5 bit exponents and
overflow for numbers above 65k.
Coincidentally, this also returns us to a state where we look a lot more
like Skia's blurs for larger blur sigmas. Medium blurs have much less
visual banding (although it's still there if you look closely). I
suspect half precision isn't really enough for tracking the integral.
Unfortunately, this means our SIMD pipelining isn't going to be as good.
I'll be interested in watching the blur-driven benchmarks for the perf
hit.
(cherry picked from commit 87a03e1)
0 commit comments