-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] More aggressively downscale gaussian blur textures #35853
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
8d0a1e6 to
2836958
Compare
|
I rebased this on top of #35854 because this change exacerbates the issue solved by that PR a bit. In practice, the issue fixed in 35854 caused the image to get scaled down too much on the second pass when the x sigma is tiny, which can cause a bit of glitching while transitioning the blur in Wonderous very slowly. |
jonahwilliams
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RSLGTM
…110796) * f30fed5ab Ignore all translations in Matrix::TransformDirection (flutter/engine#35854) * d8928a0b6 [Impeller] More aggressively downscale gaussian blur textures (flutter/engine#35853) * 5454c09a0 Roll Fuchsia Mac SDK from sgXD5SyRPOxGjWV4q... to VCkCQ9VaBkOXaOnQU... (flutter/engine#35858) * 4ef0eb243 Roll Skia from d505b9445bf6 to 74d7dcaf7a4e (1 revision) (flutter/engine#35857) * 5cab38584 Do frustum culling after the MSAA backdrop draw (flutter/engine#35847) * 4e6bb5da5 Roll Skia from 74d7dcaf7a4e to ca89d2781f78 (1 revision) (flutter/engine#35859) * 5dc718f92 Roll Skia from ca89d2781f78 to 8c7e99e0546e (2 revisions) (flutter/engine#35860) * c3a956050 Roll Skia from 8c7e99e0546e to defbe6b80d7b (1 revision) (flutter/engine#35861) * 1f7fe40d8 Roll Skia from defbe6b80d7b to d8a45111ba9a (1 revision) (flutter/engine#35862) * f74d2439e Add function restoreToCount to Canvas. (flutter/engine#35798) * 152228e27 Roll Skia from d8a45111ba9a to 97f1748bbfc0 (1 revision) (flutter/engine#35863) * 08394d74c Fixed the nullability annotation on codec `writeValue:` (flutter/engine#35814) * 185f4f595 Revert "roll CanvasKit to 0.36.1 (attempt 2) (#35839)" (flutter/engine#35864)
Just changing it to a simpler linear curve saves more than half the execution time for the max blur in Wonders, and there doesn't seem to be any visible color jitter as the texture size changes gradually. Making the curve any steeper results in visible banding.
I'm experimenting with some optimizations that are heavier on the information loss side, but this adjustment is pretty safe and is getting me much better frame times.
I don't think this is the final curve we'll use when the blur radius is extremely high (like when the blur radius is getting to be larger than the dimensions of the input texture). I think we'll want a 2nd order asymptotic falloff.