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] experimental canvas bdf support. #53597

Merged
merged 18 commits into from
Jun 28, 2024

Conversation

jonahwilliams
Copy link
Member

Almost working bdf for experimentcal canvas.

Currently there are some problems with the clip depth, and positioning of the backdrop filter. I think I am not taking the blur transform into account at the very least.

FYI @bdero

@jonahwilliams
Copy link
Member Author

Gonna run tests with this enabled to see what it does, then opt it back out.

@jonahwilliams jonahwilliams marked this pull request as ready for review June 27, 2024 21:10
@jonahwilliams jonahwilliams requested a review from bdero June 27, 2024 21:11
Comment on lines 347 to 348
subpass_coverage = clip_coverage_stack_.CurrentClipCoverage().value_or(
save_layer_state_.back().coverage);
Copy link
Member

Choose a reason for hiding this comment

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

IIUC from earlier, the plan is to do a Save() instead in cases where this ends up being zero size in order to avoid making a zero size texture/RenderPass?
Then, stuff appended within the "skipped" SaveLayer may still append draws, but they shouldn't be able to draw anything into the parent texture given the zero size scissor.

Copy link
Member Author

Choose a reason for hiding this comment

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

This is done now. Also, on partial repaint examples we have fewer composited layers compared to the current entity pass. I'm not sure why the current entity pass skip logic doesn't seem to work at eliding the entire layer when there are backdrops.

Experimental Canvas

image

Current

image

@jonahwilliams
Copy link
Member Author

Fixed the entity pass target flip/allocate calls, so now we're correctly reusing textures.

I realized that tracking the required mip count requires more information than we have. When we get a bdf, its the previous render target that needed to be created with mips.

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 Jun 28, 2024
@auto-submit auto-submit bot merged commit b6f6e1d into flutter:main Jun 28, 2024
29 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jun 28, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jun 29, 2024
…151016)

flutter/engine@f828363...ad1343c

2024-06-28 [email protected] [web] switch from .didGain/LoseAccessibilityFocus to .focus (flutter/engine#53360)
2024-06-28 [email protected] Reland [DisplayList] Add support for clipOval to leverage Impeller optimization (flutter/engine#53642)
2024-06-28 [email protected] [Impeller] experimental canvas bdf support. (flutter/engine#53597)

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
victorsanni pushed a commit to victorsanni/flutter that referenced this pull request Jul 8, 2024
…lutter#151016)

flutter/engine@f828363...ad1343c

2024-06-28 [email protected] [web] switch from .didGain/LoseAccessibilityFocus to .focus (flutter/engine#53360)
2024-06-28 [email protected] Reland [DisplayList] Add support for clipOval to leverage Impeller optimization (flutter/engine#53642)
2024-06-28 [email protected] [Impeller] experimental canvas bdf support. (flutter/engine#53597)

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

Successfully merging this pull request may close these issues.

2 participants