Skip to content

[Impeller] PipelineFuture forces a pessimization if all the caller needs to do is access the descriptor. #98684

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

Closed
chinmaygarde opened this issue Feb 17, 2022 · 1 comment · Fixed by flutter/engine#37415
Assignees
Labels
c: performance Relates to speed or footprint issues (see "perf:" labels) e: impeller Impeller rendering backend issues and features requests engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project r: fixed Issue is closed as already fixed in a newer version

Comments

@chinmaygarde
Copy link
Member

The PipelineFuture today is a simple std::future. This is useful in setting up pipeline libraries as the prototypes may be created well before they are needed. However, some pipelines like the ones used to handle clips are variants of other simpler pipelines (usually because their shader stages can be reused). However to create a variant of an existing pipeline, you need its descriptor. If the future is created by one of the utility methods, the only way to get the descriptor for a pipeline is to eagerly await the future just to get its descriptor. This is a pessimization. Instead of an std::future, a structure that holds the future along with its descriptor may be used. Alternatively, impeller::Pipeline could itself be reworked to hold a future to the pipeline.

This is a very minor low priority optimization.

@chinmaygarde chinmaygarde added engine flutter/engine repository. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Feb 17, 2022
@chinmaygarde chinmaygarde added the P3 Issues that are less important to the Flutter project label Feb 22, 2022
@chinmaygarde chinmaygarde moved this to Needs Triage in Impeller May 26, 2022
@chinmaygarde chinmaygarde moved this from Needs Triage to Performance in Impeller May 26, 2022
@chinmaygarde chinmaygarde added the c: performance Relates to speed or footprint issues (see "perf:" labels) label May 27, 2022
@chinmaygarde chinmaygarde changed the title [impeller] PipelineFuture forces a pessimization if all the caller needs to do is access the descriptor. [Impeller] PipelineFuture forces a pessimization if all the caller needs to do is access the descriptor. Sep 22, 2022
@ColdPaleLight ColdPaleLight self-assigned this Nov 8, 2022
@chinmaygarde chinmaygarde moved this from ⚡ Performance to ⚙️ In Progress in Impeller Nov 10, 2022
Repository owner moved this from ⚙️ In Progress to ✅ Done in Impeller Nov 10, 2022
@ColdPaleLight ColdPaleLight added the r: fixed Issue is closed as already fixed in a newer version label Nov 10, 2022
@github-actions
Copy link

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 flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 24, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: performance Relates to speed or footprint issues (see "perf:" labels) e: impeller Impeller rendering backend issues and features requests engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project r: fixed Issue is closed as already fixed in a newer version
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants