-
Notifications
You must be signed in to change notification settings - Fork 6k
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
DisplayList SaveLayer (and root layer) read-back flags #53104
Conversation
It occurs to me that I need to forward the flags for the root layer of a child DL into the current layer in DrawDisplayList(). And the latest commit includes a fix and unit tests for this now... |
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.
Change overall LGTM
I don't have time to verify that this works with experimental canvas today, but I can follow up with that later.
…149357) flutter/engine@de07179...bf2e32d 2024-05-30 [email protected] DisplayList SaveLayer (and root layer) read-back flags (flutter/engine#53104) 2024-05-30 [email protected] Roll Skia from 7cfb0898ac15 to 188ad395c3e7 (2 revisions) (flutter/engine#53127) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (#53119)" (flutter/engine#53128) 2024-05-30 [email protected] Roll Skia from 75cf7d351b02 to 7cfb0898ac15 (3 revisions) (flutter/engine#53126) 2024-05-30 [email protected] Fuchsia api level 18 (flutter/engine#53115) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] enable Impeller by default on Android. (#53099)" (flutter/engine#53125) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Disable Impeller when the manifest explicitly disables it (#53108)" (flutter/engine#53124) 2024-05-30 [email protected] Roll Skia from eadc654480ed to 75cf7d351b02 (2 revisions) (flutter/engine#53120) 2024-05-30 [email protected] Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (flutter/engine#53119) 2024-05-30 [email protected] add SemanticsAction.focus (flutter/engine#53094) 2024-05-30 [email protected] Roll Skia from 693d9362f0f6 to eadc654480ed (3 revisions) (flutter/engine#53117) 2024-05-30 [email protected] [Flutter GPU] Upload `flutter_gpu.zip` upon successful completion of ci/android_debug. (flutter/engine#53107) 2024-05-30 [email protected] Roll Skia from 949b8cefbf87 to 693d9362f0f6 (2 revisions) (flutter/engine#53114) 2024-05-30 [email protected] Disable Impeller when the manifest explicitly disables it (flutter/engine#53108) 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://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
…lutter#149357) flutter/engine@de07179...bf2e32d 2024-05-30 [email protected] DisplayList SaveLayer (and root layer) read-back flags (flutter/engine#53104) 2024-05-30 [email protected] Roll Skia from 7cfb0898ac15 to 188ad395c3e7 (2 revisions) (flutter/engine#53127) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (flutter#53119)" (flutter/engine#53128) 2024-05-30 [email protected] Roll Skia from 75cf7d351b02 to 7cfb0898ac15 (3 revisions) (flutter/engine#53126) 2024-05-30 [email protected] Fuchsia api level 18 (flutter/engine#53115) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] enable Impeller by default on Android. (flutter#53099)" (flutter/engine#53125) 2024-05-30 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Disable Impeller when the manifest explicitly disables it (flutter#53108)" (flutter/engine#53124) 2024-05-30 [email protected] Roll Skia from eadc654480ed to 75cf7d351b02 (2 revisions) (flutter/engine#53120) 2024-05-30 [email protected] Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (flutter/engine#53119) 2024-05-30 [email protected] add SemanticsAction.focus (flutter/engine#53094) 2024-05-30 [email protected] Roll Skia from 693d9362f0f6 to eadc654480ed (3 revisions) (flutter/engine#53117) 2024-05-30 [email protected] [Flutter GPU] Upload `flutter_gpu.zip` upon successful completion of ci/android_debug. (flutter/engine#53107) 2024-05-30 [email protected] Roll Skia from 949b8cefbf87 to 693d9362f0f6 (2 revisions) (flutter/engine#53114) 2024-05-30 [email protected] Disable Impeller when the manifest explicitly disables it (flutter/engine#53108) 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://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
…53151) Use the flags in #53104 + context capabilities to determine if we need to begin the first pass as an offscreen. Part of flutter/flutter#142054
The DisplayListBuilder now tracks the blend mode(s) used for its contents and whether it contains a child SaveLayer that uses a backdrop filter - both conditions that could require the graphics engine to use a different type of layer to satisfy the requests.
blend modes are tracked as the "highest" blend mode enum used by any content (defaults to kClear) as the enum values tend to be ordered so that larger values will tend to require more complicated render-target accesses.
The root layer of the DisplayList can be queried for both conditions on the root layer using methods on the DisplayList class.