Repository navigation
Remove BorderMaskBlur - #194508
Remove BorderMaskBlur#194508
Conversation
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request removes the BorderMaskBlur filter, its associated shader, pipeline, and tests from Impeller, simplifying mask blur operations to always use a Gaussian blur. Feedback on the changes suggests reusing the already computed blur_coverage variable in entity_unittests.cc instead of redundantly calling GetCoverage again.
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | ||
| if (blur_coverage.has_value()) { | ||
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | ||
| flutter::DlPath::MakeRect(blur->GetCoverage(entity).value())); |
There was a problem hiding this comment.
The coverage of the blur filter is already computed and stored in blur_coverage. Calling blur->GetCoverage(entity).value() again inside the if block is redundant and inefficient. Use blur_coverage.value() instead.
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | |
| if (blur_coverage.has_value()) { | |
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | |
| flutter::DlPath::MakeRect(blur->GetCoverage(entity).value())); | |
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | |
| if (blur_coverage.has_value()) { | |
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | |
| flutter::DlPath::MakeRect(blur_coverage.value())); |
There was a problem hiding this comment.
Code Review
This pull request removes the BorderMaskBlur filter, its associated shader, pipeline, and unit tests from the Impeller engine, consolidating mask blur operations to always use Gaussian blur. Feedback on the changes suggests avoiding a redundant call to GetCoverage in the unit tests by reusing the already computed blur_coverage variable.
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | ||
| if (blur_coverage.has_value()) { | ||
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | ||
| flutter::DlPath::MakeRect(blur->GetCoverage(entity).value())); |
There was a problem hiding this comment.
Avoid calling blur->GetCoverage(entity) again inside DlPath::MakeRect since the result has already been computed and stored in blur_coverage.
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | |
| if (blur_coverage.has_value()) { | |
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | |
| flutter::DlPath::MakeRect(blur->GetCoverage(entity).value())); | |
| std::optional<Rect> blur_coverage = blur->GetCoverage(entity); | |
| if (blur_coverage.has_value()) { | |
| std::unique_ptr<Geometry> geom = Geometry::MakeFillPath( | |
| flutter::DlPath::MakeRect(blur_coverage.value())); |
|
autosubmit label was removed for flutter/flutter/194508, because - The status or check suite Mac_arm64_verify_binaries has failed. Please fix the issues identified (or deflake) before re-applying this label. |
…r#194540) DlComplexityPathReceiver in dl_complexity_helper.cc:32-35 did not initialize its line_verb_count, quad_verb_count, conic_verb_count, and cubic_verb_count fields, causing ComplexityCalculatorHelper::CalculatePathComplexity to read uninitialized stack memory when computing path complexity. In DisplayListComplexity.DrawShadow, removing BorderMaskBlur (flutter#194508) shifted symbol addresses in display_list_unittests such that the uninitialized stack values in Linux linux_unopt caused the computed complexity score for display_list_conic to wrap to 0, failing ASSERT_NE(calculator->Compute(display_list_conic.get()), 0u). Zero-initializing the verb counters should fix the bug. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant in-code documentation (doc comments with `///`). - [x] If this PR introduces a new feature or capability, I created and linked a website documentation issue or PR in [flutter/website] (or verified none is needed). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
|
A reason for requesting a revert of flutter/flutter/194508 could not be found or the reason was not properly formatted. Begin a comment with 'Reason for revert:' to tell the bot why this issue is being reverted. |
|
Reason for revert: tree is broken. Example failure: https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20linux_unopt/20632/overview |
|
there is a fix already landing |
Ah oops. Well I'll close the revert then. |
|
please see sheriff chat for discussion |
|
Successfully created revert PR: #194567 |
flutter/flutter@5c7e45a...a3d71d8 2026-10-16 [email protected] 0 Initialize variables in the DlComplexityPathReceiver helper (flutter/flutter#194540) 2026-10-16 [email protected] Roll Fuchsia Test Scripts from V-qQL4158Nw6L-QLi... to 2T18KC7-LDQtmQiLP... (flutter/flutter#194527) 2026-10-16 [email protected] Remove BorderMaskBlur (flutter/flutter#194508) 2026-10-16 [email protected] Roll Skia from a577264dc087 to 470b8816a261 (1 revision) (flutter/flutter#194526) 2026-10-16 [email protected] [ios] Use DFS traversal to find engines of a scene automatically (rather than manually manage the engines list) (flutter/flutter#192457) 2026-10-16 [email protected] [Skia][DisplayList] Map local bounds through the local matrix in DlLocalMatrixImageFilter (flutter/flutter#193963) 2026-10-16 [email protected] [framework] Fix avoid_setters_without_getters warnings on mixin declarations (flutter/flutter#193856) 2026-10-16 [email protected] Roll Dart SDK from 84686ea04815 to 55a734a01fb1 (3 revisions) (flutter/flutter#194522) 2026-10-16 [email protected] Roll Skia from d131b7789482 to a577264dc087 (7 revisions) (flutter/flutter#194514) 2026-10-16 [email protected] Roll Fuchsia GN SDK from PDJz3b3CL31uoLOkD... to kFdyRnojbVy0cxvRZ... (flutter/flutter#194510) 2026-10-16 [email protected] Roll GN to f9eca75ae554 (flutter/flutter#194471) 2026-10-16 [email protected] refactor(flutter_tools): migrate RunCommand and RunCommandBase to OptionDescriptor and OptionBundle (flutter/flutter#194362) 2026-10-15 [email protected] refactor(flutter_tools): finish TestCommand OptionDescriptor and OptionBundle migration (flutter/flutter#194361) 2026-10-15 [email protected] [iOS][a11y] Fix VoiceOver announcement for unfocused password fields (flutter/flutter#192851) 2026-10-15 [email protected] Roll pub packages (flutter/flutter#194477) 2026-10-15 [email protected] refactor(flutter_tools): finish DriveCommand OptionDescriptor migration (flutter/flutter#194360) 2026-10-15 [email protected] [flutter_tools] Roll package:vm_service to 15.4.0 (flutter/flutter#194467) 2026-10-15 [email protected] refactor(flutter_tools): migrate AttachCommand to OptionDescriptor and OptionBundle (flutter/flutter#194359) 2026-10-15 [email protected] [flutter_tools] Inject dependencies into update-packages and package_map (flutter/flutter#194046) 2026-10-15 [email protected] [impeller] parallelize opengles shader compiles (flutter/flutter#194022) 2026-10-15 [email protected] Roll pub packages (flutter/flutter#194469) 2026-10-15 [email protected] Restrict web dev server to loopback by default (flutter/flutter#187595) 2026-10-15 [email protected] Roll Packages from a1ed23c to da40eaf (33 revisions) (flutter/flutter#194459) 2026-10-15 [email protected] [web] Render soft hyphens on Skwasm (flutter/flutter#193850) 2026-10-15 [email protected] refactor(flutter_tools): migrate AssembleCommand to OptionDescriptor (flutter/flutter#194358) 2026-10-15 [email protected] [windows] Add OpenGL golden test against ANGLE at D3D11 feature level 10_0 (flutter/flutter#194321) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] 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
Removes the BorderMaskBlur pipeline and associated shaders. This is created only in `CreateMaskBlur` when `is_solid_color=false`. The three argument `CreateMaskBlur` is only called in canvas.cc, and hardcodes `is_solid_color=true`. https://github.com/flutter/flutter/blob/669265bc0e5c37c71a9f355743ef0efa6776a01e/engine/src/flutter/impeller/display_list/canvas.cc#L2225 This shader looks like it was used in the olden days, but has been deadcode since 2024. Part of flutter#194511 ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant in-code documentation (doc comments with `///`). - [ ] If this PR introduces a new feature or capability, I created and linked a website documentation issue or PR in [flutter/website] (or verified none is needed). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing.
…r#194540) DlComplexityPathReceiver in dl_complexity_helper.cc:32-35 did not initialize its line_verb_count, quad_verb_count, conic_verb_count, and cubic_verb_count fields, causing ComplexityCalculatorHelper::CalculatePathComplexity to read uninitialized stack memory when computing path complexity. In DisplayListComplexity.DrawShadow, removing BorderMaskBlur (flutter#194508) shifted symbol addresses in display_list_unittests such that the uninitialized stack values in Linux linux_unopt caused the computed complexity score for display_list_conic to wrap to 0, failing ASSERT_NE(calculator->Compute(display_list_conic.get()), 0u). Zero-initializing the verb counters should fix the bug. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant in-code documentation (doc comments with `///`). - [x] If this PR introduces a new feature or capability, I created and linked a website documentation issue or PR in [flutter/website] (or verified none is needed). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
Removes the BorderMaskBlur pipeline and associated shaders.
This is created only in
CreateMaskBlurwhenis_solid_color=false. The three argumentCreateMaskBluris only called in canvas.cc, and hardcodesis_solid_color=true.flutter/engine/src/flutter/impeller/display_list/canvas.cc
Line 2225 in 669265b
This shader looks like it was used in the olden days, but has been deadcode since 2024.
Part of #194511
Pre-launch Checklist
///).