Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@flar
Copy link
Contributor

@flar flar commented Mar 11, 2024

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.

@flar flar requested review from jonahwilliams and knopp March 11, 2024 22:06
@flar
Copy link
Contributor Author

flar commented Mar 11, 2024

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) {
Copy link
Contributor

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...

Copy link
Contributor

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) {
Copy link
Contributor

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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

@jonahwilliams jonahwilliams left a 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...

@flar
Copy link
Contributor Author

flar commented Mar 13, 2024

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.

@flar flar force-pushed the avoid-unnecessary-integral-translation-operations branch from cce3017 to d5d1dab Compare March 14, 2024 08:38
@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 14, 2024
@auto-submit auto-submit bot merged commit 14d712d into flutter:main Mar 14, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 14, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 14, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Mar 14, 2024
…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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants