-
Notifications
You must be signed in to change notification settings - Fork 6k
Avoid unnecessary transform resets for pixel snapping #51337
Avoid unnecessary transform resets for pixel snapping #51337
Conversation
|
Discovered while working on #50935 |
| bool RasterCacheUtil::ComputeIntegralTransCTM(const SkM44& in, SkM44* out) { | ||
| // Avoid integral snapping if the matrix has complex transformation to avoid | ||
| // the artifact observed in https://github.com/flutter/flutter/issues/41654. | ||
| if (in.rc(0, 1) != 0 || in.rc(0, 2) != 0) { |
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.
rc = row column? Its quite the API...
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.
(I realize this is from Skia)
| return false; | ||
| } | ||
|
|
||
| bool RasterCacheUtil::ComputeIntegralTransCTM(const SkM44& in, SkM44* out) { |
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.
Do we have any tests that are exercising the SkM44 code path?
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.
done
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.
Overall LGTM but I'd like it if there was an SkM44 test that we needed to update too...
|
There were added to fix problems we had with not maintaining full 4x4 transforms during the layer recursion so they are tested someplace indirectly. But, I could add some LSS/DlMCT tests to test them more directly. |
cce3017 to
d5d1dab
Compare
…145176) flutter/engine@cc1e7d1...7b49dc9 2024-03-14 [email protected] Roll Dart SDK from 749988e4d748 to 2bc8b222d01f (1 revision) (flutter/engine#51421) 2024-03-14 [email protected] [web] - fix text editing IME composition interruption on geometry updates (flutter/engine#51323) 2024-03-14 [email protected] Avoid unnecessary transform resets for pixel snapping (flutter/engine#51337) 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],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
During some new development work that might make transform resets more expensive we realized that the resets were mostly coming from the calls to snap the transform to a pixel translate value and many of those were NOPs since the transform was already on a pixel translate value. This PR will avoid those trivially unnecessary reset operations.