Description
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.