tree da4ba82811c4e20fbb517e3989cc61313f5ecbd8
parent b8e5d4776908b9ae7cc65e95705b032844096e92
author gaaclarke <30870216+gaaclarke@users.noreply.github.com> 1705097886 -0800
committer GitHub <noreply@github.com> 1705097886 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJlobqeCRBK7hj4Ov3rIwAAxjgIADS7Dg5sStEsxXMXmPQeN8kC
 faDYzxwE6butJEUvvLozpEts3EZse8nIpl4h6soQ84YC3B6nn496HwxDfB12nOgd
 hMyzrqxEUhoCyRk5wYusEdDEvdU8uJXyXAOum7jnhnGA0trrQ9ahWV3zoQmN70hw
 llytvXT/8lZQfOIq0JAinqU+b/JApnLZL2udXex/mUeHSFWi84hf63q3z9XKz+fo
 CymO6txjQo/s5W1ZRJ9TwZVbfzwxjb9tcrHfr+C7201uvhSmEyUueBvrMW6av2kn
 7dX6ObTdqQRLClcZlzC+ZmffAOhafdCMi9I6WpYJxCssSGWDdHWPH5k45DOxkQM=
 =6s7d
 -----END PGP SIGNATURE-----
 

[Impeller]: new blur - adds mips for backdrop filters (#49607)

If the new blur flag is on and a blur is used as a backdrop filter, the
rendered texture will now have mipmaps which will make the downscaling
step of the blur have more signal (and thus be less shimmery).

issue: https://github.com/flutter/flutter/issues/140193
fixes: https://github.com/flutter/flutter/issues/140949

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat