-
Notifications
You must be signed in to change notification settings - Fork 6k
Conversation
shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h
Outdated
Show resolved
Hide resolved
@cyanglaz Looks like this is good for another review? @JTKryptic Can you address the presubmit failures please? |
@chinmaygarde |
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. |
|
This isn't compiling:
|
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.
Still LGTM after resolving conflicts.
@@ -43,6 +43,9 @@ void BackdropFilterLayer::Preroll(PrerollContext* context, | |||
const SkMatrix& matrix) { | |||
Layer::AutoPrerollSaveLayerState save = | |||
Layer::AutoPrerollSaveLayerState::Create(context, true, bool(filter_)); | |||
if (context->view_embedder != nullptr) { |
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.
The filter is being pushed but never cleared. The platform view gets an ever-increasing number of filters until app is unresponsive.
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.
Can you point me to where the filter isn't cleared? IIRC at each frame, the preroll context is re-created, meaning the mutator stack is re-created, so the filters in the stacks are cleared.
I agree with the other comment, the visitedPlatformView list is not cleared.
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 ran with a print statement of the number of mutators in vector_ in MutatorsStack::PushBackdropFilter, it was continuously increasing
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.
ah yeah, that's because the visitedPlatformView is increasing and multiple filters are pushed into the same platform view. This is the symptom of not clearing visitedPlatformView list, #34596 will fix it.
@@ -29,6 +29,7 @@ void PlatformViewLayer::Preroll(PrerollContext* context, | |||
context->display_list_enabled); | |||
context->view_embedder->PrerollCompositeEmbeddedView(view_id_, | |||
std::move(params)); | |||
context->view_embedder->PushVisitedPlatformView(view_id_); |
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.
Platform view is pushed but nothing ever clears that list, so it will have the same issue as the filters, it slows down rendering until app is unresponsive.
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.
Yes, we are fixing it here: #34596
Created an issue to track the platform view list not cleared bug: flutter/flutter#109783 |
@cyanglaz In light of the P2 here flutter/flutter#109831, this should be reverted, and relanded only with the fix. |
This reverts commit 3ec9f21.
…ter#35543)" This reverts commit 544c341.
This reverts commit 3ec9f21.
…35543) (#35659) This reverts commit 3ec9f21. Co-authored-by: Zachary Anderson <[email protected]>
Creates the container functions for the BackdropFilter mutation that will push the mutator to the mutator stack of each visited PlatformView. Continues from #34408 (Create blanket backdrop filter mutator) and to be combined with #34596 (PlatformView Blur for Backdrop Filter).
Related Issues: #43902
Pre-launch Checklist
writing and running engine tests.
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.