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] Inconsistencies with how opacity peephole compatibility is tracked #149622

Open
flar opened this issue Jun 3, 2024 · 0 comments
Open
Labels
engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project team-engine Owned by Engine team triaged-engine Triaged by Engine team

Comments

@flar
Copy link
Contributor

flar commented Jun 3, 2024

The compatibility of a layer or DisplayList with opacity peephole optimizations is tracked in 2 separate mechanisms.

The bounds accumulator checks for overlapping primitives which interferes with opacity optimizations.
The compatibility of the current rendering attributes is checked on each rendering operation and recorded as a flag.

A couple of the rendering options in the DisplayListBuilder (drawAtlas, drawVertices, drawDisplayList, drawText*) sometimes pass along a "we can't tell if our operations overlap so we need to disable opacity optimization" but they do so through the mechanism that tracks rendering attributes rather than through the bounds accumulator which would be a more accurate assessment of their conditions. This does not appear to introduce any bugs, but these cases should be tracked consistently in case we come up with a more sophisticated way to evaluate the opacity peephole conditions in the future.

@flar flar added this to Display List Jun 3, 2024
@github-project-automation github-project-automation bot moved this to 🤔 Needs Triage in Display List Jun 3, 2024
@flar flar added the engine flutter/engine repository. See also e: labels. label Jun 3, 2024
@huycozy huycozy added the team-engine Owned by Engine team label Jun 4, 2024
@jonahwilliams jonahwilliams added P3 Issues that are less important to the Flutter project triaged-engine Triaged by Engine team labels Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project team-engine Owned by Engine team triaged-engine Triaged by Engine team
Projects
Status: 🤔 Needs Triage
Development

No branches or pull requests

3 participants