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

[Impeller] Remove capability to read from onscreen. #47808

Merged
merged 2 commits into from
Nov 8, 2023

Conversation

jonahwilliams
Copy link
Member

@jonahwilliams jonahwilliams commented Nov 8, 2023

As discovered by @knopp in flutter/flutter#131567 (comment), this is actually reducing performance substantially when there are multiple blurs. In the case of flutter/flutter#132735 , removing this capbility improves GPU performance from 400ms per frame to ~100 ms per frame.

Fixes flutter/flutter#131567 (comment)


  Macrobench Example App
TOT 250 450
W/Out OnScreen 203-187 125-109
W/Out Onscreen and Resolve 203 125

Copy link
Member

@bdero bdero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 8, 2023
@auto-submit auto-submit bot merged commit a6c939f into flutter:main Nov 8, 2023
27 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 8, 2023
fluttermirroringbot pushed a commit to flutter/flutter that referenced this pull request Nov 8, 2023
…138108)

flutter/engine@6dbcf8f...5306213

2023-11-08 [email protected] Switch to Android 14 for physical device firebase tests (flutter/engine#47016)
2023-11-08 [email protected] [Impeller] remove capability to read from onscreen. (flutter/engine#47808)
2023-11-08 [email protected] Roll Skia from a4cce5236dcf to fb69e696dc45 (1 revision) (flutter/engine#47810)
2023-11-08 [email protected] Roll Dart SDK from 15c286ed91ea to 14933042494d (5 revisions) (flutter/engine#47805)

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
@flar
Copy link
Contributor

flar commented Nov 9, 2023

These 2 lines are telling the layer tree that the surface can read from the backdrop. The layer tree will automatically do offscreen rendering as needed if these 2 flags are simply set correctly.

framebuffer_info.supports_readback = true;

framebuffer_info.supports_readback = true;

@jonahwilliams
Copy link
Member Author

Those flags are ignored by Impeller

@flar
Copy link
Contributor

flar commented Nov 9, 2023

Those flags are ignored by Impeller

Those flags are info supplied TO the layer tree. Impeller isn't supposed to look at them, it is telling the layer_tree what it can do - and it is lying here. If it had set these flags to false the layer tree would have enforced off-screen rendering already. This whole PR could be replaced by setting those 2 flags to false...

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
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

[Impeller] Reduce render-pass overhead when using wide gamut (iOS)
3 participants