[Impeller] PipelineFuture forces a pessimization if all the caller needs to do is access the descriptor. #98684
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
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.
The text was updated successfully, but these errors were encountered: