This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Reland "add non-rendering operation culling to DisplayListBuilder" (#41463) #42584
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This reverts commit 2553def.
Fixes flutter/flutter#125338
This PR should fix the blendmode/color analysis that caused failures for #41463 as well as the bounds failures for inverted rectangles that caused failures for #42330 (incorporating the fix from #42556).
The description from the previous PR updated with the new name of the DL property:
This optimization avoids recording unnecessary render operations that will not affect the output and also eliminates the need for "draw detection" mechanisms like
DlOpSpy
andCanvasSpy
by remembering if any non-transparent operations were included. TheDlOpSpy
unit tests were updated to check if the results from that object match the newDisplayList::modifies_transparent_black()
method.Fixes flutter/flutter#125338
In addition, this change will unblock some other Issues: