-
Notifications
You must be signed in to change notification settings - Fork 28.7k
[Impeller] adjust coverage origin when rounding out SaveLayer bounds. #161838
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
Leaving up the goldens for comparison. If you look at the before/after you can see the top left edge appearing where it previously was cut off. |
Golden file changes are available for triage from new commit, Click here to view. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
I looked through the goldens and didn't notice anything problematic. The space between the rects in |
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.
Test and code looks good to me. I just have one question about why it is happening in one branch of the code.
@@ -1156,7 +1163,8 @@ void Canvas::SaveLayer(const Paint& paint, | |||
subpass_size, // | |||
Color::BlackTransparent() // | |||
))); | |||
save_layer_state_.push_back(SaveLayerState{paint_copy, subpass_coverage}); | |||
save_layer_state_.push_back(SaveLayerState{ | |||
paint_copy, subpass_coverage.Shift(-coverage_origin_adjustment)}); |
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.
no action required: I double checked this is right:
top_left = 1.9
adjustment = 1.9 - 1.0 = 0.9
shift(-0.9)
@@ -1017,12 +1017,19 @@ void Canvas::SaveLayer(const Paint& paint, | |||
// sampling mode. | |||
ISize subpass_size; | |||
bool did_round_out = false; | |||
Point coverage_origin_adjustment = Point{0, 0}; | |||
if (paint.image_filter) { | |||
subpass_size = ISize(subpass_coverage.GetSize()); |
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.
How come this isn't an issue?
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 don't fully understand how the coverage computation for image filters are working today. most are pretty destructuve to the exact pixels (and that no one has reported an issue). Given that, I think we should leave well enough alone for now.
Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
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
Manual roll requested by tarrinneal@google.com flutter/flutter@b2f515f...c1561a4 2025-01-23 matanlurey@users.noreply.github.com Add `windows_host_engine_test` to presubmit, remove lint exceptions. (flutter/flutter#162032) 2025-01-23 matanlurey@users.noreply.github.com Shift `mac_clang_tidy` to a Linux orchestrator. (flutter/flutter#162042) 2025-01-23 jonahwilliams@google.com [Impeller] check both linear sampling props for AHBs. (flutter/flutter#162043) 2025-01-23 jason-simmons@users.noreply.github.com [Impeller] Implement inherited opacity for ColorFilterContents (flutter/flutter#161834) 2025-01-23 robert.ancell@canonical.com Keyboard tidy ups (flutter/flutter#162054) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in tests of `engine/src/flutter` (flutter/flutter#161115) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter/test` (flutter/flutter#161127) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter_test` (flutter/flutter#161131) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `dev/` (flutter/flutter#161112) 2025-01-23 robert.ancell@canonical.com Replace hacky code creating fake devices (flutter/flutter#162056) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162068) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162017) 2025-01-23 bruno.leroux@gmail.com Fix DropdownButtonFormField clips text when large text scale is used (flutter/flutter#159975) 2025-01-23 matanlurey@users.noreply.github.com Add a better error message when `flutter drive --target` is used incorrectly. (flutter/flutter#162023) 2025-01-23 jason-simmons@users.noreply.github.com Revert "Move the analyzer_benchmark to Mac arm64 devicelab bots" (flutter/flutter#161822) 2025-01-23 jonahwilliams@google.com [Impeller] adjust coverage origin when rounding out SaveLayer bounds. (flutter/flutter#161838) 2025-01-23 34871572+gmackall@users.noreply.github.com Add a README with instructions for editing and running tests for the FGP (flutter/flutter#161830) 2025-01-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Migrate unit tests off of Skia geometry classes (#161855)" (flutter/flutter#162046) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
…flutter#161838) Fixes flutter#161374 When we round out the texture size for a saveLayer, also round out the coverage so that the drawing origin is correct. Otherwise we may actually cut off the top left edge of rendering. --------- Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
…flutter#161838) Fixes flutter#161374 When we round out the texture size for a saveLayer, also round out the coverage so that the drawing origin is correct. Otherwise we may actually cut off the top left edge of rendering. --------- Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
) Manual roll requested by tarrinneal@google.com flutter/flutter@b2f515f...c1561a4 2025-01-23 matanlurey@users.noreply.github.com Add `windows_host_engine_test` to presubmit, remove lint exceptions. (flutter/flutter#162032) 2025-01-23 matanlurey@users.noreply.github.com Shift `mac_clang_tidy` to a Linux orchestrator. (flutter/flutter#162042) 2025-01-23 jonahwilliams@google.com [Impeller] check both linear sampling props for AHBs. (flutter/flutter#162043) 2025-01-23 jason-simmons@users.noreply.github.com [Impeller] Implement inherited opacity for ColorFilterContents (flutter/flutter#161834) 2025-01-23 robert.ancell@canonical.com Keyboard tidy ups (flutter/flutter#162054) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in tests of `engine/src/flutter` (flutter/flutter#161115) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter/test` (flutter/flutter#161127) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter_test` (flutter/flutter#161131) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `dev/` (flutter/flutter#161112) 2025-01-23 robert.ancell@canonical.com Replace hacky code creating fake devices (flutter/flutter#162056) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162068) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162017) 2025-01-23 bruno.leroux@gmail.com Fix DropdownButtonFormField clips text when large text scale is used (flutter/flutter#159975) 2025-01-23 matanlurey@users.noreply.github.com Add a better error message when `flutter drive --target` is used incorrectly. (flutter/flutter#162023) 2025-01-23 jason-simmons@users.noreply.github.com Revert "Move the analyzer_benchmark to Mac arm64 devicelab bots" (flutter/flutter#161822) 2025-01-23 jonahwilliams@google.com [Impeller] adjust coverage origin when rounding out SaveLayer bounds. (flutter/flutter#161838) 2025-01-23 34871572+gmackall@users.noreply.github.com Add a README with instructions for editing and running tests for the FGP (flutter/flutter#161830) 2025-01-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Migrate unit tests off of Skia geometry classes (#161855)" (flutter/flutter#162046) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
) Manual roll requested by tarrinneal@google.com flutter/flutter@b2f515f...c1561a4 2025-01-23 matanlurey@users.noreply.github.com Add `windows_host_engine_test` to presubmit, remove lint exceptions. (flutter/flutter#162032) 2025-01-23 matanlurey@users.noreply.github.com Shift `mac_clang_tidy` to a Linux orchestrator. (flutter/flutter#162042) 2025-01-23 jonahwilliams@google.com [Impeller] check both linear sampling props for AHBs. (flutter/flutter#162043) 2025-01-23 jason-simmons@users.noreply.github.com [Impeller] Implement inherited opacity for ColorFilterContents (flutter/flutter#161834) 2025-01-23 robert.ancell@canonical.com Keyboard tidy ups (flutter/flutter#162054) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in tests of `engine/src/flutter` (flutter/flutter#161115) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter/test` (flutter/flutter#161127) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `flutter_test` (flutter/flutter#161131) 2025-01-23 koji.wakamiya@gmail.com fix: Call codec.dispose in `dev/` (flutter/flutter#161112) 2025-01-23 robert.ancell@canonical.com Replace hacky code creating fake devices (flutter/flutter#162056) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162068) 2025-01-23 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#162017) 2025-01-23 bruno.leroux@gmail.com Fix DropdownButtonFormField clips text when large text scale is used (flutter/flutter#159975) 2025-01-23 matanlurey@users.noreply.github.com Add a better error message when `flutter drive --target` is used incorrectly. (flutter/flutter#162023) 2025-01-23 jason-simmons@users.noreply.github.com Revert "Move the analyzer_benchmark to Mac arm64 devicelab bots" (flutter/flutter#161822) 2025-01-23 jonahwilliams@google.com [Impeller] adjust coverage origin when rounding out SaveLayer bounds. (flutter/flutter#161838) 2025-01-23 34871572+gmackall@users.noreply.github.com Add a README with instructions for editing and running tests for the FGP (flutter/flutter#161830) 2025-01-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Migrate unit tests off of Skia geometry classes (#161855)" (flutter/flutter#162046) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
Fixes #161374
When we round out the texture size for a saveLayer, also round out the coverage so that the drawing origin is correct. Otherwise we may actually cut off the top left edge of rendering.