This repository was archived by the owner on Feb 25, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6k
Reland again "Remove layer integral offset snapping #17112" #18160
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This reverts commit a7a25d3 and relands our reland flutter#17915
This fixes the root cause of flutter/flutter#56298
flar
reviewed
May 5, 2020
It turns out that our ios32 (iPhone4s) performacne can regress a lot without snapping. My theory is that although the picture has a fractional top left corner, many drawing operations inside the picture have integral coordinations. In older hardwares, keeping those coordinates integral seems to be performance critical. To avoid flutter/flutter#41654, the snapping will still be disabled if the matrix has non-scale-translation transformations.
Contributor
Author
|
@flar : any more comment on this after the discussion with Skia? |
flar
approved these changes
May 7, 2020
Contributor
flar
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.
LGTM
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
May 8, 2020
[email protected]:flutter/engine.git/compare/3953c3ccd15a...e7ee47d git log 3953c3c..e7ee47d --first-parent --oneline 2020-05-08 [email protected] [web] Implement matrix parameter for linear gradient (flutter/engine#18208) 2020-05-08 [email protected] Reland again "Remove layer integral offset snapping flutter#17112" (flutter/engine#18160) 2020-05-08 [email protected] Roll src/third_party/skia c66cd987f7c0..0dc207f836da (5 commits) (flutter/engine#18212) 2020-05-08 [email protected] Refactor GLFW embedding to support headless mode (flutter/engine#18205) 2020-05-07 [email protected] Manual Roll of Dart 39e0e75fcf...ce62ad2e8b (flutter/engine#18211) 2020-05-07 [email protected] Support EventChannel C++ plugin API for Linux/Windows (flutter/engine#17015) 2020-05-07 [email protected] Handle leak of message handle when no engine present (flutter/engine#18157) 2020-05-07 [email protected] add docs to platformviewios (and some drive-by changes) (flutter/engine#17593) 2020-05-07 [email protected] Roll src/third_party/skia 0066adefa97d..c66cd987f7c0 (4 commits) (flutter/engine#18206) 2020-05-07 [email protected] Roll src/third_party/skia edea19858ccc..0066adefa97d (3 commits) (flutter/engine#18203) 2020-05-07 [email protected] Remove the global engine entry timestamp (flutter/engine#18182) 2020-05-07 [email protected] Roll src/third_party/dart e86e4d61834a..ce62ad2e8b40 (13 commits) (flutter/engine#18201) 2020-05-07 [email protected] Roll src/third_party/skia 2871ab0727bf..edea19858ccc (3 commits) (flutter/engine#18198) 2020-05-07 [email protected] Fixed ChildSceneLayer elevation issue on Fuchsia. (flutter/engine#18144) 2020-05-07 [email protected] [profiling] CPU Profiling support for iOS (flutter/engine#18087) 2020-05-07 [email protected] Roll src/third_party/skia e3d1de7c5281..2871ab0727bf (1 commits) (flutter/engine#18197) 2020-05-07 [email protected] Roll src/third_party/dart 733153eb517c..e86e4d61834a (6 commits) (flutter/engine#18195) 2020-05-07 [email protected] Roll src/third_party/skia 3b2db26c59d6..e3d1de7c5281 (4 commits) (flutter/engine#18192) 2020-05-07 [email protected] Roll fuchsia/sdk/core/mac-amd64 from jMJqf... to 1MVsE... (flutter/engine#18194) 2020-05-07 [email protected] Roll fuchsia/sdk/core/linux-amd64 from RpHTv... to MhpFP... (flutter/engine#18191) 2020-05-07 [email protected] Roll src/third_party/skia 88d04cb51acf..3b2db26c59d6 (1 commits) (flutter/engine#18190) 2020-05-07 [email protected] Roll src/third_party/dart 4da5b40fb6dc..733153eb517c (23 commits) (flutter/engine#18188) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
May 8, 2020
[email protected]:flutter/engine.git/compare/3953c3ccd15a...403931f git log 3953c3c..403931f --first-parent --oneline 2020-05-08 [email protected] Add FlValue (flutter/engine#18185) 2020-05-08 [email protected] [SkParagraph] Copy text height behavior to the Skia paragraph style (flutter/engine#18178) 2020-05-08 [email protected] [web] Implement matrix parameter for linear gradient (flutter/engine#18208) 2020-05-08 [email protected] Reland again "Remove layer integral offset snapping flutter#17112" (flutter/engine#18160) 2020-05-08 [email protected] Roll src/third_party/skia c66cd987f7c0..0dc207f836da (5 commits) (flutter/engine#18212) 2020-05-08 [email protected] Refactor GLFW embedding to support headless mode (flutter/engine#18205) 2020-05-07 [email protected] Manual Roll of Dart 39e0e75fcf...ce62ad2e8b (flutter/engine#18211) 2020-05-07 [email protected] Support EventChannel C++ plugin API for Linux/Windows (flutter/engine#17015) 2020-05-07 [email protected] Handle leak of message handle when no engine present (flutter/engine#18157) 2020-05-07 [email protected] add docs to platformviewios (and some drive-by changes) (flutter/engine#17593) 2020-05-07 [email protected] Roll src/third_party/skia 0066adefa97d..c66cd987f7c0 (4 commits) (flutter/engine#18206) 2020-05-07 [email protected] Roll src/third_party/skia edea19858ccc..0066adefa97d (3 commits) (flutter/engine#18203) 2020-05-07 [email protected] Remove the global engine entry timestamp (flutter/engine#18182) 2020-05-07 [email protected] Roll src/third_party/dart e86e4d61834a..ce62ad2e8b40 (13 commits) (flutter/engine#18201) 2020-05-07 [email protected] Roll src/third_party/skia 2871ab0727bf..edea19858ccc (3 commits) (flutter/engine#18198) 2020-05-07 [email protected] Fixed ChildSceneLayer elevation issue on Fuchsia. (flutter/engine#18144) 2020-05-07 [email protected] [profiling] CPU Profiling support for iOS (flutter/engine#18087) 2020-05-07 [email protected] Roll src/third_party/skia e3d1de7c5281..2871ab0727bf (1 commits) (flutter/engine#18197) 2020-05-07 [email protected] Roll src/third_party/dart 733153eb517c..e86e4d61834a (6 commits) (flutter/engine#18195) 2020-05-07 [email protected] Roll src/third_party/skia 3b2db26c59d6..e3d1de7c5281 (4 commits) (flutter/engine#18192) 2020-05-07 [email protected] Roll fuchsia/sdk/core/mac-amd64 from jMJqf... to 1MVsE... (flutter/engine#18194) 2020-05-07 [email protected] Roll fuchsia/sdk/core/linux-amd64 from RpHTv... to MhpFP... (flutter/engine#18191) 2020-05-07 [email protected] Roll src/third_party/skia 88d04cb51acf..3b2db26c59d6 (1 commits) (flutter/engine#18190) 2020-05-07 [email protected] Roll src/third_party/dart 4da5b40fb6dc..733153eb517c (23 commits) (flutter/engine#18188) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
May 8, 2020
[email protected]:flutter/engine.git/compare/3953c3ccd15a...9193d8f git log 3953c3c..9193d8f --first-parent --oneline 2020-05-08 [email protected] Roll src/third_party/skia 0dc207f836da..a14084ba1b41 (3 commits) (flutter/engine#18219) 2020-05-08 [email protected] Add FlValue (flutter/engine#18185) 2020-05-08 [email protected] [SkParagraph] Copy text height behavior to the Skia paragraph style (flutter/engine#18178) 2020-05-08 [email protected] [web] Implement matrix parameter for linear gradient (flutter/engine#18208) 2020-05-08 [email protected] Reland again "Remove layer integral offset snapping flutter#17112" (flutter/engine#18160) 2020-05-08 [email protected] Roll src/third_party/skia c66cd987f7c0..0dc207f836da (5 commits) (flutter/engine#18212) 2020-05-08 [email protected] Refactor GLFW embedding to support headless mode (flutter/engine#18205) 2020-05-07 [email protected] Manual Roll of Dart 39e0e75fcf...ce62ad2e8b (flutter/engine#18211) 2020-05-07 [email protected] Support EventChannel C++ plugin API for Linux/Windows (flutter/engine#17015) 2020-05-07 [email protected] Handle leak of message handle when no engine present (flutter/engine#18157) 2020-05-07 [email protected] add docs to platformviewios (and some drive-by changes) (flutter/engine#17593) 2020-05-07 [email protected] Roll src/third_party/skia 0066adefa97d..c66cd987f7c0 (4 commits) (flutter/engine#18206) 2020-05-07 [email protected] Roll src/third_party/skia edea19858ccc..0066adefa97d (3 commits) (flutter/engine#18203) 2020-05-07 [email protected] Remove the global engine entry timestamp (flutter/engine#18182) 2020-05-07 [email protected] Roll src/third_party/dart e86e4d61834a..ce62ad2e8b40 (13 commits) (flutter/engine#18201) 2020-05-07 [email protected] Roll src/third_party/skia 2871ab0727bf..edea19858ccc (3 commits) (flutter/engine#18198) 2020-05-07 [email protected] Fixed ChildSceneLayer elevation issue on Fuchsia. (flutter/engine#18144) 2020-05-07 [email protected] [profiling] CPU Profiling support for iOS (flutter/engine#18087) 2020-05-07 [email protected] Roll src/third_party/skia e3d1de7c5281..2871ab0727bf (1 commits) (flutter/engine#18197) 2020-05-07 [email protected] Roll src/third_party/dart 733153eb517c..e86e4d61834a (6 commits) (flutter/engine#18195) 2020-05-07 [email protected] Roll src/third_party/skia 3b2db26c59d6..e3d1de7c5281 (4 commits) (flutter/engine#18192) 2020-05-07 [email protected] Roll fuchsia/sdk/core/mac-amd64 from jMJqf... to 1MVsE... (flutter/engine#18194) 2020-05-07 [email protected] Roll fuchsia/sdk/core/linux-amd64 from RpHTv... to MhpFP... (flutter/engine#18191) 2020-05-07 [email protected] Roll src/third_party/skia 88d04cb51acf..3b2db26c59d6 (1 commits) (flutter/engine#18190) 2020-05-07 [email protected] Roll src/third_party/dart 4da5b40fb6dc..733153eb517c (23 commits) (flutter/engine#18188) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
liyuqian
added a commit
to liyuqian/flutter
that referenced
this pull request
Jul 23, 2020
The test was first written in flutter#41654 (comment) This will ensure that flutter#41654 won't have regressions. This test would fail without flutter/engine#18160
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This reverts commit a7a25d3 and relands our reland #17915.
Additionally, we fixed the cull rect logic in
OpacityLayer::Prerollwhich is the root cause of flutter/flutter#56298. We've always had that root problem before but it did not trigger performance issues because we were using the OpacityLayer'spaint_bounds, instead of its child'spaint_boundsfor preparing the layer raster cache. A correct handling of the cull rect should allow us to cull at any level.It also turns out that our ios32 (iPhone4s) performacne can regress a lot
without snapping. My theory is that although the picture has a
fractional top left corner, many drawing operations inside the picture
have integral coordinations. In older hardwares, keeping those
coordinates integral seems to be performance critical.
To avoid flutter/flutter#41654, the snapping
will still be disabled if the matrix has non-scale-translation
transformations.