-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Description
Using antiAlias in ClipRect, which is no longer the default, is now slow since flutter/engine#6199 enables AA.
Background:
Previously, the engine did not properly pass the AA flag on ClipRect.clipBehavior. flutter/engine#6199 fixes this and enables AA. However, default AA on clipRects has caused severe regressions in benchmark performance.
To maintain expected performance, we should now default the clipBehavior to hardEdge to disable default AA. This is consistent with any flutter projects that did not previously explicitly set the clipBehavior and should not change app appearance.
Migration:
- If you left clipBehavior as default: Nothing!
- If you explicitly set clipBehavior as hardEdge: Nothing!
- If you explicitly set clipBehavior as antiAlias or antiAliasWithSaveLayer: Your application will now actually perform the specified AA. It is up to you to decide if the performance is worth the visual improvement.
- If you left clipBehavior as default and expected AA: explicitly set clipBehavior to Clip.antiAlias and verify that the performance is acceptable to your application.
For the most part, there should be minimal if any need to migrate code, but I will be glad to assist anyone to achieve the expected clipping behavior.
Summary:
clipBehavior is now properly respected instead of always hardEdge. Any expectation of anti-aliasing should be re-evaluated in regards to performance.