Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@flar
Copy link
Contributor

@flar flar commented Dec 4, 2024

Fixes flutter/flutter#158500

Impeller does not support group opacity for RuntimeEffects so we disable the optimization with a flag when it is detected.

Copy link
Contributor

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

LGTM, thank you!

@flar
Copy link
Contributor Author

flar commented Dec 4, 2024

Tested against the test case from flutter/flutter#158500

@flar
Copy link
Contributor Author

flar commented Dec 4, 2024

I need to double check (and write tests for) other rendering operations that, for instance, ignore ColorSources entirely. (Don't think anything ignores an ImageFilter, though.)

@flar
Copy link
Contributor Author

flar commented Dec 5, 2024

I took a quick look at what it would take to do conditional attribute flags based on the type of operation being performed and believe that it might be better to get this fix in which conservatively fixes the problem at a slight potential cost of sometimes disabling the opacity optimization when it isn't needed.

Note that the conservative consequences will only ever occur on apps that use custom shaders and only in some very specific circumstances, and functionality and correct results will not be compromised even in those cases.

The full fix will have some non-trivial disruptions to the optimization detection code which has historically been a source of unintended consequences so I'd rather have the bug fixed with a simple fix and isolate the potentially problematic changes into a separate follow-on PR.

@jonahwilliams

@jonahwilliams
Copy link
Contributor

SGTM

@flar
Copy link
Contributor Author

flar commented Dec 5, 2024

Follow-on work documented in flutter/flutter#159862

@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 5, 2024
@auto-submit auto-submit bot merged commit bbe33f2 into flutter:main Dec 5, 2024
31 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Dec 5, 2024
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Dec 5, 2024
…159865)

flutter/engine@3a8204a...bbe33f2

2024-12-05 [email protected] [DisplayList] Disable group opacity when a
RuntimeEffect is in use (flutter/engine#56936)
2024-12-05 [email protected] Removes
ReactorGLES::Ref (flutter/engine#56981)
2024-12-05 [email protected] [Impeller] create a 300 es variant
of all GLES shaders to support UBO binding. (flutter/engine#56960)
2024-12-05 [email protected] [Impeller] Add rounded
superellipse (flutter/engine#56726)

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] 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
nick9822 pushed a commit to nick9822/flutter that referenced this pull request Dec 18, 2024
…lutter/engine#56936)

Fixes flutter#158500

Impeller does not support group opacity for RuntimeEffects so we disable the optimization with a flag when it is detected.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Impeller] : Opacity widget not working on a CustomPaint with a shader on iOS

2 participants