-
Notifications
You must be signed in to change notification settings - Fork 28.5k
[Impeller] : Opacity widget not working on a CustomPaint with a shader on iOS #158500
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
Comments
If I can give a suggestion, I think the problem has been caused on the changed condition for the opacity peephole in this PR #52707 The method |
@GiacomoPignoni |
@darshankawar About the other issue, it is related, it's something similar but not the same use case. |
@darshankawar it could actually be that the issue you have linked is strictly related to this issue, because I've verified that the behaviour that is described in that issue (to multiply the alpha value of the It can be that because of this new (unwanted?) behavior, the peephole optimizations of the Opacity layer, which are most likely affecting the color value of the Paint, are no longer able to effectively apply opacity on the shader's output. |
Thanks for the update @GiacomoPignoni and @sroddy ![]() Original image I used: ![]() I see that you verified on 3.24.3. Can you upgrade to 3.24.4 and re-run to confirm ? |
@darshankawar |
@darshankawar I think that on macOS it's not happening because you didn't test it with the flag that enables impeller, as it's still not enabled by default |
FYI @flar , I think this needs to be fixed by marking runtime effect as not accepting opacity peephole |
Issue is assigned to multiple teams (engine, ios). Please ensure the issue has only one |
This would give up an opportunity. Skia is able to apply opacity on top of a Custom Shader. We can impose a restriction on the ability to peephole opacity as a "workaround bug fix", but it will move performance back compared to finding a way to implement opacity on top of a custom shader. |
We're not going to codegen new shaders to make opacity peephole work. please just add the opt out for runtime effect. |
…56936) Fixes flutter/flutter#158500 Impeller does not support group opacity for RuntimeEffects so we disable the optimization with a flag when it is detected.
…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.
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
Steps to reproduce
Put a CustomPaint widget, that paint a shader, into an Opacity widget
Expected results
The Opacity should be applied on the painted shader
Actual results
The Opacity is not applied
Code sample
Code sample
Shader
Screenshots or Video
Screenshots
Expected

Actual

Logs
No response
Flutter Doctor output
Doctor output
The text was updated successfully, but these errors were encountered: