Skip to content
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

Merged
merged 6 commits into from
May 30, 2024

Conversation

flar
Copy link
Contributor

@flar flar commented May 30, 2024

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.

@flar
Copy link
Contributor Author

flar commented May 30, 2024

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...

Copy link
Member

@jonahwilliams jonahwilliams left a 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.

@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label May 30, 2024
@auto-submit auto-submit bot merged commit bf2e32d into flutter:main May 30, 2024
29 checks passed
chingjun pushed a commit to engine-flutter-autoroll/flutter that referenced this pull request May 30, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request May 30, 2024
…149357)

flutter/engine@de07179...bf2e32d

2024-05-30 flar@google.com DisplayList SaveLayer (and root layer) read-back flags (flutter/engine#53104)
2024-05-30 skia-flutter-autoroll@skia.org 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 skia-flutter-autoroll@skia.org Roll Skia from 75cf7d351b02 to 7cfb0898ac15 (3 revisions) (flutter/engine#53126)
2024-05-30 jonnywang@google.com 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 skia-flutter-autoroll@skia.org Roll Skia from eadc654480ed to 75cf7d351b02 (2 revisions) (flutter/engine#53120)
2024-05-30 skia-flutter-autoroll@skia.org Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (flutter/engine#53119)
2024-05-30 yjbanov@google.com add SemanticsAction.focus (flutter/engine#53094)
2024-05-30 skia-flutter-autoroll@skia.org Roll Skia from 693d9362f0f6 to eadc654480ed (3 revisions) (flutter/engine#53117)
2024-05-30 bdero@google.com [Flutter GPU] Upload `flutter_gpu.zip` upon successful completion of ci/android_debug. (flutter/engine#53107)
2024-05-30 skia-flutter-autoroll@skia.org Roll Skia from 949b8cefbf87 to 693d9362f0f6 (2 revisions) (flutter/engine#53114)
2024-05-30 jiahaog@users.noreply.github.com 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 jacksongardner@google.com,rmistry@google.com,zra@google.com 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
victorsanni pushed a commit to victorsanni/flutter that referenced this pull request May 31, 2024
…lutter#149357)

flutter/engine@de07179...bf2e32d

2024-05-30 flar@google.com DisplayList SaveLayer (and root layer) read-back flags (flutter/engine#53104)
2024-05-30 skia-flutter-autoroll@skia.org 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 skia-flutter-autoroll@skia.org Roll Skia from 75cf7d351b02 to 7cfb0898ac15 (3 revisions) (flutter/engine#53126)
2024-05-30 jonnywang@google.com 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 skia-flutter-autoroll@skia.org Roll Skia from eadc654480ed to 75cf7d351b02 (2 revisions) (flutter/engine#53120)
2024-05-30 skia-flutter-autoroll@skia.org Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (flutter/engine#53119)
2024-05-30 yjbanov@google.com add SemanticsAction.focus (flutter/engine#53094)
2024-05-30 skia-flutter-autoroll@skia.org Roll Skia from 693d9362f0f6 to eadc654480ed (3 revisions) (flutter/engine#53117)
2024-05-30 bdero@google.com [Flutter GPU] Upload `flutter_gpu.zip` upon successful completion of ci/android_debug. (flutter/engine#53107)
2024-05-30 skia-flutter-autoroll@skia.org Roll Skia from 949b8cefbf87 to 693d9362f0f6 (2 revisions) (flutter/engine#53114)
2024-05-30 jiahaog@users.noreply.github.com 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 jacksongardner@google.com,rmistry@google.com,zra@google.com 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
auto-submit bot pushed a commit that referenced this pull request Jun 4, 2024
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App e: impeller
Projects
None yet
2 participants