-
Notifications
You must be signed in to change notification settings - Fork 6k
Reland "Split DisplayListBuilder into DlCanvas optimizer and DlOp recorder classes #44718" #45085
Conversation
The original was reverted due to rendering issues with some Flare assets. The problem was that a layer could decide that it was a "NOP" due to the paint it will use to blend in with the scene - but clip and transform methods could also become a NOP due to setting the transform or clip to empty/non-invertible. Both conditions can happen independently and so neither should override the other's conclusion, but that is exactly what the clip/transform methods were doing. The fix is in the last commmit - only have clip/transform methods set the NOP flag to true when they cause a NOP condition. It can only become false on a restore that ends the NOP layer. |
Verified with internal testing that the project that discovered the bug is now working with this fix. |
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.
RSLGTM
…d DlOp recorder classes flutter#44718" (flutter/engine#45085)
…133298) flutter/engine@b8ec4da...1382d6d 2023-08-25 [email protected] Reland "Split DisplayListBuilder into DlCanvas optimizer and DlOp recorder classes #44718" (flutter/engine#45085) 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Some benchmark improvements from relanding this work: |
Yes, it does line up perfectly with those commits. |
My guess is that I removed some cases where I avoided an extra "pointer to shared_ptr" copy that was independent from the actual work being done in this PR. It could have been patched in independently. (DlPaint has both |
…DlOp recorder classes flutter#44718" (flutter#45085)" This reverts commit 1382d6d.
…DlOp recorder classes flutter#44718" (flutter#45085)" This reverts commit 1382d6d.
…DlOp recorder classes flutter#44718" (flutter#45085)" This reverts commit 1382d6d.
Fixes: flutter/flutter#133200