Skip to content

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

Closed
flutter/engine
#37415
@chinmaygarde

Description

@chinmaygarde

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.

Metadata

Metadata

Assignees

Labels

P3Issues that are less important to the Flutter projectc: performanceRelates to speed or footprint issues (see "perf:" labels)e: impellerImpeller rendering backend issues and features requestsengineflutter/engine repository. See also e: labels.r: fixedIssue is closed as already fixed in a newer version

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions