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

Conversation

@bdero
Copy link
Member

@bdero bdero commented Jun 28, 2022

The default behavior for the blend filter is to union the coverage of all the inputs. Without this change, the advanced blend filter's output ends up always being the full size of the input destination texture. This is wasteful because EntityPass immediately blits the blend filter's output back onto the pass backdrop texture, and so for non-destructive blends, we only need to compute the blend within the source input's coverage.

Add FilterContents::SetCoverageCrop() and use it in EntityPass to exclude the backdrop texture coverage for advanced blends.

Note that all destructive blend modes (Clear, Source, SourceIn, DestinationIn, SourceOut, DestinationATop, and Modulate) are pipeline blends, and so this cropping behavior should always be safe.

@bdero bdero changed the title Minimally crop advanced blends in EntityPass [Impeller] Minimally crop advanced blends in EntityPass Jun 28, 2022
@bdero bdero added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 28, 2022
@auto-submit auto-submit bot merged commit 7b569d5 into flutter:main Jun 28, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jun 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

affects: engine 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.

2 participants